Главная страница

Р. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР4. Р. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР. Разработкаприложений sap r3Рюдигер Кречмерна языкеВольфганг Вейс


Скачать 28.36 Mb.
НазваниеРазработкаприложений sap r3Рюдигер Кречмерна языкеВольфганг Вейс
АнкорР. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР4.pdf
Дата21.12.2017
Размер28.36 Mb.
Формат файлаpdf
Имя файлаР. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР.pdf
ТипКнига
#12433
страница18 из 24
1   ...   14   15   16   17   18   19   20   21   ...   24
Глава 22
Расширенные функции
графического
интерфейса
Использование на графическом экране
переключателей, тумблеров и управляющих
элементов таблиц
• Обеспечение пользователя контекстно-зависимой
оперативной справочной информацией
• Создание диалоговых окон

250 Глава 22
В этой главе описываются дополнительные программные средства, предназначенные для улучше- ния внешнего вида экранов и расширения их функциональных возможностей. К данным средствам от- носятся экранные переключатели и экранные кнопки. Кроме того, в главе объясняется, каким образом можно добавить в программу средства интерактивного управления выводом таблиц, которые обеспечи- вают широкие возможности при работе с ними.
В сложных транзакциях часто применяются иерархические меню, этот вопрос тоже рассматривается в данной главе. Функции подменю, включенного в меню более высокого уровня, определяются таким же способом, как и функции обычного меню. В
приложениях удобно для нескольких экранов многократно применять такие средства, как меню, инструментальные линейки и функциональ- ные клавиши, задаваемые в статусах GUI. Многократно используемые установки реализуются одним из двух способов: копированием статуса GUI или определением ссылки на существующий статус GUI (или его элементы).
Информация для стандартной оперативной справки о полях экрана (описание и варианты вводимых данных) извлекается из Dictionary (см. главу 19). В данной главе рассматривается применение других справочных функций, которые реализуются путем определения соответствующих событий, включаемых в логику работы с экраном. Кроме того, в главе описывается такой прием, как использование значения поля по умолчанию на основании предыдущего ввода данных для аналогичного поля. Другими словами,
программа может "подсказывать" пользователю, какое значение он должен ввести.
При выполнении транзакции последовательность экранов определяется ответами пользователя и ло- гикой работы с каждым из экранов. В главе рассматриваются два метода задания последовательности экранов: с помощью очереди и с помощью стека. И, наконец, описывается способ динамического зада- ния размеров диалоговых окон, используемых для вывода экранов.
Улучшение внешнего вида экрана
В главе 19 описаны основные элементы, размещаемые на экране графическими средствами Fullscreen
Editor. Кроме полей для ввода и вывода данных, меток (надписей) и фреймов, разработчик может разме- щать на экране тумблеры, переключатели и кнопки. Элементы управления таблицами позволяют интерак- тивно изменять размещение таблицы на экране. Например, пользователь может изменять размеры и порядок столбцов таблицы, буксируя элементы таблицы или ограничительные линии с помощью мыши.
Тумблеры, переключатели и экранные кнопки
Тумблеры (Check Boxes) используются для выбора одного из двух возможных значений. Предполо- жим, в программе, описанной в главе 19, необходимо указать категорию клиента: часто или нет поль- зуется он авиатранспортом. Для размещения тумблера на экране нужно с помощью Object Browser найти эту учебную программу, вызвать Fullscreen Editor для экрана 200, щелкнуть мышью на кнопке Check
(см. рис.
и установить указатель мыши в то место, куда необходимо поместить тумблер. Метка- надпись создается так же, как и для любого другого поля.
Обновление размещенных на экране надписей описано в разделе "Размещение элементов
на экране" главы 19.
В программе полю тумблера соответствует символьное поле длиной 1. При выполнении программы пользователь может определить состояние тумблера: если тумблер выключен (неактивен), то в поле записан пробел, в противном случае - символ, отличный от пробела.
Переключатели опций (Radio Buttons) используются для объектов, имеющих не менее двух состоя- ний, из которых только одно может быть активным. В примере с запросом информации о рейсе группа из трех опций может быть использована для выбора класса: первый, бизнес или экономический (см.
рис. 22.2). Для построения такой группы нужно отметить кнопку Radio на инструментальной линейке
Create экрана Fullscreen Editor, указать мышью место для каждой опции группы и задать текст (напри- мер, First — первый, Business — бизнес, Economy - экономический). После того как все опции постро- ены, следует определить группу, указывающую на их взаимосвязь.
Для этого нужно поместить указатель мыши левее самой левой опции группы, нажать левую кнопку мыши, переместить ее указатель вправо и вниз так, чтобы пунктирная граница охватывала все опции,
и отпустить кнопку. Затем нужно указать последовательность элементов меню Edit
Radio Button
Group
Define (определить), и переключатель будет определен. Каждая группа экранных элементов обычно помещается во фрейм с названием. В данном примере используется заголовок Class (класс). В
программе полю переключателя так же, как и тумблеру, соответствует символьное поле длиной 1, ко- торое в процессе выполнения будет принимать или нет значение символа пробел.

Расширенные функции графического интерфейса 251
Рис. 22.1
Определение тумблера
на экране заказа билетов
программы туристического
агентства
Рис. 22.2
Определение переключателя
опций типа Class (класс)
для экрана заказа билетов
в программе туристического
агентства
В общем случае экранные кнопки определяются с помощью статусов GUI и выводятся на экран в инструментальной линейке меню приложения (см. главу 19). Если необходимо создать дополнительные экранные кнопки, щелкните мышью на
Button (кнопка) на левой инструментальной линейке и установите указатель мыши в том месте экрана, где нужно разместить новую кнопку. Затем введите текст названия (метки) кнопки. В примере добавляется кнопка Delete Input (удалить введенные данные),
позволяющая удалить введенную информацию и начать ввод заново. Также разрешается связывать с экранной кнопкой пиктограмму, которая будет появляться в левом углу окна ввода (см. рис. 2S.3). Ана- логичным способом можно связать код функции с экранной кнопкой. Достаточно дважды щелкнуть мышью на кнопке
Delete Input) и задать в поле FctCode (код функции) открывшегося диа- логового окна значение кода размером 4 символа. В процессе выполнения задание кода осуществляется щелчком мыши на данной кнопке.

