diff --git a/WEGA/contrib/ingres/dbs/demo/pqr/report01 b/WEGA/contrib/ingres/dbs/demo/pqr/report01 new file mode 100644 index 0000000..24b4c03 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/demo/pqr/report01 @@ -0,0 +1,145 @@ +report + r01 /* Filename fuer den Interpretercode */ + # d01 /* Filename fuer die Beschreibung */ +with + /* page layout */ + columns 60 + lines 56 + all lines 66 + +/* Es folgen Makrodefinitionen, Makros ordnen Nummer Namen zu */ +/* da diese in der Regel leichter lesbar sind ! */ + + /* procedures */ + define p_fzr = 1 + + /* switches */ + define last_page = 1 + + /* variables */ + define next_page = 0 + define fzr = 1 + define grp_lohn = 2 + define grp_fzr = 3 + define grp_cnt = 4 + define abt_lohn = 5 + define abt_fzr = 6 + define abt_cnt = 7 + +/* Es folgen die Felddefinitionen. Die Feldnummer werden implizit */ +/* vereinbart. */ + define #d_name = char 17 + define #d_qual = char 4 + define #d_pkz = char 12 + define #d_lohn = char 4 + define #d_abt = char 1 + define #d_gruppe = char 7 + define #d_dummy = char 1 + +as /* REPORT BEGINN */ + +/* Prozedur zur Berechnung der FZR, Eingabeparameter ist die */ +/* Variable fzr, die gleichzeitig als Rueckgabewert dient. */ +proc p_fzr + set $fzr = ($fzr - 600) / 10 + if $fzr > 60 then set $fzr = 60 end if +return + +on pagebegin do /* SEITEN KOPF */ + '-' 60 \n + 'VEB Generatorwerke' \50 date \n + '1234 Berlin-Report' \50 time \n + 'Komplexstr. 13' \28 'Seite: ' integer page \n + '-' 60 \n2 + if ! page == 1 then + \20 'Liste der Abteilung ' char #d_abt + end if + \n2 +end + +on pageend do /* SEITEN FUSS */ + if ! ^last_page then + set $next_page = page + 1 + \36 'Es folgt Seite: ' integer $next_page + end if + \n2 +end + +on lineend do 'I' end /* ZEILEN ENDE */ + +on batchline do /* ZEILEN UMBRUCH */ + \18 + if #d_pkz from 7 to 7 == '4' + then 'maennl' + else 'weibl' + end if +end + +set line = 10 /* DECK BLATT */ +\\20 'Liste der Abteilungen ' \f + +for all do + /* leerer SATZ KOPF */ + + for one do /* SATZ VERARBEITUNG */ + /* Jede neue Abteilung soll auf eine neue Seite */ + if groupbegin d_abt then \f end if + + /* Jede neue Gruppe erhaelt eine Ueberschrift */ + if groupbegin d_gruppe then + '***** Gruppe ' + char #d_gruppe + ' *****' \n2 + 'Name' + \15 'Qualifikation' + \32 'Geb.-Datum' + \45 'Lohn' + \55 'FZR' \n + \15 'maennl/weibl' \n2 + end if + + set $fzr = #d_lohn + set $grp_lohn += $fzr + call p_fzr + set $grp_fzr += $fzr + set $grp_cnt += 1 + char batch 10 #d_name + \18 char #d_qual + \33 char to 2 #d_pkz '.' + char from 3 to 4 #d_pkz '.' + char from 5 to 6 #d_pkz + \44 integer @4 #d_lohn ',-M' + \54 integer @2 $fzr ',-M' \n + + /* Am Ende jeder Gruppe, aggregierte Werte ausgeben. */ + if groupend d_gruppe then + set $abt_lohn += $grp_lohn + set $abt_fzr += $grp_fzr + set $abt_cnt += $grp_cnt + set $grp_lohn := $grp_cnt + set $grp_fzr := $grp_cnt + \28 'Durchschnitt: ' + \44 integer @4 $grp_lohn ',-M' + \54 integer @2 $grp_fzr ',-M' \n2 + set $grp_lohn = 0 + set $grp_fzr = 0 + set $grp_cnt = 0 + end if + + /* Am Ende jeder Abteilung, aggregierte Werte ausgeben. */ + if groupend d_abt then + set $abt_lohn := $abt_cnt + set $abt_fzr := $abt_cnt + 'Durchschnitt der Abteilung: ' + \44 integer @4 $abt_lohn ',-M' + \54 integer @2 $abt_fzr ',-M' \n + set $abt_lohn = 0 + set $abt_fzr = 0 + set $abt_cnt = 0 + end if + end one /* ENDE SATZ VERARBEITUNG */ + /* leerer SATZ FUSS */ +end all + +set ^last_page /* REPORT FUSS */ +; diff --git a/WEGA/contrib/ingres/dbs/demo/pqr/report02 b/WEGA/contrib/ingres/dbs/demo/pqr/report02 new file mode 100644 index 0000000..bd8893c --- /dev/null +++ b/WEGA/contrib/ingres/dbs/demo/pqr/report02 @@ -0,0 +1,50 @@ +report r02 # d02 +with + /* page layout */ + columns 70 + lines 60 + all lines 72 + + /* domains */ + define #land = char 12 + define #erfinder = char 20 + define #erfindung = char 36 + define #jahr = char 9 + +as + +on pagebegin do + '-' 70 \n + \20 'E R F I N D U N G E N' + \61 date \n2 + \1 'Erfinder' + \22 'Erfindung' + \61 'Jahr' + \n + '-' 70\n + if not groupbegin land then + \n2 + \5 'Land:' + \12 char @12 #land + \n3 + end if +end + +for all do + for one do + if groupbegin land then + \n2 + \5 'Land:' + \12 char @12 #land + \n3 + end if + \1 char @20 #erfinder + \22 char @36 #erfindung + \61 char @9 #jahr + \n + if groupend land and all lines < 6 then + \f + end if + end one +end all +; diff --git a/WEGA/contrib/ingres/dbs/demo/pqr/report03 b/WEGA/contrib/ingres/dbs/demo/pqr/report03 new file mode 100644 index 0000000..44fa233 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/demo/pqr/report03 @@ -0,0 +1,40 @@ +report r03 # d03 +with + columns 50 + lines 60 + all lines 66 + + define #num = integer 2 + define #name = char 20 + define #gehalt = integer 2 + define #leiter = integer 2 + define #gebdat = integer 2 + define #einstdat = integer 2 + +as + +on pagebegin do + '-' 50 \n + 'Gehalt und Geburtsjahr nach Leitern' + \42 date \n2 + 'Abtlg.' + \8 'Name' + \30 'Gehalt' + \40 'Geburtsjahr' + \n + '-' 50 \n2 +end + +for all do + for one do + if groupbegin leiter then + \n integer @4 #leiter + end if + \8 char @20 #name + \30 integer @5 #gehalt ',- M' + \40 integer @9 #gebdat + \n + end one +end all +'-' 50 \n2 +;