Описание анкетного редактора |
Под анкетным редактором подразумевается набор полей ввода, кнопок, статического текста и меток, произвольно расположенный в прямоугольной области экрана.
<анкетный-редактор> = screen <имя> [<текст-лепестка-вкладки>] [<контексты>]; [ <координаты> ] [ <лист> ] <анкета> end;
<имя> - идентификатор, который используется для ссылки на данный анкетный редактор (например, в качестве параметра функции SetFormat).
<текст-лепестка-вкладки> - текст для формирования надписей на лепестках закладок в панели с вкладками (см. "Панель с вкладками. ").
<контексты> - контексты справочника, линии статуса и строка подсказки. Синтаксическая конструкция служит для связывания с интерфейсом отдельных тем файла подсказки, статус-строки и строки подсказки. См. "Контексты. ".
<координаты> - координаты данной области ввода относительно окна в котором она находится. Координаты двух областей ввода могут либо совпадать, либо не пересекаться. Если координаты нескольких областей ввода совпадают, то такие области называются переключаемыми форматами. С помощью специальной функции SetFormat можно менять активный формат из программы. Для переключаемых форматов могут быть описаны разные корневые таблицы. См. "Координаты. ".
<лист> - идентификатор корневой таблицы для данной области ввода. См. "Лист. ".
<анкета> - видимое представление анкетного редактора. Может быть описано в формате разметки экрана или в формате описания управляющих элементов:
<анкета> = <описание-экрана> | <управляющие-элементы>
<описание-экрана> - описание содержимого анкетного редактора посредством разметки экрана (см. пример 1):
<описание-экрана> = [<описание-bevel>] [fields {<описание-поля>}] [<описание-кнопок>] <разметка-экрана>
<описание-bevel> - визуально выделяет прямоугольную область экрана. Описание конструкции приведено в разделе "Выделение прямоугольной области (bevel). ".
<описание-поля> - описание поля, отображаемого в анкетном редакторе:
<описание-поля> = <идентификатор-поля> [ <контексты> ] : [ <атрибуты-поля> ];
<идентификатор-поля> - идентификатор, который используется для ссылки на данное поле.
<контексты> - контексты справочника, линии статуса и строка подсказки. Синтаксическая конструкция служит для связывания с полем отдельных тем файла подсказки, статус-строки и строки подсказки. См. "Контексты. ".
<атрибуты-поля> - см. раздел "Атрибуты поля. ".
Для анкетного редактора атрибут <размер-поля>.<ширина> игнорируется. Максимальная длина строки ввода поля вычисляется по максимальной длине поля из логической таблицы. Если требуется указать количество знаков после запятой, то необходимо указать и максимальную длину (любую, т.к. она все равно игнорируется).
<описание-кнопок> - содержит описание всех кнопок, отображаемых в анкетном редакторе, см. "Описание кнопок. ".
<разметка-экрана> - текстовый вид диалогового окна, отображаемого на дисплее, см. "Разметка экрана. ".
<управляющие-элементы> - описание содержимого анкетного редактора посредством объявления в секции controls управляющих элементов, из которых состоит анкетный редактор (см. пример 2). Описание конструкции приведено в разделе "Секция управляющих элементов controls".
Пример 1. Описание содержимого анкетного редактора посредством разметки экрана.
screen employeeScreen; show at (1,1,40,8); bevel b1 {2, 2, 39, 3, bsRaised, bsBox}; bevel b2 {4, 2, 39, 5, bsLowered, bsFrame}; fields name; code:Protect; salary:[10.2]; buttons cmDoSomething; << Имя .@@@@@@@@@@@@@@@@@@@@@@@@@@ Код .@@@@@@ <. Кнопка .> Зарплата .@@@@@@@@@@@@@@@@ >> end;
Пример 2. Описание содержимого анкетного редактора посредством объявления управляющих элементов.
screen scrTest; bounds (,,40.5,20.1); controls button bounds (2,15,15,16), name=btn1, cmYes, 'OK' ('Все сделали', hcButton1, scButton1): Default; edit bounds (14, 3, 34, 4), name=field1, s1 ('Нажми сюда', hcEdit1, scEdit1) : noProtect; label bounds (2, 3, 12, 4), name=tla1, '~П~оле s1:'; checkboxes bounds (2, 6, 12, 7), name=cb1, i1 ('Выбери всех', , ) : [list 'Item 1.1', 'Item 1.2'], noProtect; radiobuttons bounds (20, 6, 35, 17), name=rb1, i2 ('Выбери меня', , ) : [list 'Item 2.1', 'Item 2.2']; end;
Полный текст примера см. в разделе "Секция управляющих элементов controls".