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

AFTER GROUP OF  z.nomerceh
 need 2 lines
 print " В цехе ",nameceh clipped,2 spaces,
       group count(*) using "#####" ," человек, "
 print " Средняя зарплата ",
       group avg(z.zarplata) using "##### руб.## коп"

PAGE TRAILER
 print "заполнена страница номер", pageno
 pause "нажмите ВВОД"

END REPORT
╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜

Вот что увидит на пользователь во время работы программы:
+-------------------------------------------------------------+
|Укажите файл, куда выводить отчет, или CR, если на экран:    |
|                                 Не забудьте нажать CONTROL-О|
|                                                             |
|----------------------------------------------               |
|     цех   [1:4] [                     ]                     |
| таб.номер [           ]                                     |
| фамилия   [*ов                 ]                            |
| должность [                    ]                            |
| зарплата  [>500         ]                                   |
|дата рождения [          ]                                   |
|                                                             |
|                                                             |
nomerceh between 1 and 4 and fio matches "*о*" and zarplata>500
|                                                             |
+-------------------------------------------------------------+


цех|таб.ном|фио |должность |зарплата| дата рожд _______________________________________________________________ Цех дирекция 1 34 иванов директор $ 4000.00 1 35 кононов зав. по снабжению$ 4000.00 В цехе дирекция 2 человек, Средняя зарплата 4000 руб.00 коп заполнена страница номер 1 нажмите ВВОД
цех|таб.ном|фио |должность |зарплата| дата рожд _______________________________________________________________ Цех литейный 2 12 окунев рабочий $ 2000.00 2 14 липко лаборант $ 2000.00 2 18 пухов мастер $ 2000.00 2 21 сухов рабочий $ 2000.00 2 24 угольков рабочий $ 2000.00 В цехе литейный 5 человек, Средняя зарплата 2000 руб.00 коп заполнена страница номер 2 нажмите ВВОД
цех|таб.ном|фио |должность |зарплата| дата рожд _______________________________________________________________ Цех гараж 4 9 потруев слесарь $ 1230.00 4 12 гундосов шофер $ 2000.00 В цехе гараж 2 человек, Средняя зарплата 1615 руб.00 коп заполнена страница номер 3 нажмите ВВОД

Last-modified: Wed, 17 Apr 1996 04:45:13 GMT List100_CounterSpyLOG
Сайт управляется системой uCoz