Учебно-справочное пособие по СУБД Informix

         

Программирование Экранного Обмена.



Программирование Экранного Обмена.

В любой момент времени на экране терминала существует ТЕКУЩЕЕ окно, через которое и выполняется ввод/вывод вашей программы. С окном связаны используемые при вводе и выводе атрибуты (например, green, revers, underline и т.п.) и номера строк окна, используемых операторами MESSAGE, PROMPT и ERROR для вывода.
При открытии нового окна оно становится текущим и и весь ввод/вывод будет направляться уже в него.
В окно можно вывести экранную форму, которая, представляет собой набор экранных полей, имеющих имена, и в эти поля (из этих полей), обращаясь к ним по имени, можно выводить (вводить) данные с помощью оператора DISPLAY (INPUT). Экранные поля можно объединять в экранные записи. Описание экранных полей и самой формы располагается отдельно от программы в файле описания экранной формы.
Ниже приведен пример программы, иллюстрирующий работу с окнами. OPEN WINDOW wind1 AT 2,30 WITH 10 ROWS, 40 COLUMNS ATTRIBUTE(BORDER, REVERSE, MESSAGE LINE FIRST) # текущим окном является wind1

. . . OPEN WINDOW wind2 AT 5,15 WITH FORM "schoolp" ATTRIBUTE(GREEN,PROMPT LINE LAST, MESSAGE LINE LAST, FORM LINE FIRST) # текущим окном является wind2

CLEAR WINDOW wind1 . . .

CURRENT WINDOW IS wind1 # текущим окном является wind1

OPEN FORM form1 from "schoolp" # Инициализировать форму form1 # Взяв ее описание из файла # schoolp.frm DISPLAY FORM form1 # Вывести форму form1 в текущее окно # т.е. в wind1


В результате работы этих операторов на экране терминала появится приблизительно такая картинка: ¬'¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬' ¬ ¬'¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬' окно ¬  ¬  ¬  значение равно 8 ¬  ...¬wind1 ¬  ¬  ¬'¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬' ¬  ¬  цех [ 2] [литейный ] ¬  ¬ ¬щ¬-¬L ¬  ¬  ¬  таб.номер [26 ] ¬  ¬  окно ¬  ¬  ¬  фамилия [Петров У.Е. ] ¬  ¬  ...¬ wind2 ¬  ¬  ¬  должность [бригадир ] ¬  ¬  ¬+ ¬  ¬  ¬  зарплата [$340 ] ¬ ¬щ¬-¬-¬-¬-¬-¬-¬-¬-¬L¬  ¬  ¬  дата рождения [31.12.1952] ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬"¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬" ¬  ¬  789 ¬  ¬  ¬  ¬"¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬" ¬  ¬  ¬  нет таких ¬  ¬"¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬"



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