Язык программирования баз данных Informix-4GL

         

Файл спецификации экранной формы


Файлы спецификации формы состоят из трех обязательных секций (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.

Описание формата экрана состоит из массива полей экрана и текстовой информации, такой, как заголовки, поясняющие записи и т.д.

Правила описания полей экранной формы:

  • поля задаются квадратными скобками, определяющими местоположение и ширину поля, и тэгами field-tag (ярлыками, метками, признаками) полей, идентифицирующими поле в секциях Attributes и Instructions;
  • имена тэгов записываются по правилам записи идентификаторов;
  • имена тэгов не есть то же самое, что имена полей; секция атрибутов связывает каждый тэг с именем поля;
  • один и тот же тэг может быть использован более чем в одной позиции секции Screen;
  • ширина полей для числовых величин должна быть достаточной для размещения максимального из чисел;
  • в случае данных типа CHAR символьные строки при необходимости могут усекаться.
  • Дополнительно отметим графические символы для рисования рамок

    \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-программой для отображения в поле экранной формы данных при вводе или выводе. Тип поля может быть задан явно, либо неявно и обусловлен видом полей экранной формы:

  • поля формы, связанные со столбцами таблиц базы данных;


  • поля формы, не связанные со столбцами таблиц базы данных и носящие название Formonly.


  • Связь экранных полей со столбцами таблиц базы данных устанавливается во время компиляции файла экранной формы и служит для извлечения атрибутов столбцов (тип данных, длина и т.д.). Указанное имя столбца 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 данной секции в кавычках указываются два символа, определенных в качестве разграничителя для данной экранной формы.

    Экранные записи и массивы служат для объединения экранных полей в группы.


    Содержание раздела