252 Глава 22
Рис. 22.3
Определение экранной кнопки (Delete Input) внутри экрана регистрации заказов
Управляющие элементы таблицы
Управляющие элементы таблицы (table control) используются для отображения содержимого внутренней таблицы и обеспечивают интерактивную регулировку размещения таблицы на экране. В частности, ис- пользуя буксировку мышью, можно изменить размеры таблицы или порядок размещения столбцов
(см. рис. 22.4 и 22.5). В приведенном примере последний столбец City (рис. 22.4) был перемещен влево и стал первым (см. рис. 22.5).
Рис. 22.4
Изображение таблицы с управляющими элементами

Расширенные функции графического интерфейса 253
Рис. 22.5
Изменение размещения
таблицы с помощью
управляющих элементов
Создание управляющего элемента таблицы
ДЛЯ создания управляющего элемента таблицы укажите кнопку Table на инструментальной линейке
Create экрана Fullscreen Editor. Затем с помощью левой кнопки мыши отбуксируйте этот элемент в нужное место (можно изменить размеры элемента, потянув мышью за его правый угол). Управляющий элемент таблицы отображается на экране в виде пустого окна с линейками прокрутки. Задайте имя элемента в подсвеченном поле ввода Field Name. Например, если нужно вывести на экран поля Dic- tionary, то укажите кнопку задайте имя таблицы в верхней строке для ввода имени и выберите опции Yes (фрейм Template) и. Short (фрейм KeyWord). В диалоговом окне при нажатой кла- више клавиатуры Ctrl выделите поля таблицы. После того как все поля помечены, используйте команд)'
Cору для размещения выделенных полей на рабочем листе. При перемещении полей таблицы внутрь управляющего элемента они автоматически упорядочиваются, согласно их расположению в Dictionary,
как столбцы таблицы (см. рис. 22.6). В качестве заголовков столбцов используются краткие тексты-
Рис. 22.6
Задание управляющего
элемента таблицы
для столбцов Customer No.,
Name и City таблицы базы
данных CUSTOMERS

