Atom в системе PowerM™ - это, логически неделимый элемент данных, визуальное представление которого будет автоматически создано при отображении соответствующей экранной формы. Таким образом, он является своего рода "кирпичиком", используемым при строительстве более сложного экранного интерфейса.
Атом обладает определенными характеристиками, способностью к автоматическому визуальному отображению, а также встроенным функциональным поведением. В зависимости от источника информации, атом может принадлежать к одному из следующих типов:
- Field - колонка таблицы или поле на экранной форме, отражающее какое-либо значение из физической таблицы базы данных или любого другого источника
- Variable - колонка экранной таблицы или поле на экранной форме, значение которого хранится только в оперативной памяти компьютера и не связано с какой-либо физической структурой базы данных
- Compute - выражение (скрипт), вычисляемое на стороне клиента, результат которого отражается в соответствующей форме/таблице. При этом, для вычисления доступны текущие значения всех имеющихся в выборке элементов данных
- SQL-expression - выражение, вычисляемое на стороне SQL-сервера. Может являться любым SQL-выражением, которое автоматически встраивается в итоговый SQL-запрос к базе данных.
- Button - такой тип атома будет представлен в виде командной кнопки в таблице или экранной форме. Обработчик события щелчка мыши на такой кнопке привязывается либо к предопределенному макросу или делегирует выполнение действия соответствующему классу-контроллеру
Чтобы открыть для просмотра и редактирования список атомов, используемых в приложении, выполните команду Главного меню Проектирование>Элементы (Atoms). На экране появится таблица Элементы данных:
Атрибуты элемента данных и их описания
Атрибут | Описание |
Код (Code) | Обозначение атома. В случае если тип элемента - Field, код должен соответствовать имени колонки таблицы физической модели базы данных, Код атома является уникальным и обязательным для ввода. |
Наименование (Label) | Краткое наименование элемента по умолчанию, которое автоматически отражается в виде текста перед полем ввода значения атома в экранной форме |
Заголовок в таблице (Header) | Краткое наименование элемента по умолчанию, которое автоматически отражается в виде заголовка колонки в табличном представлении данных. Символ ";" служит для вывода заголовка в две строки и более |
Подсказка (Prompt) | Более подробное текстовое описание элемента данных. Отображается в виде всплывающей подсказки, а также в нижней части визуального представления модели |
Тип элемента (ItemType) | Тип элемента данных: Field, Variable, Compute, SQL expressio, Button. Описание типов см. выше |
Тип данных (DataType) | Тип данных элемента: Character, Number, Date, DateTime, Time, Logical, Blob |
Длина (Length) | Общая количество символов, выделяемое для редактирования атома. На основании этого значения автоматически вычисляется начальная ширина соответствующего контрола в экранных пикселях |
Точность (Precision) | Количество символов после десятичной точки (для типа Number) |
Регистр (Charcase) | Допустимый регистр буквенных символов. Может принимать одно из следующих значений: Any, lower, UPPER |
Выражение (Expression) | Выражение, значение которого завасит от типа атома. Для Compute-атомов выражение составляется на основе имен, присвоенных атомам на стороне клиента (приложения). Для SQL-expression - это любое допустимое SQL-выражение, которое будет встроено в итоговый оператор SELECT |
Флаги поведения (Options) | Символьная строка-маска, содержание которой зависит от того какой из флагов поведения активирован для данного атома. Флаги поведения описаны в таблице далее по тексту |
Содержание (Content) | Смысловое содержание атома. Выбирается из списка допустимых значений и может влиять на представление и функциональное поведение атома при его отображении. Описание возможных значений приведено далее в этом разделе. |
Формат (Format) | Формат (шаблон) отображения значения элемента. В зависимости от типа атома используются разные подстановочные символы. Примеры форматов: #,##0.00 (Число), @@@-@@@-@@@ (Строка), dd/mm/yyyy (Дата), hh:mm:ss (Время) |
Шаблон ввода (EditMask) | Маска-шаблон, используемый при вводе значения атома. Применяется для элементов с установленным стилем редактирования EditMask. Подстановочные символы зависят от типа данных, например: ###,##0.00 - маска для ввода шестизначного числа до сотой доли в дробной части. |
Начальное значение (Initial) | Значение, присваиваемое по умолчанию в режиме добавления новой строки. Может быть как простым литеральным значением, так и выражением, содержащим функции языка PowerScript |
Стиль редактирования (Style) | Стиль редактирования определяет тот управляющий визуальный элемент, который будет использован при отображении и редактировании текущего значения атома в экранной форме. Некоторые стили (например Calculator) зависят от типа данных атома и могут не отображаться |
Параметры (StyleParams) | Дополнительные параметры для выбранного стиля редактирования, указанные в формате Ключ=Значение, разделенных симвоом ";" (точка с запятой). Наборы доступных ключей, зависят от Стиля редактирования атома и описаны в следующем разделе. |
Расшифровка (MoreInfo) | Вычисляемое выражение, значение которого, при установленном флаге #4, отображается в экранной форме напротив атома, или в качестве всплывающей подсказки в табличном представлении |
Комментарий (Comment) | Произвольный текст, описывающий особенности использования данного атома. |
Варианты поведения атома (флаги)
Флаги атома предназначены для более детальной настройки его функционирования, а также на его визуальное представление на экране в зависимости от состояния и стиля модели-владельца.
Флаг | Обозначение | Назначение |
1 |
AB_HIDEAPPEND |
Не показывать при добавлении (Hide In Insert Mode) В режиме добавления новой строки атом НЕ отображается, но доступен для изменения программно |
2 | AB_HIDEMODIFY |
Не показывать при редактировании (Hide In Edit Mode) |
3 | AB_HIDEGRID |
Не показывать в таблице (Hide In Grid) |
4 | AB_SHOWDESC |
Отобразить расшифровку (Show More Info) Вычисляет значение выражения Расшифровка и выводит его на экране рядом с атомом или в виде всплывающей подсказки |
5 | AB_REQUIRED |
Ввод обязателен (Input Required) Гарантировать ввод какого-либо значения. При отсутствии значения данные не могут быть сохранены в целом по всей записи |
6 | AB_SHOWTOTAL |
Подсуммировать итог (Display Total Value) В табличном представлении вывести суммарный подитог колонки |
7 | AB_SAVEINSTRM |
Сохранять значение при потоковом в воде (Save And Restore In Flow Input) В режиме потокового (непрерывного) ввода предлагать последнее сохраненное значение в качестве начального для новой строки |
8 | AB_SAVEINMEMO |
Запомнить значение после сохранения (Save As Global Variable) После успешного сохранения записи значение атома сохраняется как глобальная переменная с тем же именем. Обратиться к такой переменной можно по следующему правилу: @<VarName> |
9 | AB_MULTICHANGE |
Разрешить массовое изменение в таблице (Allow Multiple Changes In Grid) Открывает возможность замены текущих значений в ячейках колонки на заданное значение |
10 | AB_PROMPTABOVE |
Подсказка сверху (форма) (Place Label Above The Field) Поместить метку над полем ввода. По умолчанию она располагается с левой стороны. |
11 | AB_DIVSTART |
Начало раздела (форма) (Begin Group Of Atoms)
|
12 | AB_AUTOTAB |
Автоматическая табуляция (AutoTab) Автоматически переводит фокус на следующее поле при полном заполнении текущего |
13 | AB_BOLD |
Выделенный шрифт (Bold Font) Выводить значения атома выделенным шрифтом |
14 | AB_ITALIC |
Наклонный шрифт (Italic Font) Выводить значения атома наклонным шрифтом |
15 | AB_UNDERLINE |
Подчеркнутый шрифт (Underline Font) Выводить значения атома подчеркнутым шрифтом |
16 | AB_STRIKEOUT |
Зачеркнутый шрифт (Strikeout Font) Выводить значения атома зачеркнутым шрифтом |
17 | AB_USEUSERINIT |
Разрешить начальное значение пользователя (Allow User Initial Value) При установленном значении у конечного пользователя появляется возможность сохранения текущего значения поля в качестве начального, которое будет затем автоматически предлагаться при каждой новой операции добавления записи в текущем представлении |
18 | AB_ROWNAMEITEM |
Является частью имени записи (Set As Part of RowName) Преобразовать текущее значение атома в символьную строку и включить ее в общее выражение, для получения имени записи |
19 | AB_TVGROUPITEM |
Является атрибутом группы (TreeView) |
20 | AB_SAMELINE |
На линии предыдущего поля (Place On Previous Visible Atom's Row) Разместить атом на той же строке, что и предыдущий видимый атом. По умолчанию располагается на следующей строке, |
21 | AB_DESCASLINK |
Показать расшифровку в виде гиперссылки (Show MoreInfo As Hyper Reference) Отобразить расшифровку как интернет-ссылку и дать пользователю возможность выполнить назначенное действие |
22 | AB_NOTUPDATE |
Не включать в оператор INSERT/UPDATE (Set As Not Updateable) Блокировать включение атома в итоговое SQL-выражение |
23 | AB_SPARSE |
Не отображать повторяющиеся значения (таб) При наличии повторяющихся значений в колонке табличного представления отображать только одно в самой первой строке группы |
24 | AB_DISABLECACHE |
Не кэшировать значение (форма) Работает в паре с флагом AB_SAVEINMEMO, отменяя режим установки введенного ранее значения в качестве начального при следующем открытии модели |
Смысловое содержание атома (content)
Для описания более детальной информации о том, на какие объекты реального или виртуального мира ссылаются значения выбранного атома, служит его атрибут Content. Знание такой информации помогает системе PowerM™ автоматически настроить визуальное представление атома и его поведение согласно типу хранимого в нем объекта.
Имя | Описание |
Annotation | Атом содержит какое либо дополнительное описание текущего объекта |
Color | Атом содержит числовое или символьное выражение цвета |
Содержимое атома - адрес электронной почты. В форме редактирования появляется кнопка перехода в виде маленькой иконки | |
Folder | Содержимое атома - папка на диске. В форме редактирования появляется кнопка для открытия окна Select Folder |
OLR-document | Зарезервировано |
PhoneNumber | Содержимое атома - номер телефона. В форме появляется кнопка для автоматического набора номера абонента |
ProgressValue | Атом содержит значение, выражающее прогресс выполнения какого-либо процесса в процентном выражении. В представлении отображается в виде градиентного перехода |
Reference | Атом содержит внешний ключ ссылочной таблицы |
RowIndicator | Индикатор текущей записи |
Sequence | Значения атома являются порядковыми номерами некоторой последовательности. В таблице автоматически активируется пункт меню "Перенумеровать" |
Sound | Содержимое атома является звуковым файлом. Автоматически появляется возможность прослушать такой файл |
StringNumber | Значение символьного атома содержит только числа |
Unknown | Содержимое не известно |
UserName | Атом содержит имя пользователя системы |
WWW-site | URL-адрес сайта или другого ресурса |