Структура формы
Структура формы - это совокупность объектов, свойств, действий и связей между ними.
Объекты
При создании формы первоначально необходимо определить, какие объекты она будет отображать. Для каждого объекта формы нужно задать его класс.
Существует возможность объединять объекты в группы объектов. В этом случае в таблице будет показываться "декартово произведение" этих объектов (то есть для двух объектов - все пары, трех объектов - тройки и т.п.).
В соответствии с порядком добавления групп объектов на форму образуется упорядоченный список групп объектов. Соответственно, последней группой для некоторого множества групп объектов будем называть группу из этого множества с максимальным порядковым номером в этом списке (то есть максимально позднюю). Аналогичным образом определяется последняя группа для множества объектов: сначала строится множество групп объектов, в которые входят эти объекты, затем для полученного множества групп объектов определяется последняя группа.
Текущий объект
Каждый объект на форме в любой момент времени имеет текущее значение. Его изменение происходит либо в результате соответствующих дейст вий пользователя в интерактивном представлении, либо "виртуально" в процессе чтения данных в статичном представлении.
Свойства и действия
После определения объектов на форму можно добавить свойства и действия, подставив эти объекты им на вход в качестве аргументов.
Добавление действий актуально только для интерактивного представления. В статичном представлении добавленные действия игнорируются.
Поведение свойств и действий с точки зрения их отображения на форме абсолютно одинаково, поэтому в дальнейшем в этом разделе будем использовать только термин свойство (для действий поведение абсолютно аналогично).
Группа отображения
Каждое свойство отображается ровно в одной из групп объектов на форме (будем называть ее группой отображения этого свойства). По умолчанию группой отображения является группа, последняя для множества объектов, которые передаются на вход этому свойству. При необходимости, разработчик может задать группу отображения явно (с определенными ограничениями при использовании в структурированном представлении)
Группы-в-колонки
По умолчанию, свойство отображается в своей группе отображения ровн о один раз. При этом, в качестве значений объектов, который не находятся в группе отображения этого свойства (назовем их верхними), используются их текущие значения. Однако в платформе также существует возможность отображать одно свойство несколько раз таким образом, чтобы в качестве значений некоторых верхних объектов использовались не их текущие значения, а все наборы объектов (при таком отображении свойства образуется своего рода "матрица" - верхние объекты x объекты группы отображения). Соответственно, чтобы создать такую матрицу, необходимо при добавлении свойства на форму указать какие именно верхние объекты (а точнее группы объектов) необходимо использовать для создания колонок (будем называть эти группы объектов группами-в-колонки).
При определении группы отображения свойства группы-в-колонки игнорируются.
Группы свойств
Свойства на форме можно объединять в группы, которые, в свою очередь, используются в интерактивном (дизайне по умолчанию) и иерархическом представлениях формы. По умолчанию, привязка свойства к группе глобальна (то есть задается для свойства для всех форм сразу), однако, при необходимости, для отдельных форм эту привязку можно переопределить.
Настройки по умолчанию
Для свойств на форме существует большое количество настроек отображения в различных представлениях, абсолютное большинство из которых можно задавать не только непосредственно для свойства на форме, но и для самого добавляемого свойства (при его создании). Эти настройки будут настройками по умолчанию, то есть если настройка не задается явно для конкретного свойства на форме, то используется настройка самого свойства. При этом, эти настройки по умолчанию "наследуются" при использовании операторов композиции, выбора и предыдущего значения (то есть, если скажем для свойства f(a)
задана ширина по умолчанию 10
, то и свойство g(a) = f(a) IF h(a)
, также по умолчанию будет иметь ширину 10
).
Фильтры
Для каждой формы разработчик может создать определенные фильтры, которые будут ограничивать список доступных к просмотру / выбору наборов объектов на форме.
Для задания фильтра необходимо указать свойство, которое будет использоваться в качестве критерия фильтрации. Фильтр будет применяться к таблице той группы объектов, которая является последней для множества объектов, передаваемых на вход этому свойству (то есть аналогично с определением группы отображения свойства). При этом будут показаны только те наборы объектов (ряды), для которых значения свойства не равняются NULL
.