ING_DB
This commit is contained in:
parent
ddecb20b5c
commit
99226e94a8
|
|
@ -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 */
|
||||||
|
;
|
||||||
|
|
@ -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
|
||||||
|
;
|
||||||
|
|
@ -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
|
||||||
|
;
|
||||||
Loading…
Reference in New Issue