4GL. Описание экранных форм DDATABASEE {db-name ║ "db-name"} [WITHOUT NULL INPUT] DSCREENE [ SIZE lines [BY columns] ] ┐▒┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐▓ D{E ┐ SQL Экранные формы┐  Первая страница экранной формы ┘▐┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┘▌ . . . ┐ 2 страницы*66 строки┐  D}E ┐  файл DhsperE ┐  DSCREENE [ SIZE lines [BY columns] ] ┐⌠┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐⌡┐■ D{E Вторая страница экранной формы и т.д., но не более 20 страниц . . . Текст . . . D[fieldtag ]E . . . fieldtag - слово из букв, цифр и знаков _ начинающееся с буквы, не длиннее 50 символов . . . Графические символы для рисования рамок: \gp-------q\g \g║\g \g║\g \gb-------d\g D}E DTABLESE # Открывать не более 12 таблиц ! [tab-alias=[owner.]] table ... DATTRIBUTESE fieldtag = [table.]column [,список атрибутов] ; fieldtag=column[n1,n2]; - показывать только часть символьного столбца . . . fieldtag=DISPLAYONLY [ALLOWING INPUT] TYPE datatype [NOT NULL][,attr]; # datatype - любой, кроме SERIAL для полей ALLOWING INPUT создается фиктивная таблица displaytable и подставляется в конец списка таблиц DСоединениеE: # [*]- указывает на главный столбец для # verifing joining fieldtag=[*]column1 [,список атрибутов1];=column2 [,список атрибутов2]; DилиE fieldtag=[*]column1 = column2 [,список атрибутов] ; . . . DВозможные аттрибуты:E AUTONEXT COMMENTS = "Строка комментария" NOENTRY NOUPDATE QUERYCLEAR очищать joining поле перед запросом REQUIRED VERIFY требовать подтверждения DEFAULT = "CA" INCLUDE = ("CA", "OR", 1 to 50, 87,90) LOOKUP Дополнительная справка при запросе в fieldtag1 fieldtag =table1.col, LOOKUP [fieldtag1=table2.col1 [,fieldtag2=table2.col2 ,...] ] JOINING [*]table2.col FORMAT = "mm/dd/yyyy" для дат FORMAT = "####.#####" для чисел PICTURE = "тел.A##-#-###(XX)" A-буква,#-цифра,X-символ WORDWRAP [COMPRESS] поле расположено в нескольких строках ZEROFILL RIGHT правоустановленное поле UPSHIFT DOWNSHIFT REVERSE негатив COLOR =[цвет] [интенсивн] . . . [WHERE условия1] [,COLOR =[цвет2] [интенсивн2] . . . WHERE условия2] цвет: интенсивность: WHITE CYAN DreverseE underline YELLOW MAGENTA RED  blink left  GREEN BLUE BLACK  [ DINSTRUCTIONSE Совместное соединение. [COMPOSITES [*] . . .] [DELIMITERS "ab" # по умолчанию "ab"="[]" [table1 MASTER table2] # Порядок активизации таблиц. [table2 MASTER table3] # Можно table1=table3.  . . . DКонтрольные блоки BEFORE, AFTERE используются для: Движения курсора Проверки вводимых значений Вычисления и изменения значения полей {BEFORE ║ AFTER } {[EDITADD] [EDITUPDATE]} OF table/col-list операция . . . { AFTER | BEFORE } [ADD] [UPDATE] [QUERY] [REMOVE] [DISPLAY] OF table1 операция . . . . . . Виды операций: COMMENTS [BELL] [REVERSE] "Комментарий" ABORT прервать контрольный блок NEXTFIELD = {fieldtag ║ EXITNOW} перевести курсор IF ... THEN ... ELSE ... LET fieldtag= выражение в выражение включаются активные имена fieldtag, но не column ! Можно использовать функции: TOTAL OF fieldtag, COUNT OF fieldtag, AVERAGE OF fieldtag, MAX OF fieldtag, MIN OF fieldtag, TODAY, CURRENT операции +,-,*,/ , () [ DENDE ] окончание инструкций