summaryrefslogtreecommitdiff
path: root/app/baisy/2.2.1-schulis/src/isp.erf.steueroperationen
blob: 87654f077900be6ef368da6529db72a6887fce3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
PACKET isperfsteueroperationenDEFINES 
erfassungsbildschirmaufbauenundvonerfassungsbildschirmeinlesen,
vonerfassungsbildschirmeinlesen,maskezeigenundallefeldereinlesen,
allesvonerfassungsbildschirmeinlesen,schluesselbearbeiten,
bearbeitetenschluesseleinlesen,angegebenedatenpruefenundevtlspeichern,
schluesselloeschvorbereitung,schluesselloeschfrage,schluesselloeschen,
neuenschluesseleinfuegen,schluesselzeigen,datensatzzeigen,
ausgesuchtezurbearbeitung,ausgesuchtezumloeschen,zurueckzureinzelbearbeitung,
erfassungswert,setzeerfassungsfeld,erfassungsmaske,setzefehlerstatus,
setzeerfassungsparameter,erfassungsfelder,datumskonversion,datumrekonversion:
LET fnrschluessel=2,fnrschluessellaenge=3,fnrerstesfeld=4;LET erfparamsetzen=
1,erfwertezeigen=2,erfwertepruefen=3,erfwerteindbwerte=4,erfwertelesen=6,
erfwerteaendern=7,erfwerteeinfuegen=8,erfwerteloeschen=9;LET 
meldungloeschfrage=65,meldungspeicherung=50,meldungloeschung=61,
meldungkeineloeschung=62,meldungkeineaenderung=63,meldunggibtsschon=64,
meldunggibtsnicht=66,meldungletzter=67,meldungkeineliste=68,
meldunglistenerstellung=7,pruefemeldung=57,meldungschluesselzulang=60,
meldungnichteingefuegt=70;LET dateiname="Liste zu den allgemeinen Diensten",
leer="",null=0,oblitrenner="$";LET dateinummerschluessel=137;BOOL VAR 
neuerschluessel:=FALSE ;LET maxfelderzahl=100;ROW maxfelderzahlTEXT VAR 
erfassungsfeld;TAG VAR maske;INT VAR startpos;FILE VAR f;TEXT VAR 
programmname,aktschluessel;TEXT VAR aktmaskenname;INT VAR 
aktmaxschluessellaenge,aktindex,aktdateinummer;INT VAR anzschlfelder:=1;INT 
VAR fnraktletztesfeld,fnrakterstesfeld;INT VAR fnrfehlerhaftesfeld;PROC 
erfassungsbildschirmaufbauenundvonerfassungsbildschirmeinlesen(PROC (INT 
CONST )erfassungspeziell):erfassungspeziell(erfparamsetzen);startprozedur;
erfassungsbildschirmaufbauen;startpos:=fnrschluessel;
vonerfassungsbildschirmeinlesen.END PROC 
erfassungsbildschirmaufbauenundvonerfassungsbildschirmeinlesen;PROC 
maskezeigenundallefeldereinlesen(PROC (INT CONST )erfassungspeziell):
erfassungspeziell(erfparamsetzen);startprozedur;
erfassungsbildschirmganzaufbauen;allesvonerfassungsbildschirmeinlesen.END 
PROC maskezeigenundallefeldereinlesen;PROC startprozedur:
programminitialisieren;bildschirminitialisieren.END PROC startprozedur;PROC 
programminitialisieren:page;programmnameholen;standardkopfmaskeausgeben(
programmname).programmnameholen:programmname:=text(vergleichsknoten).END 
PROC programminitialisieren;PROC bildschirminitialisieren:initmaske(maske,
aktmaskenname);erfassungsfelderzumanfanginitialisieren.
erfassungsfelderzumanfanginitialisieren:INT VAR i;FOR iFROM 1UPTO min(
maxfelderzahl,(fnraktletztesfeld+5))REP erfassungsfeld(i):=""PER .END PROC 
bildschirminitialisieren;PROC erfassungsbildschirmaufbauen:
standardkopfmaskeaktualisieren(programmname);erfassungsmaskeausgeben;
felderzurausgabevorbereiten;felderausgeben.erfassungsmaskeausgeben:show(maske
).felderzurausgabevorbereiten:IF schluessellaengenichtzuberuecksichtigenTHEN 
fnrakterstesfeld:=fnrschluessellaengeELSE fnrakterstesfeld:=fnrerstesfeld;
erfassungsfeld(fnrschluessellaenge):=text(aktmaxschluessellaenge)FI ;protect(
maske,fnrakterstesfeld,fnraktletztesfeld+1,TRUE );loeschfeldverdecken.
schluessellaengenichtzuberuecksichtigen:aktmaxschluessellaenge=0.
loeschfeldverdecken:LET rahmenzeichen="=";erfassungsfeld(fnraktletztesfeld+1)
:=rahmenzeichen.felderausgeben:put(maske,erfassungsfeld,1);startpos:=
fnrschluessel.END PROC erfassungsbildschirmaufbauen;PROC 
erfassungsbildschirmganzaufbauen:standardkopfmaskeaktualisieren(programmname)
;erfassungsmaskeausgeben;felderzurausgabevorbereiten;loeschfeldverdecken.
erfassungsmaskeausgeben:show(maske).felderzurausgabevorbereiten:
fnrakterstesfeld:=fnrschluessel+anzschlfelder;.loeschfeldverdecken:LET 
rahmenzeichen="=";erfassungsfeld(fnraktletztesfeld+1):=rahmenzeichen;protect(
maske,fnraktletztesfeld+1,TRUE ).END PROC erfassungsbildschirmganzaufbauen;
PROC vonerfassungsbildschirmeinlesen:schluesseleinlesen.schluesseleinlesen:
get(maske,erfassungsfeld,startpos).END PROC vonerfassungsbildschirmeinlesen;
PROC allesvonerfassungsbildschirmeinlesen:put(maske,erfassungsfeld,1);
startpos:=fnrschluessel;get(maske,erfassungsfeld,startpos)END PROC 
allesvonerfassungsbildschirmeinlesen;PROC schluesselbearbeiten(PROC (INT 
CONST )erfassungspeziell):BOOL VAR schluesselexistiert:=FALSE ;loeschemeldung
(maske);aktschluessel:=erfassungsfeld(fnrschluessel);datendirektlesen(PROC (
INT CONST )erfassungspeziell,schluesselexistiert);IF schluesselexistiertTHEN 
zeigeschluesselzurbearbeitung(PROC (INT CONST )erfassungspeziell);
bearbeitetenschluesseleinlesenELSE melde(maske,meldunggibtsnicht);return(1)
FI .END PROC schluesselbearbeiten;PROC zeigeschluesselzurbearbeitung(PROC (
INT CONST )erfassungspeziell):neuerschluessel:=FALSE ;protect(maske,
fnrakterstesfeld,fnraktletztesfeld,FALSE );erfassungspeziell(erfwertezeigen);
aktschluessel:=erfassungsfeld(fnrschluessel);startpos:=fnrschluessel;put(
maske,erfassungsfeld,startpos);END PROC zeigeschluesselzurbearbeitung;PROC 
bearbeitetenschluesseleinlesen:get(maske,erfassungsfeld,startpos);END PROC 
bearbeitetenschluesseleinlesen;PROC angegebenedatenpruefenundevtlspeichern(
BOOL CONST zuspeichern,PROC (INT CONST )erfassungspeziell):INT VAR schritte;
IF zuspeichernTHEN speichernteil;ELSE nichtspeichernteil;FI .
nichtspeichernteil:meldeauffaellig(maske,meldungkeineaenderung);
vorbereitendernaechstenschluesselbehandlung(schritte,PROC erfassungspeziell);
return(schritte).speichernteil:fnrfehlerhaftesfeld:=0;
pruefeplausibilitaetallgemein(PROC (INT CONST )erfassungspeziell);IF 
datenfehlerfreiTHEN erfassungspeziell(erfwertepruefen)FI ;IF datenfehlerfrei
THEN BOOL VAR satzgeschrieben;datenwegschreiben;IF NOT satzgeschriebenAND 
neuerschluesselTHEN melde(maske,meldungnichteingefuegt);return(1)ELSE 
vorbereitendernaechstenschluesselbehandlung(schritte,PROC erfassungspeziell);
return(schritte)FI ELSE fehlerbehandeln;return(1)FI .datenwegschreiben:
meldespeicherung;datenindatenbankspeichern.datenindatenbankspeichern:
erfassungspeziell(erfwerteindbwerte);IF neuerschluesselTHEN 
neuenschluesseleinfuegenELSE bearbeitetenschluesselzurueckschreibenFI .
bearbeitetenschluesselzurueckschreiben:erfassungspeziell(erfwerteaendern);.
neuenschluesseleinfuegen:erfassungspeziell(erfwerteeinfuegen);satzgeschrieben
:=dbstatus=0.meldespeicherung:melde(maske,meldungspeicherung).datenfehlerfrei
:fnrfehlerhaftesfeld=0.fehlerbehandeln:startpos:=fnrfehlerhaftesfeld.END 
PROC angegebenedatenpruefenundevtlspeichern;PROC schluesselloeschvorbereitung
(PROC (INT CONST )erfassungspeziell):BOOL VAR schluesselexistiert:=FALSE ;
loeschemeldung(maske);aktschluessel:=erfassungsfeld(fnrschluessel);
datendirektlesen(PROC (INT CONST )erfassungspeziell,schluesselexistiert);IF 
schluesselexistiertTHEN loeschennachfrage(PROC (INT CONST )erfassungspeziell)
;schluesselloeschfrageELSE melde(maske,meldunggibtsnicht);return(1)FI .END 
PROC schluesselloeschvorbereitung;PROC loeschennachfrage(PROC (INT CONST )
erfassungspeziell):zeigeschluesselzurbearbeitung(PROC (INT CONST )
erfassungspeziell);melde(maske,meldungloeschfrage);protect(maske,
fnrschluessel,TRUE );END PROC loeschennachfrage;PROC schluesselloeschfrage:
TEXT VAR xy;startpos:=fnraktletztesfeld+1;get(maske,xy,startpos).END PROC 
schluesselloeschfrage;PROC schluesselloeschen(BOOL CONST zuloeschen,PROC (
INT CONST )erfassungspeziell):INT VAR schritte;IF zuloeschenTHEN melde(maske,
meldungloeschung);erfassungspeziell(erfwerteloeschen);IF dbstatus<>0THEN put(
maske,("Löschen - Fehlerstatus: "+text(dbstatus)),1);pauseFI ELSE melde(maske
,meldungkeineloeschung)FI ;vorbereitendernaechstenschluesselbehandlung(
schritte,PROC erfassungspeziell);return(schritte).END PROC schluesselloeschen
;PROC neuenschluesseleinfuegen(PROC (INT CONST )erfassungspeziell):BOOL VAR 
schluesselexistiert;loeschemeldung(maske);aktschluessel:=erfassungsfeld(
fnrschluessel);pruefeneuenschluessel(PROC (INT CONST )erfassungspeziell,
schluesselexistiert);IF schluesselexistiertTHEN melde(maske,meldunggibtsschon
);return(1)ELSE neuerschluesselvorbereitung;bearbeitetenschluesseleinlesenFI 
.neuerschluesselvorbereitung:neuerschluessel:=TRUE ;protect(maske,
fnrakterstesfeld,fnraktletztesfeld,FALSE );startpos:=fnrschluessel;put(maske,
erfassungsfeld,startpos).END PROC neuenschluesseleinfuegen;PROC 
pruefeneuenschluessel(PROC (INT CONST )erfassungspeziell,BOOL VAR existiert):
TEXT VAR schluessel:=compress(erfassungsfeld(fnrschluessel));existiert:=
FALSE ;IF schluessel<>leerTHEN datendirektlesen(PROC (INT CONST )
erfassungspeziell,existiert);existiert:=dbstatus=0;FI .END PROC 
pruefeneuenschluessel;PROC vorbereitendernaechstenschluesselbehandlung(INT 
VAR schritte,PROC (INT CONST )erfassungspeziell):IF exists(dateiname)THEN 
holenaechstenschluesselauslisteELSE bereitenaechstebenutzereingabevor;
schritte:=2FI .holenaechstenschluesselausliste:BOOL VAR ok,
kannbearbeitetwerden:=FALSE ;TEXT VAR oblischl2:="";
holenaechstenschluesselausdatei(aktschluessel,oblischl2,ok);WHILE okREP 
erfassungsfeld(fnrschluessel):=aktschluessel;datendirektlesen(PROC (INT 
CONST )erfassungspeziell,ok);IF okTHEN kannbearbeitetwerden:=TRUE ;ok:=FALSE 
ELSE holenaechstenschluesselausdatei(aktschluessel,oblischl2,ok)FI PER ;IF 
kannbearbeitetwerdenTHEN zeigeschluesselzurbearbeitung(PROC (INT CONST )
erfassungspeziell);startpos:=fnrschluessel;put(maske,erfassungsfeld,startpos)
;schritte:=1ELSE behandleendederlistenabarbeitung;schritte:=3FI .
behandleendederlistenabarbeitung:melde(maske,meldungletzter);pause(20);
bereitenaechstebenutzereingabevor.bereitenaechstebenutzereingabevor:protect(
maske,fnrschluessel,FALSE );protect(maske,fnrakterstesfeld,fnraktletztesfeld,
TRUE );erfassungsfelderinitialisieren;startpos:=fnrschluessel;put(maske,
erfassungsfeld,startpos).END PROC vorbereitendernaechstenschluesselbehandlung
;PROC schluesselzeigen(PROC (INT CONST )erfassungspeziell):schluesselzeigen(
PROC (INT CONST )erfassungspeziell,FALSE ,BOOL PROC pruefungdummy)END PROC 
schluesselzeigen;PROC schluesselzeigen(PROC (INT CONST )erfassungspeziell,
BOOL CONST scanja,BOOL PROC pruefungspeziell):IF aktindex=
dateinummerschluesselTHEN systemdboff;datensatzzeigen(PROC (INT CONST )
erfassungspeziell,scanja,BOOL PROC pruefungspeziell);LEAVE schluesselzeigen
FI ;BOOL VAR listeexistiertnicht:=FALSE ;TEXT VAR sicherungstupel;systemdbon;
savetupel(aktdateinummer,sicherungstupel);melde(maske,meldunglistenerstellung
);systemdbon;restoretupel(aktdateinummer,sicherungstupel);systemdboff;
aktschluessel:=erfassungsfeld(fnrschluessel);objektlistestarten(aktindex,
aktschluessel,FALSE ,listeexistiertnicht);IF listeexistiertnichtTHEN melde(
maske,meldungkeineliste);return(1)ELSE objektlistenausgabe(PROC (INT CONST )
erfassungspeziell,scanja,BOOL PROC pruefungspeziell)FI END PROC 
schluesselzeigen;PROC datensatzzeigen(PROC (INT CONST )erfassungspeziell):
datensatzzeigen(PROC (INT CONST )erfassungspeziell,FALSE ,BOOL PROC 
pruefungdummy)END PROC datensatzzeigen;PROC datensatzzeigen(PROC (INT CONST )
erfassungspeziell,BOOL CONST scanja,BOOL PROC pruefungspeziell):BOOL VAR 
listeexistiertnicht:=FALSE ;melde(maske,meldunglistenerstellung);
aktschluessel:=erfassungsfeld(fnrschluessel);objektlistestarten(aktindex,
aktschluessel,TRUE ,#26.03.87#listeexistiertnicht);IF listeexistiertnicht
THEN melde(maske,meldungkeineliste);return(1)ELSE datensatzlistenausgabe(
PROC (INT CONST )erfassungspeziell,scanja,BOOL PROC pruefungspeziell)FI .END 
PROC datensatzzeigen;PROC ausgesuchtezurbearbeitung(PROC (INT CONST )
erfassungspeziell):BOOL VAR ok,kannbearbeitetwerden:=FALSE ;
objektlistebeenden(dateiname,TRUE );TEXT VAR oblischl2;
holeerstenschluesselausdatei(aktschluessel,oblischl2,ok);WHILE okREP 
erfassungsfeld(fnrschluessel):=aktschluessel;datendirektlesen(PROC (INT 
CONST )erfassungspeziell,ok);IF okTHEN kannbearbeitetwerden:=TRUE ;ok:=FALSE 
ELSE holenaechstenschluesselausdatei(aktschluessel,oblischl2,ok)FI PER ;IF 
kannbearbeitetwerdenTHEN erfassungsbildschirmaufbauen;
zeigeschluesselzurbearbeitung(PROC (INT CONST )erfassungspeziell);
bearbeitetenschluesseleinlesenELSE erfassungsfelderinitialisieren;
erfassungsbildschirmaufbauen;return(2)FI .END PROC ausgesuchtezurbearbeitung;
PROC ausgesuchtezumloeschen(PROC (INT CONST )erfassungspeziell):BOOL VAR ok,
kannbearbeitetwerden:=FALSE ;objektlistebeenden(dateiname,TRUE );TEXT VAR 
oblischl2;holeerstenschluesselausdatei(aktschluessel,oblischl2,ok);WHILE ok
REP erfassungsfeld(fnrschluessel):=aktschluessel;datendirektlesen(PROC (INT 
CONST )erfassungspeziell,ok);IF okTHEN kannbearbeitetwerden:=TRUE ;ok:=FALSE 
ELSE holenaechstenschluesselausdatei(aktschluessel,oblischl2,ok)FI PER ;IF 
kannbearbeitetwerdenTHEN erfassungsbildschirmaufbauen;loeschennachfrage(PROC 
(INT CONST )erfassungspeziell);schluesselloeschfrageELSE 
erfassungsfelderinitialisieren;erfassungsbildschirmaufbauen;return(2)FI .END 
PROC ausgesuchtezumloeschen;PROC datendirektlesen(PROC (INT CONST )
erfassungspeziell,BOOL VAR dirok):erfassungspeziell(erfwertelesen);dirok:=
dbstatus=0;END PROC datendirektlesen;PROC erfassungsfelderinitialisieren:
erfassungsfeld(fnrschluessel):="";INT VAR feldnr;FOR feldnrFROM 
fnrakterstesfeldUPTO fnraktletztesfeldREP erfassungsfeld(feldnr):="";PER .
END PROC erfassungsfelderinitialisieren;PROC holeerstenschluesselausdatei(
TEXT VAR feld1,feld2,BOOL VAR ok):IF NOT exists(dateiname)THEN ok:=FALSE ;
LEAVE holeerstenschluesselausdateiFI ;f:=sequentialfile(input,dateiname);
holenaechstenschluesselausdatei(feld1,feld2,ok);END PROC 
holeerstenschluesselausdatei;PROC holenaechstenschluesselausdatei(TEXT VAR 
feld1,feld2,BOOL VAR ok):TEXT VAR thesaurustext:="";IF eof(f)THEN ok:=FALSE ;
loeschedieerstellteobjektlisteELSE getline(f,thesaurustext);
bestimmeschluesselausthesaurustext;ok:=TRUE FI .
bestimmeschluesselausthesaurustext:INT VAR schluesselbeginn:=pos(
thesaurustext,oblitrenner);INT VAR schluesseltrennung:=pos(thesaurustext,
oblitrenner,schluesselbeginn+1);IF schluesseltrennung>0THEN feld1:=subtext(
thesaurustext,schluesselbeginn+1,schluesseltrennung-1);feld2:=subtext(
thesaurustext,schluesseltrennung+1)ELSE feld1:=subtext(thesaurustext,
schluesselbeginn+1);feld2:=leerFI .END PROC holenaechstenschluesselausdatei;
PROC loeschedieerstellteobjektliste:forget(dateiname,quiet);END PROC 
loeschedieerstellteobjektliste;PROC put(TAG CONST t,ROW maxfelderzahlTEXT 
VAR pfeld,INT CONST pos):INT VAR i;FOR iFROM posUPTO maxfelderzahlREP IF 
fieldexists(t,i)THEN put(t,pfeld(i),i)FI ;PER ;END PROC put;PROC protect(TAG 
VAR maske,INT CONST anfangfeld,endefeld,BOOL CONST schreibschutz):IF endefeld
>=anfangfeldTHEN setzefeldschutzfuerdiebenanntenfelderFI .
setzefeldschutzfuerdiebenanntenfelder:INT VAR feldnr;FOR feldnrFROM 
anfangfeldUPTO endefeldREP protect(maske,feldnr,schreibschutz)PER .END PROC 
protect;PROC pruefeplausibilitaetallgemein(PROC (INT CONST )erfassungspeziell
):melde(maske,pruefemeldung);INT VAR fehlstatus;pruefe(1,maske,TEXT PROC (
INT CONST )erfassungswert,fnrschluessel,null,null,leer,fehlstatus);IF 
fehlstatus<>0THEN setzefehlerstatus(fehlstatus);LEAVE 
pruefeplausibilitaetallgemeinFI ;IF schluessellaengemussueberprueftwerden
THEN IF eingabelaenge>aktmaxschluessellaengeTHEN melde(maske,
meldungschluesselzulang);setzefehlerstatus(fnrschluessel);LEAVE 
pruefeplausibilitaetallgemeinFI FI ;BOOL VAR schluesselexistiert;IF 
neuerschluesselTHEN pruefeneuenschluessel(PROC (INT CONST )erfassungspeziell,
schluesselexistiert);IF schluesselexistiertTHEN melde(maske,meldunggibtsschon
);setzefehlerstatus(fnrschluessel)FI ELSE IF erfassungsfeld(fnrschluessel)<>
aktschluesselTHEN pruefeneuenschluessel(PROC (INT CONST )erfassungspeziell,
schluesselexistiert);IF schluesselexistiertTHEN setzeaufaltensatzzurueck;
melde(maske,meldunggibtsschon);setzefehlerstatus(fnrschluessel);ELSE 
setzefehlerstatus(0);FI ELSE setzefehlerstatus(0);FI FI .
setzeaufaltensatzzurueck:TEXT VAR falscherschluessel:=erfassungsfeld(
fnrschluessel);erfassungsfeld(fnrschluessel):=aktschluessel;datendirektlesen(
PROC (INT CONST )erfassungspeziell,schluesselexistiert);erfassungsfeld(
fnrschluessel):=falscherschluessel.eingabelaenge:length(erfassungsfeld(
fnrschluessel)).schluessellaengemussueberprueftwerden:aktmaxschluessellaenge>
0.END PROC pruefeplausibilitaetallgemein;PROC zurueckzureinzelbearbeitung:
loeschedieerstellteobjektliste;standardkopfmaskeaktualisieren(programmname);
protect(maske,fnrschluessel,FALSE );protect(maske,fnrakterstesfeld,TRUE );
erfassungsfelderinitialisieren;startpos:=fnrschluessel;put(maske,
erfassungsfeld,startpos);return(3);END PROC zurueckzureinzelbearbeitung;PROC 
setzeerfassungsfeld(TEXT CONST feldinhalt,INT CONST feldnr):erfassungsfeld(
feldnr):=feldinhaltEND PROC setzeerfassungsfeld;TEXT PROC erfassungswert(INT 
CONST feldnr):IF (feldnr>maxfelderzahl)OR (feldnr<1)THEN ""ELSE 
erfassungsfeld(feldnr)FI .END PROC erfassungswert;ROW 100TEXT PROC 
erfassungsfelder:erfassungsfeldEND PROC erfassungsfelder;TAG PROC 
erfassungsmaske:maskeEND PROC erfassungsmaske;PROC setzefehlerstatus(INT 
CONST feldnr):fnrfehlerhaftesfeld:=feldnr.END PROC setzefehlerstatus;PROC 
setzeerfassungsparameter(INT CONST dateinummer,INT CONST schluessellaenge,
TEXT CONST maskenname,INT CONST letzteserfassungsfeld):aktindex:=dateinummer;
aktdateinummer:=dateinr(primdatid(dateinummer));aktmaxschluessellaenge:=
schluessellaenge;aktmaskenname:=maskenname;fnraktletztesfeld:=
letzteserfassungsfeld;anzschlfelder:=anzkey(dateinr(primdatid(aktdateinummer)
));END PROC setzeerfassungsparameter;PROC setzeerfassungsparameter(INT CONST 
dateinummer,TEXT CONST maskenname,INT CONST letzteserfassungsfeld):LET 
keineschluessellaenge=0;setzeerfassungsparameter(dateinummer,
keineschluessellaenge,maskenname,letzteserfassungsfeld).END PROC 
setzeerfassungsparameter;TEXT PROC datumskonversion(TEXT CONST datum):TEXT 
VAR d:=datum;IF nurblanksoderleer(datum)OR d="  .  .  "THEN "01.01.00"ELSE 
changeall(d," ","0");IF nochnichtkonvertiertTHEN insertchar(d,".",3);
insertchar(d,".",6);FI ;dFI .nochnichtkonvertiert:pos(d,".")=0.ENDPROC 
datumskonversion;BOOL PROC nurblanksoderleer(TEXT CONST t):INT VAR i;FOR i
FROM 1UPTO length(t)REP IF (tSUB i)<>" "THEN LEAVE nurblanksoderleerWITH 
FALSE FI PER ;TRUE ENDPROC nurblanksoderleer;TEXT PROC datumrekonversion(
TEXT CONST datum):TEXT VAR d:=datum;changeall(d,".","");IF d="010100"THEN d:=
""FI ;dENDPROC datumrekonversion;END PACKET isperfsteueroperationen