Правила: дизайн форм
Правила дизайна форм
-
Эти правила дизайна НЕ покрывают модель раскладки
DESIGN— дерево контейнеров по умолчанию, модель flexboxfill/ выравнивания или идиомы контейнеров. Они дают лишь мета-советы по размещению. Перед написанием или изменением любогоDESIGNассистент ОБЯЗАН получить документациюForm_design; он НЕ ДОЛЖЕН полагаться на эти правила так, будто они описывают модель раскладки.Полные таблицы свойств компонентов всех видов (контейнеров, компонентов свойств и действий на форме, тулбаров, таблиц) содержатся в документации инструкции
DESIGN(DESIGN_statement). Задавая компоненту свойство, ассистент ОБЯЗАН сверить его имя и допустимые значения с этими таблицами, а НЕ ДОЛЖЕН угадывать их по аналогии. -
Ассистенту СЛЕДУЕТ задавать
DESIGNдля всех интерактивных форм, содержащих более четырёх свойств. -
Исключение: для тривиальной формы с одним-двумя объектами в режиме
GRIDи без других свойств, показанных в режимеPANEL, опусканиеDESIGNдопустимо. -
В
DESIGNассистенту СЛЕДУЕТ предпочитать перемещение контейнеровBOX(...)для таблиц в первую очередь.GRID(...)СЛЕДУЕТ использовать только при крайней необходимости. -
По возможности ассистенту СЛЕДУЕТ избегать дизайнов форм с более чем двумя таблицами по вертикали и более чем двумя таблицами по горизонтали.
-
Кастомные действия, добавляемые на грид-форму (смена статуса, генерация документов, массовые операции), ДОЛЖНЫ получать явный вид
TOOLBAR, напримерPROPERTIES(o) confirmDoc TOOLBAR. Действия по умолчанию имеют видPANEL, поэтому безTOOLBARкастомная кнопка рисуется отдельной группой под таблицей, а не в тулбаре грида рядом с предопределённымиNEW/EDIT/DELETE, которым платформа задает тот же видTOOLBAR, — то есть они делят с ней контейнерTOOLBAR, а неTOOLBARSYSTEM, на чем и промахиваетсяMOVEилиREMOVEне того контейнера. Виды свойств / действий:GRID,TOOLBAR,PANEL,POPUP. -
Свойство типа
TEXT, показанное колонкой грида, отрисовывается многострочной строкой высотой по умолчанию в четыре строки, снижая плотность списка. Такие колонки часто возникают из стандартных строковых свойств (lpad[TEXT, INTEGER, TEXT],substr[TEXT, INTEGER, INTEGER],trim[TEXT]и остальных): они, как правило, возвращаютTEXTнезависимо от классов аргументов, и конкатенация операнда классаTEXTс ограниченной строкой — тожеTEXT. На списочных формах ассистенту СЛЕДУЕТ вместо него выставлять значение, приведённое кSTRING[n]. Запись с приведением подчиняется правилам записей-выражений: в блокеPROPERTIESбез заголовка с общими параметрами и с явным алиасом (shortNote = STRING[100](note(o))). Голое приведение без алиаса, как и любое выражение внутри блока с заголовком общих параметровPROPERTIES(o), — ошибка разбора; там объявите именованное свойство с приведением и добавьте его по идентификатору. -
Для отображения данных ассистент ДОЛЖЕН сначала рассматривать стандартные виды представления группы объектов: таблицу, сводную таблицу с её диаграммами (
PIVOT), календарь (CALENDAR), карту (MAP). Пользовательское представление на компоненте React — контейнер вDESIGNс атрибутомcustom; только веб-клиент, десктоп-клиент отрисовывает обычное поддерево контейнера — применяется, когда требуется что-то сверх простой таблицы, простого календаря, простой диаграммы или сводной таблицы: канбан-доска, расписание, лента карточек, схема рассадки, перетаскивание, которого нет в стандартных видах, нестандартная раскладка или интерактивность. Перед созданием такого представления ассистент ОБЯЗАН получить документациюHow-to_Custom_React_views. -
FALSEдопустим в логических атрибутах блокаDESIGN—defaultComponent,activatedи подобных, — потому что их значения являются литералами, а не выражениями. Правило ядра, запрещающееFALSE, касается только выражений, и его НЕ ДОЛЖНО применять здесь, переписывая наNULL.