Визуальная модель типа Query, в качестве обязательного условия, должна содержать хотя бы один Атом в своем составе - объект Атом-В-Запросе. В процессе включения в массив (список) ссылки на какой-либо Атом, значения некоторых из его статических свойств автоматически копируются в новую запись объекта Атома-В-Запросе и могут быть перезаписаны при необходимости. Однако, другая часть свойств Атома-В-Запросе инициализируется из объекта Атом напрямую и их значения не могут быть переопределены в дальнейшем.
На следующем рисунке представлен снимок редактора Атома-В-Запросе с примером заполнения свойств элемента code:
Свойства объекта Атом-В-Запросе
Свойство | Описание |
Порядковый номер (SeqNo) |
Порядковый номер атома в списке. Автоматически меняется при перетаскивании мышью или в результате перенумерации |
Элемент (Atom) |
Ссылка на объект типа Атом |
Алиас таблицы (TableAlias) |
Алиас таблицы, к которой относится данный Атом. Список задействованных таблиц с указанием их алиасов должен быть определен в модели Query - владельце данного атома. При указании алиаса программное имя атома автоматически меняется на <alias>_<atomname> |
Флаги (Flags) |
Строка-маска, определяющая варианты поведения атома. Описание флагов и их значение приводится здесь |
Заголовок таблицы (Header) |
Заголовок, который будет отображаться в табличном представлении модели. Для получения многострочного заголовка служит символ ";" (точка с запятой) - аналог пары CR+LF |
Заголовок формы (Label) |
Подсказка, которая будет отображаться слева от атома в представлении модели в виде формы |
Подсказка (Prompt) |
Текстовая строка, которая отображается в виде всплывающей подсказки (ToolTip), а также выводится в строке состояния |
Расшифровка (MoreInfo) |
(exp) Выражение, результат которого отображается справа от значения атома в форме. При включенном флаге AB_DESCASLINK становится гиперссылкой, при клике на которую, контроллер получает соответствующее событие |
Начальное значение (Initial) |
Начальное значение атома в момент добавления новой строки в таблицу. Если значение начинается с символа "=", то далее следует выражение, иначе - значение присваивается литерально (как есть) |
Регистр (CharCase) |
Регистр символов: UPPER, lower, Any |
Выравнивание (Alignment) |
Горизонтальное выравнивание значения атома: Left (влево). Right (вправо), Center (по центру), Justify (по краям) |
Стиль редактирования (Style) |
Определяет способ, с помощью которого выполняется редактирование атома. |
Кол-во строк (Lines) |
Количество строк (в символах), отводимое для управляющего элемента на экранной форме. Имеет смысл если атом - символьная строка |
Параметры (Parameters) |
Дополнительные параметры атома в формате ключ=значение;... Описание возможных параметров приведено ниже. |
Защита (Protect) |
(exp) Выражение, результат вычисления которого интерпретируется следующим образом: 0 - нет ограничений, 1 - редактирование с помощью клавиатуры запрещено, 2 - иконка функциональной кнопки (при ее наличии) не доступна, 3 - редактирование запрещено полностью |
Правило проверки (Validation) |
(exp) Выражение, возвращающее логическое значение true/false. В последнем случае на экране появляется соответствующее сообщения, текст которого берется из следующего атома |
Сообщение (InvalidMessage) |
Текстовая строка, отображаемая при недопустимости введенного значения атома |
Цвет текста (Color) |
(exp) Выражение, результат которого представляет собой значение цвета, числовое или символьное. В качестве символьных названий цвета могут быть следующие: red, green, blue, yellow и др. |
Цвет фона (BgrColor) |
(exp) Выражение, результат которого представляет собой значение цвета, числовое или символьное. В качестве символьных названий цвета могут быть следующие: red, green, blue, yellow и др. |
Зависимости (Dependences) |
Перечень программных имен этомов через запятую, влияющих на автоматическое вычисление значения текущего атома |
Формула (Formula) |
(exp) Выражение, результат которого присваивается атому, при изменении одного из атомов в списке Зависимости |
Программное имя
Программное имя атома - это имя, на которое можно ссылаться при обращении к его значению в программном коде и выражениях. Единственная ситуация, при которой программное имя атома не совпадает с его кодом - это наличие алиаса таблицы в описании атома, отличное от имени (алиаса) главной таблицы модели Query. В таком случае программное имя формируется согласно следующему правилу: <alias>_<atomname>. Например, для атома name с алиасом grp программное имя будет grp_name.
Стили редактирования
Способ редактирования текущего значения атома определяеься его свойством Стиль. Возможные стили редактирования описаны в следующей таблице:
Стиль | Тип данных | Описание | Иконка |
Calculator | number | Предоставляет возможность ввода значения с помощью выпадающего окна Калькулятор | |
Calendar | date, datetime | Предоставляет возможность ввода значения с помощью выпадающего окна Калкедарь | |
CheckBox | (any) | Редактирование значения выполняется с помощью управляющего элемента CheckBox с поддержкой трех уникальных состояний: On, Off, Other, значения которых содержатся в поле Парамтеры | |
DisplayAsPicture | string | Отобразить как рисунок, если атом содержит имя или путь до графического файла в формате GIF, JPG, PNG. В качестве имен могут быть использованы имена встроенных иконок (~4000 шт.) | |
DropDownDW | (any) | Выпадающий элемент DataWindow. Редко используется на практике, ввиду отсутствия возможности его самостоятельного проектирования без наличия лицензии на IDE языка PowerBuilder | |
DropDownListBox | (any) | Выпадающий список в стиле ComboBox. Варианты выбора должны быть описаны в поле Параметры | |
Edit | (any) | Стандартный элемент редактирования | |
EditMask | (any) | Элемент редактирования с поддержкой маски ввода значения | |
MultiLineEdit | string | Многострочный редактор. Необходимое количество символьных строк указывается в поле Кол-во строк (Lines) | |
RadioButtons | (any) | Радио кнопки. Значение присваивается путем выбора одного из предоставленных вариантов. Сами варианты описываются в поле Параметры | |
UserEvent | (any) | Событие. Контроллеру модели отсылается событие, имя которого введено в параметр редактирования. Логика присвоения значения содержится в коде события класса-контроллера. | |
ViewModel | (any) | Визуальная модель. Редактирование значения выполняется путем открытия модели, спецификация которой содержится в поле Параметры. Спецификация модели имеет следующий формат: [<тип_модели>://]<имя_класса_контроллера|*>.<имя_модели>[?<параметры>]. Спецификацию модели указывать не обязательно, если в описании главной таблицы (источника) модели заполнено поле DropDownAction |
Параметры стиля редактирования
Свойство атома Параметры предназначено для указания дополнительной информации, которая будет использована при создании и инициализации соответствующего управляющего элемента Формат описания параметров определяется в виде пар <ключ>=<значение>, разделенных символом ";" (точка с запятой).
Параметр | Стиль атома | Описание |
AllowEdit | DropDownListBox | Включает/отключает возможность редактирования значения, выбранного из списка |
CodeTable |
DropDownListBox, Edit, RadioButtons |
Кодовая таблица в формате: <DisplayValue1>^<Data1>|<DisplayValue2>^<Data2>|... Еще один формат, который может быть использован: @КодОбъекта Перечисления |
Columns | RadioButtons | Количество колонок, используемых для отображения вариантов элемента. По умолчанию 1 (варианты располагаются вертикально) |
DDCalendar | EditMask | Логическое значение true/false, определющий возможность редактирования значения с помощью всплавющего элемента Календарь |
EnumTable |
DropDownListBox, Edit, RadioButtons |
Содержит код объекта Перечисление. |
Format |
все | Формат отображения, переопределяющий одноименное свойство атома |
Mask |
EditMask | Маска ввода символов, переопределяющая одноименное свойство атома |
MinMax | EditMask | Допустимые границы вводимого значения в формате: <MinVal>~~<MaxVal> |
OFF | CheckBox | Значение для состояния Выключено. По умолчанию 0 |
ON | CheckBox | Значение для состояние Включено. По умолчанию 1 |
OTHER | CheckBox | Значения для третьего состояния (не обязательно) |
Password | Edit | true/false. Режим ввода пароля |
Sorted | DropDownListBox | true/false. Сортировать значения списка в алфавитном порядке |
Width | все | Ширина элемента в пикселях |