Тэг form — форма

Основной тэг формы. В нём описываются вкладки и поля формы.

На данный момент, такой тэг в xml-файле может быть только один.

Примеры использования

<form width="900">
  <php type="beforestore"> <!-- Данный php-скрипт будет выполняться перед сохранением -->
  <![CDATA[
    // Можно использовать php. Например, при сохранении.
  ]]>
  </php>
  <javascript type="onsuccess"> <!-- Данный javascript будет выполняться после сохранения, в случае успеха. -->
  <![CDATA[
  // Можно использовать javascript. Например, при сохранении.
  ]]>
  </javascript>
    <text>
    <title>Заголовок</title>
    <before></before>
    <after></after>
    <help key="micro"></help>
  </text>
  <tab name="general" caption="Основное">
    <elements>
      <!-- Поля формы -->
    </elements>
  </tab>
  <tab name="additional" caption="Дополнительно">
    <elements>
      <!-- Поля другой вкладки -->
    </elements>
  </tab>
  <finishsql on="store|delete">
    <!-- Запрос на выполнение после сохранения -->
  </finishsql>
</form>

Элементы

(Мы постарались перечилить элементы в том порядке, в каком они чаще всего идут. Но при этом реальный порядок не принципиален).

(N) — элемент может использоваться несколько раз, (1) — элемент используется один раз. Жирным выделены самые часто используемые элементы.

  • text (1) — изменение текстовых значений.
  • check (N) — запрос или php скрипт (server side), который выполняется перед сохранением для проверки правильности заполнения формы. Может быть использован, например, для того чтобы проверить на конфликт уникальных ключей.
  • javascript (N) — javascript, выполняющийся при разных действиях с формой. Чаще всего — при открытии и закрытии.
  • php (N) — скрипт, который выполняется на сервере, при опредленных событиях в ходе сохранения (чаще всего перед сохранением и после сохранения).
  • sources (1) — тэг с перечислением источников, откуда берётся информация.
  • dbstructure (1) — особый тэг, который позвоялет указать, из какой таблицы нам брать все поля формы. Необходим для создания динамических форм.
  • loadsql (1) — запрос, который выполняется для получения данных для заполнения формы (при открытии существующей записи)
  • defaultssql (1) — запрос, который выполняется для получения значений по умолчанию для полей формы (актуально если мы создаём новую запись).
  • header (1) — хедер. Как tab, только элементы из него будут показываться всегда над формой (над панелью вкладок). Вне зависимости от того, какая вкладка открыта, хедер всегда будет виден.
  • elements (1) — элементы формы (поля, html-вставки, встроенные списки, etc.). Используется, если табов (вкладок) у формы нет. Бесполезен, если указывается tab.
  • tab (N) — таб (вкладка) формы. Тэг elements также используется внутри.
  • finishsql (N) — запрос, выполняющийся при сохранении и/или удалении. Может быть использован и внутри elements
  • footer (1) — футер. Как tab, только элементы из него будут показываться всегда в самом конце формы. Вне зависимости от того, какая вкладка открыта, футер всегда будет виден.

Атрибуты

(Мы перечилили элементы в порядке частоты использования, но при этом постарались сгруппировать их, чтобы близкие по смыслу атрибуты шли рядом).

Атрибут Описание Примечание
width Ширина формы в пикселях (число) По умолчанию — 640
multiple Можно указать имя checkboxgroup поле, тогда при сохранении для каждой выбранной в checkboxgroup записи будет создана отдельная строчка в базе. Подробнее см. ниже.
dubplicate-update Указывает на то, как поступать, если форма создает запись, повторяющую по уникальному ключу существующую. Если !== 0, то будет произведено обновление полей существующей записи. При этом лучше добавлять ещё check, который предупредит пользователя.
dubplicate-ignore Указывает на то, как поступать, если форма создаёт запись, повторяющую по уникальному ключу существующую. Если !== 0, то дублирование будет просто проигнорировано. При этом лучше добавлять ещё check, который предупредит пользователя. Если не стоит dubplicate-ignore или dubplicate-update, то при повторяющихся идентификаторах выдаст ошибку
nostore Не выполнять сохранение (при этом finishsql выполняться будут) Бывает удобно использовать, если нам необходимо самим написать запрос на сохранение информации — тогда заключаем его в finishsql.
hideaddmore Скрыть кнопку «Сохранить и создать новую запись» (если !== 0) Используется достаточно часто, когда мы делаем форму, которая вызывается по кастомной кнопке из списка. Например форма «Провести инструктаж» из контроля сроков. По умолчанию — 0.
hideapply Скрыть кнопку «Применить» (если !== 0) По умолчанию — 0
hidedbl Скрыть кнопку «Сохранить и дублировать» (если !== 0) По умолчанию — 0. Кнопка отображается только если нажать и удерживать клавишу SHIFT.
hideedit Если !== 0 Скрывает кнопку «Изменить», которая доступна когда мы открываем форму на просмотр (оранжевая слева внизу) По умолчанию — 0
hidedone Скрывает кнопку «Создать»/«Готово», если !== 0 По умолчанию — 0
hidesave Если !== 0, то скрывает все кнопки для сохранения информации разом, если не задано иное поведени. Аналог hidedone="1" hideapply="1" hidedbl="1" hideaddmore="1" По умолчанию — 0.
warn-unsaved Если !== 0, предупреждать пользователя, если он намеревается закрыть форму с несохраненными изменениями. По умолчанию — 1 (т.е. предупреждать)
method Не уверен, зачем это нам надо было, но атрибут позволяет изменить то, каким методом будут передаваться данные контроллеру сохранения. По умолчанию — POST. Можно указать GET.

results matching ""

    No results matching ""