Руководство по настройке altAwin:Пользовательские диалоги

Материал из AltecDocs
Версия от 09:41, 24 ноября 2017; imported>Kirillche (clean up, replaced: → (6))
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к:навигация, поиск

Пользовательские диалоги

Пользовательские диалоги наряду с пользовательскими представлениями, действиями и обработчиками событий представляют мощный инструментарий индивидуальной настройки внешнего вида и поведения приложения. По своей сути пользовательские диалоги предлагают возможность создания, используемых совместно со скриптами, диалоговых форм ввода произвольной сложности.

Рис. 4.193. Представление "Пользовательские диалоги"


Окно документа Диалог представлено двумя вкладками: Общие данные и Форма.

Рис. 4.194. Окно документа "Диалог". Вкладка Общие данные


На вкладке Общие данные представлены поля:

  • Идентификатор — имя диалога, используемое для его вызова из скрипта;
  • Наименование — наименование диалога, отображаемое в окне формы
  • Описание — описание
  • Изображение — рисунок, отображаемый в окне формы рядом с названием диалога
  • Экспорт дилеру  — флаговый переключатель управляет поведением при экспорте настроек приложения для дилера. Когда флаг активен, пользовательский диалог будет передаваться в файл обмена настройками при экспорте дилеру.
  • Комментарий

Работа со вкладкой «Форма»

На вкладке Форма производится непосредственное создание диалога, которое заключается в определении полей и элементов управления, настройке их свойств, задании положения на форме и визуальной группировке. Основное пространство на вкладке занимает область построителя, в которой отображается макет проектируемой формы. В интерактивном режиме путём перемещения и изменения размеров элементов можно добиться нужного вида формы, отвечающего планируемым потребностям. В целом, работа с визуальным конструктором формы не отличается от работы с аналогичными средствами в различных средах разработки. Далее будут описаны только специфичные для altAwin моменты.

Помимо конструктора на вкладке выделяется ряд панелей: элементы формы для создания и добавления, панель свойств текущего элемента, дерево формы.

Элементы формы

При конструировании диалога для добавления на форму доступен ряд элементов различного назначения и внешнего вида.

Рис. 4.195. Конструирование формы. Доступные элементы


Декоративные элементы применяются для задания внешнего вида формы:

  • Группа — элемент оформления используемый для визуальной группировки полей ввода.
  • Пустой элемент — элемент оформления, используемый для установки интервалов между отображаемыми элементами.
  • Метка — элемент оформления, представляющий собой статический текст, расположенный в одной строке.
  • Разделитель — элемент оформления, представляющий собой вертикального или горизонтально ориентированный отрезок.
  • Подвижный разделитель — используется для возможности динамического распределения пространства формы между другими полями.

Функциональные элементы используются для получения данных из формы:

  • Text — однострочное поле ввода текста;
  • Memo — многострочное поля ввода текста;
  • Spin — поле ввода числовых данных со счётчиком;
  • Currency — поле ввода валюты;
  • Date — поле выбора даты;
  • ComboBox — выпадающий список;
  • CheckBox — переключатель с независимой фиксацией.
Добавление элементов на форму

Добавление элементов на форму осуществляется путём их перетаскивания с панели доступных элементов в область построителя.

Рис. 4.196. Конструирование формы. Элементы управления


Настройка свойств элементов

Каждый из добавляемых в диалог элементов обладает рядом свойств, которые определяют его внешний вид и поведение.

Рис. 4.197. Конструирование формы. Свойства


Расположение

Взаимное расположение и соподчинённость элементов управления отражается в соответствующей области закладки.

Рис. 4.198. Конструирование формы. Расположение


Функции по работе с пользовательскими диалогами

  • CreateDialog (const FrameCode: string):IawDialog
    Создаёт и возвращает новый диалог по его коду (поле Идентификатор).
  • Execute:Boolean
    Показывает диалог и возвращает True, если пользователь нажал OK.

Доступ к полям и элементам управления диалога осуществляется с помощью свойств Value и Control:

  • Value[p0:string]:Variant
    Значение поля с именем p0.
  • Control[p0:string]:IawControl
    Элемент управления с именем p0.

Пример работы с пользовательскими диалогами

Создадим документ пользовательского диалога с идентификатором form:

AWCustomFormDocEx01.png

Добавим на форму элемент управления для ввода даты (Date). В свойствах элемента установим в поле Name значение Date, а в поле Caption — значение Дата:

AWCustomFormDocEx02.png

В представлении «Скрипты» (см. Скрипты) создадим документ скрипта со следующим кодом:

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 требуется выделить нужные записи документов пользовательских диалогов в таблице представления и нажать на кнопку Экспорт, расположенную на панели инструментов представления. Выбранные записи будут сохранены во внешний файл, который в дальнейшем может быть импортирован при помощи команды "Импорт" той же панели инструментов.