Описание анкетного редактора Назад В начало Вперед

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

<анкетный-редактор> = 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".

Оглавление раздела

Секция управляющих элементов controls