Особенности синтаксиса qForm Условный оператор if() в qForm
В QForm используется условный оператор if(), имеющий следующий синтаксис:
...
<!--//if(<условие_срабатывания_оператора>){--> [Текст_в_случае_выполнения_if]
<!--//}else{--> [Текст_в_случае_выполнения_else] <!--//}-->
...
<!-- ИЛИ возможен упрощенный вариант оператора:-->
...
<!--//if(<условие_срабатывания_оператора>){--> [Текст_в_случае_выполнения_if] <!--//}-->
...
Название |
Описание |
Примечание |
Текст_в_случае_выполнения_if |
Текст, который будет вставлен в случае выполнения оператора if |
|
Текст_в_случае_выполнения_else |
Текст, который будет вставлен в случае выполнения оператора else |
Может отсутствовать часть с else — присутствовать только часть с if |
Важно! Условный оператор if() допустимо использовать в любом месте формы (особенность QForm), кроме тэга include. Внутри этого тэга условный оператор не воспринимается.
Переменные qForm и их обозначения
Переданные в xml-файл переменные обозначаются как {{<имя_переменной>}}. Пример использования:
<!-- Файл передающий (часть кода) -->
...
<include src="[имя_принимающего_файла].xml" eqkey="ogt" />
...
<!-- Файл принимающий (часть кода). Здесь передавалась и принимается переменная {{eqkey}} -->
...
<field name="eqtype" prompt="Тип оборудования" type="hidden" maxlength="255" default="{{eqkey}}" />
...
Название |
Описание |
имя_принимающего_файла |
Имя файла, в который передается переменная(-ые) |
Подробно пространство переменных описано в одноименной статье «Многообразие пространства имен».
Условные обозначения на qWiki
Для простоты на QWiki приняты следующие условные обозначения:
Обозначение |
Расшифровка |
<tag> |
Условное обозначение тэга в тексте |
@attr |
Условное обозначение атрибута в тексте |
[некоторое_значение] |
Условное обозначение описания переменной или атрибута в коде в квадратных скобках «[» и «]» |
Важно: условное выделение значений переменных и атрибутов в коде — […] — несколько изменено в силу особенностей синтаксиса XML (чтобы не путать с тэгами). Описание в коде могут отстоять от соседних символов (через пробел или табуляцию), могут не отстоять. Где есть промежуток — использование этих символов допустимо, где нет промежутка — недопустимо.
Важно: тэги, о которых изложено в таблицах, обычно идут в той последовательности, в которой они исторически идут в xml-форме. Чтобы упростить разбор ваших кодов другим программистам, настоятельно рекомендуем использовать ту же последовательность тэгов, что и в таблицах.
Общий вид файла на языке qForm
Подробное описание QForm было дано в предыдущей статье. С точки зрения разработки QForm осуществляет быструю генерацию xml-форм в соответствии с таблицей БД, для взаимодействия с которой создается форма. Общий вид генерируемой формы имеет вид:
<?xml version="1.0" encoding="utf-8"?>
<!-- Описание формы ввода информации. Версия 1.0.3 -->
<qform version="2.0.2" debug="1">
<!-- Необходимые директивы препроцессора (необязательно) -->
<database>
<!-- Параметры основной подключаемой БД -->
</database>
<list rowsperpage="50" hidenewrec="0" hidetoolbars="0">
<text>
<windowtitle>Пример списка для создания форм</windowtitle> <!--(!)-->
<title>Пример списка для создания форм</title>
<before>Ниже представлен пример списка</before>
<after></after> <!--(!)-->
<help key="[имя_help-файла]"></help>
</text>
<sql key="id">
<![CDATA[
<!-- Запрос к БД, генерирующий список -->
]]>
</sql>
<cols defaultsort="[Поле_сортировки_по_умолчанию]">
<colorcol field="[Поле_выделения_цветом]"/>
<!-- Перечень отображаемых колонок списка -->
<!-- Пример:
<col field=”[field_name]”
caption=”[column_name]” hidden=”1” searchable=”0” type=”date” … />
-->
</cols>
<legend>
<color index="kolya">Запланировано</color>
<color index="2">В процессе</color>
<color index="1">Завершено, но экзамен не сдан</color>
<color index="10">Завершено</color>
<icon index="ok">Экзамен сдан</icon>
<!-- Подсказки по условным обозначениям и цветовой легенде -->
<icon index="ok">Экзамен сдан</icon>
</legend>
</list>
<form width="640">
<text>
<windowtitle>Пример формы</windowtitle>
<title>Пример формы</title>
<before>Первые два поля обязательны для заполнения!</before>
<after>Выше перечислены поля формы нашего примера</after>
<help key="[имя_help-файла]"></help>
</text>
<tab name="General" caption="Основное" >
<!-- Если вкладка одна, то опускают этот тег, оставляя только <elements …/> -->
<elements>
<!-- Список полей (теги <field …/>) и других элементов (например, <br …/>,
<html …/>, <text …/>) первой вкладки формы -->
<!-- Пример:
<field name=”[field_name_form]” prompt=”[field_name_in_form]”
type=”dropdown([type_of_field_form])” extended=”1” … />
-->
</elements>
</tab>
<tab name="Trainings" caption="Обучение">
<elements>
<list src="[Название_встроенного_списка]">
<!-- Вложенный (встроенный) список. Необязательная вкладка в форме. Внутри тега <list …/>
содержится список параметров, передаваемых во вложенный список -->
</list>
</elements>
</tab>
</form>
</qform>
Условные обозначения: (!) — Пока не включено в релиз
Название |
Описание |
Примечание |
имя_help-файла |
Имя подключаемой к списку/форме справочной html-страницы |
Необязательно |
Поле_сортировки_по_умолчанию |
Поле, по которому по умолчанию будет отсортирован список |
По умолчанию asc, можно не указывать |
Поле_выделения_цветом |
Переменная из основного запроса или поле в таблице, которая содержит значение индекса цвета |
Необязательно |
field_name |
Имя поля или переменная из запроса, значение которого показывается в ячейке в списке |
|
column_name |
Название колонки |
|
field_name_form |
Имя поля, в которое будет записано указанное в форме значение |
|
field_name_in_form |
Название поля в форме |
|
type_of_field_form |
Вид поля в форме |
|
Название_встроенного_списка |
Имя файла встроенного списка |
|
