Описание и компиляция экранных форм
Описание и компиляция экранных форм
В приведенном выше фрагменте использована экранная форма cehform.per. Ниже приведено ее описание. Это описание должно лежать в файле cehform.per и должно быть откомпилировано компилятором экранных форм INFORMIX'а form4gl.
Описание экранной формы cehform.per DATABASE zawod SCREEN { номер цех [f00] [f001 ] [f00] [f001 ] [f00] [f001 ] [f00] [f001 ] [f00] [f001 ] } TABLES ceh
ATTRIBUTES f00 = ceh.nomerceh; f001 = ceh.nameceh;
INSTRUCTIONS screen record cehscreen[5] (ceh.*) END
В секции DATABASE указана база данных; в секции SCREEN задана картинка, которая будет рисоваться на экране; В TABLES указываются таблицы, в ATRIBUTES указываются имена экранных полей, (и, возможно, их атрибуты) а в INSTRUCTIONS объявлен экранный массив cehscreen в пяти строках из двух полей (nomerceh и nameceh)
В качестве примера ниже приводится функция, реализующая простейший калькулятор. Возвращает значение вычисленного выражения. Скомпилируйте ее самостоятельно и посмотрите отладчиком, как она работает. function kalkulator() # Калькулятор define wyravenie, kalkulator char(64), kolichestwo int define stroka_kalkulatora char(200) define beep char(1) let beep=ascii 7 open window kalkulator at 2,2 with form "kalkulator" attribute(border, form line first)
input by name wyravenie, kalkulator without defaults before field kalkulator
let stroka_kalkulatora= "select count(*),",wyravenie," from systables"
whenever error continue prepare kalkulqtor_operator from stroka_kalkulatora if status<0 then display beep to kalkulator display "Неправильное выражение" to kalkulator next field wyravenie end if
declare kalkulator cursor for kalkulqtor_operator
foreach kalkulator into kolichestwo, kalkulator if status<0 then display beep to kalkulator display "Неправильное выражение" to kalkulator next field wyravenie end if end foreach whenever error stop
display kalkulator to kalkulator next field wyravenie end input
close window kalkulator return kalkulator
end function
Использованная в подпрограмме экранная форма должна быть описана в файле kalkulator.per и откомпилирована при помощи компилятора form4gl. DATABASE formonly SCREEN { Калькулятор. Чтобы закончить нажмите ESC [wyravenie ] [kalkulator ] } ATTRIBUTES wyravenie =formonly.wyravenie; kalkulator=formonly.kalkulator; END