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

         

Фрагмент, реализующий окошко подсказки.



Фрагмент, реализующий окошко подсказки.

Ниже приведен пример программирования подсказки (в процессе интерактивного диалога) с использованием экранного массива. Таблица ceh содержит два столбца: номер цеха и его название. В приведенном фрагменте вызывается функция wyborceh, которая выводит содержимое таблицы ceh в экранный массив. Пользователь передвигает курсор на название нужного ему цеха и нажимает клавишу CR. Подпрограмма определяет номер цеха и возвращает его вызывающей программе. DATABASE zawod . . . let nc= wyborceh() . . . FUNCTION wyborceh() # Выбор цеха, для внесения изменений DEFINE counter int DEFINE ceharr ARRAY[25] OF RECORD # массив для хранения nomerceh int, # номерцеха данных из таблицы nameceh char(20) # название цеха ceh END RECORD

# Открыть окно с рамкой и вывести в него экранную форму cehform OPEN WINDOW cehwind AT 4 ,6 WITH FORM "cehform" ATTRIBUTE(BORDER)

# Объявить курсор для выбора содержимого из таблицы ceh DECLARE cehcurs CURSOR FOR SELECT * FROM ceh ORDER BY nomerceh

# Выполнить запрос и все выбранные строки поместить в програм- # ный массив ceharr LET counter = 0 FOREACH cehcurs INTO ceharr[counter+1].* LET counter = counter + 1 IF counter >=25 THEN EXIT FOREACH END IF END FOREACH # счетчик counter равен фактическому числу строк выданных в # курсор

MESSAGE "Выберите цех и нажмите CR"

# Вывести в экранный массив cehscreen в экранной форме cehform # counter первых строк из программного массива ceharr call set_count(counter) DISPLAY ARRAY ceharr TO cehscreen.* ON KEY (CONTROL-M) EXIT DISPLAY END DISPLAY # Прервать показ экранного массива при нажатии клавиши CR

# закрыть окно с экранной формой cehform CLOSE WINDOW cehwind

let counter=arr_curr() #номер строки массива, #на котором нажато CR RETURN ceharr[counter].nomerceh #номер цеха, #на котором нажато CR END FUNCTION
А это пользователь увидит на экране: ¬'¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬' ¬ номер цех ¬  ¬  [3 ] [токарный ]¬  ¬  [4 ] [гараж ]¬  ¬  [5 ] [конюшня ]¬  ¬  [6 ] [столовая ]¬  ¬  [ ] [ ]¬  ¬  Выберите цех и нажмите CR ¬  ¬"¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬"



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