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
|