Файл спецификации экранной формы
Файлы спецификации формы состоят из трех обязательных секций (Database, Screen, Attributes) и двух необязательных (Tables, Instructions), расположенных в указанном ниже порядке.
Секция Database
Секция Database идентифицирует базу данных, характеристики столбцов таблиц которой будут использоваться для определения полей экранной формы на этапе ее компиляции утилитой Form4gl, либо указывает (FORMONLY), что для определения полей экранной формы не требуется какая-либо база данных.
Database {имя_БД | FORMONLY} [WITHOUT NULL INPUT],
где WITHOUT NULL INPUT - условие, запрещающее ввод NULL-значений.
Cекция Screen
Секция Screen задает точное расположение формы на экране.
Screen [SIZE lines [BY cols]]
{
[text] [field-tag] [graphics-char]
[text] [field-tag] [graphics-char]
. . .
}
[END]
По умолчанию число строк и символов равно соответственно 24 и 80.
Описание формата экрана состоит из массива полей экрана и текстовой информации, такой, как заголовки, поясняющие записи и т.д.
Правила описания полей экранной формы:
Дополнительно отметим графические символы для рисования рамок
\gp------------------q\g
\g| |\g
\gb------------------d\g
Ниже представлено описание секции Screen приведенной выше экранной формы Example1.per.
Секция Tables
Секция Tables специфицирует таблицы, характеристики столбцов которой будут использоваться для определения полей экранной формы на этапе ее компиляции утилитой Form4gl.
Tables
table | table_alias=[database [@server] :][owner.]]таблица
table | table_alias=[database [@server] :][owner.]]таблица
. . . . . . . . . . .
[End]
Ниже приведено возможное описание секции Tables.
Секция Attributes
Секция Attributes описывает поведение, внешний вид, допустимые входные значения, значения по умолчанию каждого поля в секции Screen и связывает каждое поле с именем поля. Каждое поле в секции Screen должно быть описано в секции Attributes. Порядок, в котором описаны поля секции Attributes, задает порядок по умолчанию перемещения курсора на экране.
Attributes
field-tag=field-description;
field-tag=field-description;
. . .
[End]
Двумя важнейшими атрибутами каждого поля являются имя поля и тип поля. Имя поля - это имя, используемое 4GL-программой для отображения в поле экранной формы данных при вводе или выводе. Тип поля может быть задан явно, либо неявно и обусловлен видом полей экранной формы:
Связь экранных полей со столбцами таблиц базы данных устанавливается во время компиляции файла экранной формы и служит для извлечения атрибутов столбцов (тип данных, длина и т.д.). Указанное имя столбца name_column становится именем поля и получает все характеристики столбца. В дальнейшем связь разрывается и имя поля служит связующим звеном между полями экрана и столбцами таблицы базы данных.
Формат описания полей, связанных со столбцами:
field-description =[table.]name_column[,attribute-list];
Имя или псевдоним таблицы обязателен лишь в том случае, когда одно и то же имя столбца упоминается более чем в одной таблице в экранной форме. С помощью вырезок в поле могут быть отображены части столбцов типа Char.
Второй тип связи используется для описания полей, не связанных со столбцами таблиц базы данных. Формат описания данного типа связи:
field-description =Formonly.field-name
[Type [data-type | LIKE table.column]]
[NOT NULL][,attribute-list];
Назначение записанных выше параметров:
Formonly - ключевое слово, информирующее, что поле field-tag не связано со столбцом таблицы базы данных и 4GL-программе доступно под именем field-name;
Type - тип данных в соответствии с типами данных Informix с длиной, определенной шириной отображения (по умолчанию предполагается CHAR);
NOT NULL - ключевое слово, информирующее, что поле обязательно должно иметь введенное значение.
Ниже приведен перечень атрибутов attribute-list, служащих для уточнения свойств полей:
1. AUTONEXT - автоматическое перемещение курсора в следующее поле после заполнения текущего при выполнении операции ввода
field-tag = table_column, AUTONEXT, . . .
2. COLOR - вывод текста поля на экран в цвете
field-tag = table_column,
COLOR=[color][ligth][WHERE условие 2 на field-tag], . . .
Список значени цвета и интенсивности изображения приведен выше.
3. COMMENTS - определение сообщения-подсказки
field-tag = table_column, COMMENTS="сообщение", . . .
4. DEFAULT - задание значения по умолчанию
field-tag = table_column, DEFAULT=значение.
5. DOWNSHIFT - замена прописных букв на строчные
field-tag = table_column, DOWNSHIFT, . . .
6. FORMAT - управление форматом вывода на экран для столбцов типа DECIMAL, SMALLFLOAT, FLOAT, DATE
field-tag = table_column, FORMAT="строка_формата", . . .
Строка_формата может содержать символы:
# - для представления цифры; mm, dd, yy - месяц, день, год для данных типа даты в различной форме представления и т.д.
7. INCLUDE - задание полю допустимых значений
field-tag = table_column, INCLUDE=(sense_list) , . . .
где sense_list - список, определяемый отдельными значениями (значение1, значение2, . . .), диапазоном значений (значение1 ТО значение2) или их комбинацией.
8. NOENTRY - предотвращение ввода данных во время операции добавления
field-tag = table_column, NOENTRY, . . .
9. NOUPDATE - предотвращение ввода данных во время операции обновления
field-tag = table_column, NOUPDATE, . . .
10. PICTURE - указание шаблона для вводимых символьных данных
field-tag = table_column, PICTURE="picture-string" , . . .
где picture- string - комбинация из трех символов: А - любая буква, # - любая цифра, X - любой символ.
11. REQUIRED - требование принудительного ввода данных в указанные поля во время операции добавления.
field-tag = table_column, REQUIRED, . . .
12. REVERSE - вывод на экран в реверсном изображении
field-tag = table_column, REVERSE, . . .
13. UPSHIFT - преобразование строчных букв в прописные.
field-tag = table_column, UPSHIFT, . . .
14. VERIFY - требование от пользователя ввода полей дважды, чтобы снизить вероятность ошибки при вводе.
field-tag = table_column, VERIFY, . . .
15. WORDWRAP - необходимость расположения длинной символьной строки в нескольких полях, имеющих один и тот же тэг
field-tag = table_column, WORDWRAP, . . .
Ниже представлено описание секции Screen приведенной выше экранной формы Example1.per.
Секция Instructions
Секция Instruction используется для
Секция начинается с ключевого слова Instructions и заканчивается необязательным ключевым словом END.
По умолчанию в качестве разграничителей полей выступают символы "[" и "]". Для изменения их в инструкции DELIMITERS данной секции в кавычках указываются два символа, определенных в качестве разграничителя для данной экранной формы.
Экранные записи и массивы служат для объединения экранных полей в группы.