Руководство по настройке altAwin:Пользовательские диалоги
Пользовательские диалоги
Пользовательские диалоги наряду с пользовательскими представлениями, действиями и обработчиками событий представляют мощный инструментарий индивидуальной настройки внешнего вида и поведения приложения. По своей сути пользовательские диалоги предлагают возможность создания, используемых совместно со скриптами, диалоговых форм ввода произвольной сложности.
Окно документа Диалог представлено двумя вкладками: Общие данные и Форма.
На вкладке Общие данные представлены поля:
- Идентификатор — имя диалога, используемое для его вызова из скрипта;
- Наименование — наименование диалога, отображаемое в окне формы
- Описание — описание
- Изображение — рисунок, отображаемый в окне формы рядом с названием диалога
- Экспорт дилеру — флаговый переключатель управляет поведением при экспорте настроек приложения для дилера. Когда флаг активен, пользовательский диалог будет передаваться в файл обмена настройками при экспорте дилеру.
- Комментарий
Работа со вкладкой «Форма»
На вкладке Форма производится непосредственное создание диалога, которое заключается в определении полей и элементов управления, настройке их свойств, задании положения на форме и визуальной группировке. Основное пространство на вкладке занимает область построителя, в которой отображается макет проектируемой формы. В интерактивном режиме путём перемещения и изменения размеров элементов можно добиться нужного вида формы, отвечающего планируемым потребностям. В целом, работа с визуальным конструктором формы не отличается от работы с аналогичными средствами в различных средах разработки. Далее будут описаны только специфичные для altAwin моменты.
Помимо конструктора на вкладке выделяется ряд панелей: элементы формы для создания и добавления, панель свойств текущего элемента, дерево формы.
Элементы формы
При конструировании диалога для добавления на форму доступен ряд элементов различного назначения и внешнего вида.
Декоративные элементы применяются для задания внешнего вида формы:
- Группа — элемент оформления используемый для визуальной группировки полей ввода.
- Пустой элемент — элемент оформления, используемый для установки интервалов между отображаемыми элементами.
- Метка — элемент оформления, представляющий собой статический текст, расположенный в одной строке.
- Разделитель — элемент оформления, представляющий собой вертикального или горизонтально ориентированный отрезок.
- Подвижный разделитель — используется для возможности динамического распределения пространства формы между другими полями.
Функциональные элементы используются для получения данных из формы:
- Text — однострочное поле ввода текста;
- Memo — многострочное поля ввода текста;
- Spin — поле ввода числовых данных со счётчиком;
- Currency — поле ввода валюты;
- Date — поле выбора даты;
- ComboBox — выпадающий список;
- CheckBox — переключатель с независимой фиксацией.
Добавление элементов на форму
Добавление элементов на форму осуществляется путём их перетаскивания с панели доступных элементов в область построителя.
Настройка свойств элементов
Каждый из добавляемых в диалог элементов обладает рядом свойств, которые определяют его внешний вид и поведение.
Расположение
Взаимное расположение и соподчинённость элементов управления отражается в соответствующей области закладки.
Функции по работе с пользовательскими диалогами
- CreateDialog (const FrameCode: string):IawDialog
- Создаёт и возвращает новый диалог по его коду (поле Идентификатор).
- Execute:Boolean
- Показывает диалог и возвращает True, если пользователь нажал OK.
Доступ к полям и элементам управления диалога осуществляется с помощью свойств Value и Control:
- Value[p0:string]:Variant
- Значение поля с именем p0.
- Control[p0:string]:IawControl
- Элемент управления с именем p0.
Пример работы с пользовательскими диалогами
Создадим документ пользовательского диалога с идентификатором form:
Добавим на форму элемент управления для ввода даты (Date). В свойствах элемента установим в поле Name значение Date, а в поле Caption — значение Дата:
В представлении «Скрипты» (см. Скрипты) создадим документ скрипта со следующим кодом:
var
Udlg:IawDialog;
days:Variant;
dow:Integer;
begin
days := VarArrayCreate([1, 7], varOleStr);
days[1]:= 'воскресенье';
days[2]:= 'понедельник';
days[3]:= 'вторник';
days[4]:= 'среда';
days[5]:= 'четверг';
days[6]:= 'пятница';
days[7]:= 'суббота';
Udlg:= CreateDialog('form');
while (Udlg.Execute and Udlg.Value['Date'] = Null) do
// Нажата кнопка "OK", поле "Дата" не заполнено
showMessage('Требуется выбрать дату!');
if Udlg.Value['Date'] <> Null then
begin
dow := DayOfWeek(Udlg.Value['Date']);
showMessage(DateToStr(Udlg.Value['Date']) + ' — это ' + days[dow]);
end
else ShowMessage('Отмена.'); // Нажата кнопка "Отмена"
end;
При запуске выполнения скрипта будет показан созданный диалог, в котором предлагается выбрать дату; при закрытии диалога нажатием на кнопку OK будет показан результат обработки полученных из диалога данных.
Экспорт и импорт пользовательских диалогов
Существует возможность выгрузки/загрузки записей пользовательских диалогов во внешний файл. Для того чтобы экспортировать пользовательский диалог в файл *.aud требуется выделить нужные записи документов пользовательских диалогов в таблице представления и нажать на кнопку Экспорт, расположенную на панели инструментов представления. Выбранные записи будут сохранены во внешний файл, который в дальнейшем может быть импортирован при помощи команды "Импорт" той же панели инструментов.