254 Глава 22
описания. Ширина каждого столбца шаблоном. Перемещая управляющий элемент правого утла таблицы, можно выровнять или подогнать размер фрейма.
Управляющий элемент таблицы так же. как и другие экранные элементы, можно связать с тами экранных полей. Для этого нужно пометить соответствующий фрейм таблицы и щелкнуть мышью на кнопке Field
(атрибуты полей). На экране появится диалоговое окно для изменения атрибутов
(см. рис. 22.7).
Рис. 22.7
Задание атрибутов
управляющего элемента
таблицы
Разрешается определять вертикальные и горизонтальные разделительные линии таблицы, а также задавать автоматическую настройку размера таблицы (длины и ширины ее ячеек) при изменении поль- зователем размера всего экрана (resizable). Можно установить кнопку Configurable (разрешается конфи- гурирование), она появляется в верхнем правом углу экрана. Тогда в процессе выполнения пользователь, щелкнув мышью на этой кнопке, сохранит параметры управляющего элемента для данно- го размещения таблицы на экране.
Прежде чем внутри управляющего элемента таблицы переместить несколько строк или столбцов, их нужно пометить. В диалоговом окне задания атрибутов имеется переключатель, с помощью которого можно выделять сразу несколько строк или столбцов. Если установлена опция выделения строк, то тумблер Line Markers (маркеры строк) должен быть включен. В этом случае слева от управляющего элемента таблицы отображается столбец с окошками тумблеров, используемых для выделения несколь- ких строк таблицы.
И, наконец, в левой части таблицы можно установить несколько несмещаемых столбцов, что позво- лит отслеживать на экране нумерацию столбцов при горизонтальном пролистывании таблицы. Напри- мер, при выборе более трех столбцов таблицы customers разумно сохранить столбец с номером клиента
Cust.No. на своем месте. Теперь при пролистывании таблицы по горизонтали данный столбец будет оставаться на одном и том же месте.
Определение управляющего элемента таблицы в программе
В программе управляющий элемент таблицы объявляется с помощью оператора controls (управляю- щий элемент):
c o n t r o l s c t r l _ c u s t t y p e
Содержимое управляющего элемента хранится во внутренней таблице, определяя способ отображе- ния ее на экране. Связь между управляющим элементом и внутренней таблицей устанавливается с по- мощью цикла в логике выполнения экрана. Заполнение управляющего элемента из внутренней таблицы происходит по событию process output. Поддерживается и обратный процесс:
управляющего элемента записывается во внутреннюю таблицу по событию process after input. Например, логика работы экрана с управляющим элементом списка клиентов может определяться программой:
p r o c e s s b e f o r module i n i t C t r l

Расширенные функции графического интерфейса 255
Модуль init_ctrl__cust инициализирует внутреннюю таблицу при ее первом вызове на экран:
Модуль РВО fill_ctrl_cust считывает в цикле строки внутренней таблицы
Номер индек- са строки таблицы определяется текущей строкой выводимой таблицы. Цикл считывания управляющего элемента таблицы завершается командой exit from step-loop:
После того как пользователь введет данные, по событию PAI выполняется модуль ко- торый изменяет содержимое каждой строки внутренней таблицы:
Изменение компоновки экрана
в процессе выполнения
ДЛЯ ТОГО чтобы при выполнении программы можно модифицировать расположение элементов на экране, необходимо с помощью специальной синтаксической конструкции цикла изменить атрибуты полей. Для этого в модуле РВО следует использовать команду modify screen между loop at screen и при этом каждое поле экрана будет последовательно обрабатываться. Разрешается модифици- ровать следующие параметры, характеризующие экранные поля:

— поле требует обязательного заполнения
• screen-input — поле подготовлено для ввода значения
• screen-invisible — поле невидимо на экране
• screen-length — длина поля
Для установки или отмены любой из этих характеристик используются соответственно значения 1
и 0. Например, чтобы сделать все поля экрана готовыми для ввода данных, в модуле РВО можно ис- пользовать следующий цикл:
В общем случае необходимо изменить характеристики лишь подмножества всех экранных полей.
Метод непосредственного обращения к полю экрана заключается в использовании условного оператора с указанием имени поля:

