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


Пример программы, выдающей отчет



Пример программы, выдающей отчет

DATABASE zawod MAIN DEFINE zapisx record like kadry.* DEFINE simw char (200), zapr char (300),fn char (18)

OPEN form maxprim from "maxprim" DISPLAY form maxprim # вывести экранную форму

CONSTRUCT BY NAME simw ON kadry.* # Введение критериев выбора # с экрана LET zapr="select * from kadry where ", simw clipped," order by tabnom "

MESSAGE simw PREPARE selpr FROM zapr # Изготовление запроса DECLARE qquer CURSOR FOR selpr # Объявление курсора для него

DISPLAY "Не забудьте нажать CTRL-O" AT 2,40 PROMPT "Файл, куда выводить отчет? или CR, если на экран: " FOR fn

IF length(fn)=0 then START REPORT kadryrep # на экран else START REPORT kadryrep TO fn # в файл END IF

# выполнить запрос и сбросить выбранные строки в отчет FOREACH qquer into zapisx.* # Очередную строку из курсора OUTPUT TO REPORT kadryrep(zapisx.*) # поместить в отчет END FOREACH FINISH REPORT kadryrep # Вывести результаты отчета END MAIN

REPORT kadryrep(z) DEFINE nameceh like ceh.nameceh DEFINE z record like kadry.* # nomerceh int, # номер цеха # tabnom serial, # табельн. номер # fio char(20), # фамилия # dolvn char(20), # должность # zarplata money(16,2), # зарплата # datarovd date # дата рожд. OUTPUT left margin 0 right margin 80 top margin 0 bottom margin 0 page length 23 ORDER BY z.nomerceh, z.tabnom # Упорядочить

FORMAT PAGE HEADER print "-------------------------------------------------------" print "цех|таб.ном|фио |должность |зарплата| дата рожд" print "_______________________________________________________"

ON EVERY ROW print z.nomerceh using "##", column 4,z.tabnom using "#####", column 13,z.fio clipped, column 28,z.dolvn clipped, column 43,z.zarplata using "$####.##", column 53,z.datarovd using "dd-mm-yyyy"

BEFORE GROUP OF z.nomerceh select @nameceh into nameceh from ceh where nomerceh=z.nomerceh skip to top of page skip 1 line print "Цех ",nameceh skip 1 line




Начало  Назад  Вперед