256 Глава 22
ДЛЯ одновременного изменения параметров нескольких полей их следует объединить в экранную группу, задав имя группы в атрибутах поля (поля ввода Groups). Например, на втором экране примера необходимо сделать невидимыми поля flight time (время рейса) и seats (число свободных мест).
После слова Groups задайте имя экранной группы (например,
для каждого поля, входящего в группу. В программе имя группы для экранных полей определяется с помощью поля module
* s u p p r e s s f i e l d s f o r f l i g h t and f r e e s e a t s l o o p a t if
=
s c r e e n - i n v i s i b l e e n d i f .
В примере все поля группы INV становятся невидимыми.
Каждое поле может быть связано не более чем с четырьмя группами, которые задаются в окне Screen Field Attributes в четырех полях ввода после слова Groups. В программных циклах разре- шено использовать четыре переменные: от до
Более сложный интерфейс пользователя
ДЛЯ использования в диалоговой программе большого числа функций меню рекомендуется иерархической структуры с помощью подменю. Подменю определяются так же, как функции меню верх- него уровня. Для быстрого вызова любой функции меню следует применять метод ускоренного
При создании статуса интерфейса диалоговой программы,
несколько экранов, нужно либо скопировать существующий статус, либо создать на него ссылку.
Вложенные меню и ускоренный доступ
Разработчик может определять иерархию подменю. Для создания подменю элемента ного меню достаточно дважды щелкнуть мышью на этом элементе. В результате на экране появится пустое подменю, функции которого задаются согласно рис. 22.8. В учебном примере элемент меню Book имеет
22.8
Определение подменю

Расширенные функции графического интерфейса 257
подменю для двух функций: функция Book используется для записи рейсов, а функция Book and send
для заказа билетов и рассылки пользователям счетов к оплате. Основное (родительское) меню не имеет кода функции, так как его единственная задача — обеспечить вывод на экран ниспадающего меню.
Вместо того чтобы каждый раз при выборе функции щелкать на ней мышью, можно применять метод ускоренного доступа (fast path). Суть его заключается в использовании последовательности сим- волов, являющейся ключевым сокращением названия соответствующей функции меню. Каждая функция статуса может быть связана с одним символом. При выполнении программы этот символ в названии элемента меню будет подчеркнут. Допускается также конкатенация таких сокращений. Для быстрого доступа к нужной функции меню следует ввести в системном поле ввода сначала точку, а затем сокра- щение. Например, если В является быстрой ссылкой на меню Book, a S — на Book and send, то для оперативного доступа к этим функциям следует задать в системном поле .BS.
Для определения сокращенного названия функции меню необходимо дважды щелкнуть мышью на имени функции на экране Maintain Status и задать символ в поле Fast Path. Этот символ должен входить в название функции меню (например, буква В может использоваться как сокращение для названия Book a Flight) и быть уникальным в данной иерархии меню.
Перечень всех символьных сокращений можно получить в списке функций статуса
интерфейса.
Завершение работы с экраном с помощью
команд выхода
Для того чтобы пользователь мог завершить работу с экраном, не выполняя проверки введенных данных, предусмотрены команды выхода. Обычно такие функции меню, как Back, Exit и Cancel явля- ются командами выхода. Любой код функции меню можно пометить в статусе GUI как команду выхода.
Для этого нужно дважды щелкнуть мышью на коде функции и в раскрывшемся диалоговом окне задать символ Е в поле Function
(тип функции).
В списке функций статусов интерфейса разрешается одновременно задавать тип
для нескольких функций.
В рамках логики выполнения модули, реализующие реакцию системы на команду выхода, определя- ются с помощью дополнения at exit-command определения module:
p r o c e s s
module
at
Если во время работы программы выполняется команда выхода, то модуль с дополнением at exit-command завершается первым. Если такой модуль выполняет команду выхода из экрана, то работа в текущем экране заканчивается.
Использование копий или ссылок
В большинстве программ функции меню транзакции отображаются на каждом экране, даже если они неактивны. Разработчик может многократно использовать статус GUI или его элементы (меню, инстру- ментальную линейку приложения или функциональные клавиши) двумя различными способами: создать другую копию или использовать ссылку. На рис. 22.9 показано, как работать со ссылками на элементы меню и функциональные клавиши и как копировать инструментальную линейку приложения. В учебном примере программы для туристического агентства для унификации можно использовать одни и те же элементы меню и функциональные клавиши. Однако инструментальные линейки приложения следует сделать различными, так как разные экраны будут иметь разные экранные кнопки.
Очевидно, что изменения, сделанные в копии статуса интерфейса, не повлияют на оригинал. Так как ссылка на статус GUI включает функции меню, которые могут оказаться бессмысленными в новом контексте, то их можно сделать неактивными. При выполнении неактивные функции выводятся на экран серым цветом.
Пример использования ссылок приведен в главе 19.

258 Глава 22
Рис. 22.9
Использование ссылок и
копий при копировании
статуса интерфейса
Оперативная справка и задание значений
по умолчанию
Справочная информация, контрольные таблицы и фиксированные значения полей таблицы обычно хранятся в Dictionary. При появлении на экране поля из Dictionary система обеспечивает доступ к этой информации и использует контрольные и фиксированные значения полей для вве- денных пользователем данных. Если информация из Dictionary не вполне соответствует требованиям прикладной программы, то разработчик может создать оперативный справочник,
используя экранные события process on и process on
(см. раздел "События, используемые для вывода на экран контекстно-зависимой справки").
При периодическом выполнении одной и той же транзакции полезно сохранять и повторно исполь- зовать начальные данные ввода. Например, если агент должен забронировать место для клиента на рейс из Big City в
Meyers на каждую пятницу на часов вечера с обратным рейсом по субботам в часов вечера, было бы полезно изменять в диалоге только дату рейса и не задавать каждый раз остальную информацию о клиенте. Для этого, используя идентификатор параметра (Parameter ID),
можно связать поля экрана с областью памяти, в хранятся последние значения введенных дан- ных, используемые по умолчанию для полей экрана. Технология работы с Parameter ID рассматривается в разделе "Значения по умолчанию для экранных полей".
Описание и контрольные таблицы Dictionary
ПОЛЯ
принадлежащие Dictionary, обеспечиваются описанием (клавиша списком допусти- мых значений (клавиша F4) и автоматической проверкой вводимых данных (см. главу 19). Если при определении экрана в качестве атрибута поля установлен Foreign Key, и в Dictionary имеется контроль- ная таблица или набор значений для проверки (см. главу 5), то на экран выводится набор допустимых значений. Система выдает сообщение об ошибке, если пользователь пытается задать значение, не вхо- дящее в перечень разрешенных.
События, используемые для вывода
контекстно-зависимой справки на экран
ДЛЯ создания оперативной справки, специфической для данной программы, используются специаль- ные экранные события process on и process on value-request. Например, если в Dictionary нет контрольной таблицы клиентов, можно вывести на экран допустимую для ввода информацию в

Расширенные функции графического интерфейса 259
отдельном диалоговом окне. Связь модуля с нужным полем реализуется в программе с помощью опера- тора field. При выполнении программы справа от поля ввода появляется изображение "стрелки вниз':
p r o c e s s o n module
Образец модуля определения значений:
module
D i s p l a y a l l c u s t o m e r s i n d i a l o g box c a l l s c r e e n 110
s t a r t i n g a t 2 0 1 0
e n d i n g a t 5 0
Команда call screen с дополнением starting at / ending at выводит в указанном месте экрана говое окно со списком всех клиентов. Использование полноэкранных всплывающих меню, списков и диалоговых окон рассматривается в разделе меню и диалоговые окна".
Значения по умолчанию для экранных полей
ДЛЯ вывода на экран значений, установленных по умолчанию для экранных используется
идентификатор параметра
ID), который может быть задан как для поля Dictionary, так и для поля, определенного в программе. Например, идентификатор параметра CAR для поля задан в Dictionary. Для сохранения в памяти данных, вводимых пользователем, включите тумблер SET
Parameter (установить параметр) на экране Field Attributes. Для обратной операции — чтения предыду- щего поля — используется тумблер GET Parameter (считать параметр) (см. рис. 22.10). В
учебном примере включены оба тумблера поля ввода planfli-carrid, размещенного справа от экранного поля Airline
(авиакомпании). В этом случае при вводе названия компании (например, ABC) оно принимается как значение по умолчанию для дальнейшей обработки, и затем пользователю предлага- ется первый экран программы заказа билетов на рейс.
В программе идентификатор параметра поля определяется в его атрибутах после ключевых слов parame- ter а чтение и задание параметра выполняется с помощью команд get parameter и set p a r a m e t e r i d 'CAR' f i e l d g e t p a r a m e t e r i d 'CAR' f i e l d p l a n f l i - c a r r i d .
Значение поля идентификатора указывается после ключевого слова field.
22.10
Использование параметров
SET и GET для задания
значения по умолчанию при
работе с полем

260 Глава 22
Использование полных экранов
и диалоговых блоков
Последовательность экранов можно организовать в виде очереди или стека. Очередь формируется с помощью команд set screen и leave screen. В стек текущий экран помещается оператором call screen
Кроме того, оператор call screen используется для вызова диалоговых окон. Для отображения списка во всплывающем окне можно переключить обработку списка, а затем использовать команду write так же, как при создании отчета.
Переключение на следующий экран
В учебном примере команды set screen и leave screen использованы для определения смены экранов, при этом оператор leave
"отбрасывает" указанный экран и отображает новый.
результате очередь экранов. В отличие от очереди, стек экранов можно задать с помо- щью команды call screen, по завершении которой управление следующей команде.
того, для экрана, используемого в команде screen, с помощью дополнений starting at и ending at можно определить место его расположения, создавая таким образом диалоговое (или окно
Вызов диалоговых окон с помощью команды call screen
Диалоговое окно вызывается командой call screen с дополнениями starting at и ending at x2 у
Числа xl и yl указывают на координаты верхнего левого угла всплывающего окна, а х2 и у2 — нижнего правого. Например, допустимые значения фамилий клиентов в программе бронирования можно вывести в диалоговом окне, созданном следующим образом:
module
* D i s p l a y a l l c u s t o m e r s in a d i a l o g box c a l l s c r e e n 110
s t a r t i n g a t 2 0 1 0
e n d i n g a t 5 0
После того как в диалоговом окне клиент выбран, управление передается в вызывающий экран который во время выбора находится на заднем плане (см. рис.
При этом, пока диалоговое активно,
вызывающего экрана тоже можно но любые действия в нем запрещены
Компоновка и логика работы с вызываемым экраном (диалоговым окном) создаются так как и для обычного полного экрана. В частности, диалоговое окно может содержать поля ввода, переключатели,
Рис. 22.11
Вызов экрана Customers
с помощью команды
call screen

Расширенные функции графического интерфейса 261
фреймы и управляющие элементы таблицы. Вывод списка в диалоговом окне рассматривается в разделе "Списки на основных экранах".
Если на экран нужно вывести отчет в
списка с помощью оператора
то можно
передать управление во всплывающее окно, аналогичное основному, используя команду
window (см. главу 17). Такое окно выводится на экран в виде маленького списка отчета, так как с
помощью команды write можно лишь отобразить поля. Работая в окнах списка, пользователь автома-
тически имеет доступ к стандартным экранным кнопкам и
клавишам, например, при
на
будет выведен предыдущий список.
Вызов диалоговых окон с помощью стандартных функций
В главе 20 представлено несколько функций, позволяющих поддерживать стандартный диалог. Эти функции используют методы, описанные в данной главе, но при этом не требуют полной проработки реализации диалога. Например, нужно создать диалоговое окно, в котором пользователю задается во- прос, следует ли продолжить работу программы, если существует опасность потери данных:
c a l l f u n c t i o n '
e x p o r t i n g
=
q u i t ? '
t i t l e = ' Leave c u s t o m e r i m p o r t i n g a n s w e r
В приведенном примере на экран выводится диалоговое окно с заголовком Leave customer list. Внут- ри окна сначала отображается стандартный текст Unsaved data will be lost (несохраненные данные будут утеряны), а затем выводится строка Really quit?. Пользователь может нажать на экранную кнопку Yes или No, и его ответ будет записан в поле вызывающей программы.
Полное описание функций стандартного диалога находится в оперативном справочнике
системы
Из любого экрана разрешен выбор Help R/3 Library. В полученном
контексте следует выбрать Basis components
АВАР/4 Development Workbench > Extended Applica-
tions Function Library
Standardized Dialog.
Использование различных статусов интерфейса
В большой прикладной программе могут существовать несколько статусов интерфейса, которые внут- ри нее следует различать. Обозначение текущего статуса всегда содержится в системном поле если подпрограмма должна вызываться в разных местах программы (и в разных ситуациях), то организовать это можно следующим образом:
when p e r f o r m t h e b o o k i n g when 'REQUEST'.
* P e r f o r m t h e f l i g h t r e q u e s t
В данном примере форма вызывается на экранах со статусами BOOKING и REQUEST.
Данная технология программирования обычно используется в приложениях, которые должны обра- батывать переключение операций между режимами отображения и внесения изменений. В этом случае разработчик всегда имеет дело с двумя различными статусами интерфейса одного и же экрана,
который должен использовать разные модули или подпрограммы при разных значениях статуса.
Списки на основных экранах
Списки, создаваемые командой write, обычно применяются при создании отчетов — программ, толь- ко читающих данные для вывода их на экран или на устройство печати (см. часть V). В языке АВАР/4
существует возможность отображения списка на основном экране диалоговой программы с помощью команды leave to list processing. Для этого сначала рекомендуется командой suppress dialog ("подавить"
диалог) закрыть доступ к диалоговому экрану, вместо которого будет выводиться список.
Например, для вывода на экран списка клиентов во всплывающем окне, вызываемом командой call screen, логику выполнения следует определить так:

262 Глава 22
module init process after input.
module
Модуль initjist устанавливает статус интерфейса, заголовок и выполняет подготовку к обработ- ке списка:
module
Initialize titlebar and status set titlebar set
Prepare list suppress leave to list-processing and return to screen
При определении статуса GUI диалогового окна в виде списка нужно выбрать тип статуса, как казано на рис. 22.12. При этом система автоматически включает в состав интерфейса всплывающего окна стандартные экранные кнопки и функциональные клавиши.
Используя дополнение and return to screen 0 команды leave to list-processing, в логике выполнения программы можно предусмотреть возврат в вызывающую программу после завершения работы со спис- ком. Модуль типа выводит на экран список:
module a c t i o n _ l i s t i n p u t .
Read a l l c u s t o m e r s
select
from customers into table
* Write all customers
new-page
loop at
write /
hide all customers-id.
22.12
Статус GUI для списка
клиентов, выводимых
в диалоговом окне

Расширенные функции графического интерфейса 263
endloop.
endmodule.
В данном случае команда hide применяется для хранения идентификаторов клиентов в скрытой об- ласти памяти (см. главу 17). Пользователь может просмотреть эту информацию, дважды щелкнув мышью на фамилии клиента:
После выбора клиента его фамилия записывается в соответствующее поле ввода программы брони- рования мест на авиарейс. Заметим, что в данном фрагменте программы для возврата в основной экран используется сокрашенная конструкция leave to screen 0, которая эквивалентна конструкции:
Резюме
• Используя "буксировку" графических объектов с помощью мыши, можно размещать на экране тумблеры, переключатели опций, экранные кнопки и управляющие элементы таблиц.
• При выполнении программы можно изменять размещение элементов на экране. Для этого исполь- зуется команда modify screen внутри конструкции loop at screen/endloop.
• Для одновременного изменения внешнего вида нескольких полей нужно объединить эти поля в экранную группу.
• Для организации иерархии ниспадающих меню используется элемент, называемый подменю.
• Для доступа к функциям меню используются сокращения и ускоренный доступ.
• Для завершения работы на экране без проверки введенных пользователем данных используются команды выхода.
• Существуют два способа многократного использования статуса GUI: с помощью копирования и по ссылке.
• Контекстная оперативная справка поддерживается с помощью специальных экранных событий process on help-request и process on value-request.
• Используя Parameter ID, можно задавать значение по умолчанию для экранного поля. Значения
Parameter ID могут устанавливаться и считываться на программном уровне с помощью команд set parameter и get parameter.
• Последовательность экранов задается с помощью очереди или стека. Для построения очереди используются команды set screen и leave screen; для стека — команда call screen.
• Размер вызываемого экрана может быть задан с помощью дополнения starting at / ending at.
• Системное поле содержит текущий статус GUI и может использоваться для выбора различных статусов GUI.
• По команде leave to list processing система выводит список на основной экран.
• При выводе списка во всплывающем окне следует использовать команду suppress dialog для запре- та доступа к основному диалоговому экрану.
• Для статуса GUI диалогового окна в виде списка применяется специальный тип статуса. Система автоматически подключает к нему экранные кнопки и функциональные клавиши.
Следующая часть посвящается средствам динамического программирования. В следующей главе рас- сматриваются динамические языковые конструкции (например, динамические операции с внутренними таблицами).

Часть VII
Динамическое
программирование
1   ...   14   15   16   17   18   19   20   21   ...   24


написать администратору сайта