summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/4.zeitwuensche bearbeiten
blob: c52a4a9cd8c339d75a9063305895fefb8c44a323 (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
PACKET zeitwuenschebearbeitenDEFINES zeitwuenschebearbeiten,
zeitwuenschekopieren,zeitwuenschespeichern:LET bearbmaske=
"ms zeitwuensche bearb",zulgewichte="�-3�-2�-1�-0�+0�+1�+2�+3�",fldkzlehrer=2
,fldparaphe=3,fldkzsugrup=4,fldjgst=5,fldkenn=6,fldkzraeume=7,fldraeume=8,
fldkzfaecher=9,fldfaecher=10,fldkzkopp=11,fldkopp=12,fldhjkz=13,bearbfldbez=2
,bearbfldmo1=3,bearbfldmo12=14,bearbflddi12=26,bearbfldmi12=38,bearbflddo12=
50,bearbfldfr12=62,bearbfldsa6=68,bearbfldutanz=69,bearbfldutgew=70,
bearbfldvmanz=71,bearbfldvmgew=72,bearbfldnmanz=73,bearbfldnmgew=74,posanzut=
1,posgewut=3,posanzvm=4,posgewvm=6,posanznm=7,posgewnm=9,laengeallezeitw=132,
laengejgst=2,laengeparaphe=4,laengefach=2,laengesugrup=6,laengesugrupkenn=4,
laengeraum=4,laengebezfeld=22,meldungwarten=69,meldungobjektunbek=55,
meldungfalschekz=56,meldungkeinelehrer=337,meldungkeinelv=321,
meldungkeinefaecher=68,meldungkeinesugrup=332,meldungkeineraeume=365,
meldungwertfalsch=34,meldungwertfehlt=129,meldungpruefen=329,meldungspeichern
=50,meldungnichtsp=63,trenner="�",leererunbestwunsch="         ",
raumkenndaten="c02 raeume",schuljahr="Schuljahr",halbjahr="Schulhalbjahr",
kennpar="P",kennsugrup="S",kennraum="R",kennfach="F",kennkopp="K",minus="-",
plus="+";INT VAR i;INT VAR prueffeld:=2,fall,objektlaenge:=0,anztage,anzvm,
anznm,dbstatusbeimholen,hjkenn:=-1;TEXT VAR schj:="",schhj:="",hjkennz:="",
startobjekt,allefaecher:=trenner,alleraeume:=trenner,alleparaphen:=trenner,
allesugruppen:=trenner;TEXT VAR bearbfolge:="",bezug,bsbestzw:="",bsunbestzw
:="",dbbestzw:="",dbunbestzw:="";TEXT VAR leererbestwunsch:=
"                                                                  "+
"                                                                  ";LET 
logbucheintrag="Anw. 4.1.4 Zeitwünsche Lehrer geändert";PROC 
zeitwuenschebearbeiten:standardmeldung(meldungwarten,"");
pruefeingmaskeundsetzewerte;standardstartproc(bearbmaske);
standardkopfmaskeaktualisieren(text(vergleichsknoten)+" "+schhj+"."+" "+text(
schj,2)+"/"+subtext(schj,3));zeitwuenscheausgeben(startobjekt,bezug);
standardnproc.pruefeingmaskeundsetzewerte:hjkennz:=standardmaskenfeld(fldhjkz
);IF (hjkenn=0CAND hjkennz="")COR (hjkenn=1CAND hjkennz<>"")COR hjkenn=-1
THEN ermittlehalbjahrFI ;IF standardmaskenfeld(fldkzlehrer)<>""THEN fall:=
fldkzlehrer;bezug:=kennpar;IF restleer(fall)THEN startobjekt:=
standardmaskenfeld(fldparaphe);IF startobjekt<>""THEN startobjekt:=text(
startobjekt,laengeparaphe);IF bestandsfehlerTHEN IF alleparaphen<>trenner
THEN standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1)FI ;
LEAVE zeitwuenschebearbeitenELSE bearbfolge:=subtext(alleparaphen,pos(
alleparaphen,trenner+startobjekt+trenner)+laengeparaphe+2);FI ;ELSE IF 
alleparaphen=trennerTHEN holalleparaphenFI ;IF alleparaphen=trennerTHEN 
standardmeldung(meldungkeinelehrer,"");infeld(fall+1);return(1);LEAVE 
zeitwuenschebearbeitenELSE bearbfolge:=subtext(alleparaphen,laengeparaphe+3);
startobjekt:=subtext(alleparaphen,2,2+laengeparaphe-1)FI ;FI ;objektlaenge:=
laengeparaphe;ELSE standardmeldung(meldungfalschekz,"");infeld(prueffeld);
return(1);LEAVE zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzsugrup)
<>""THEN fall:=fldkzsugrup;bezug:=kennsugrup;IF restleer(fall)THEN 
objektlaenge:=laengejgst+laengesugrupkenn;startobjekt:=standardmaskenfeld(
fldjgst);IF startobjekt<>""THEN startobjekt:=jgstaufber(startobjekt);
startobjektCAT text(standardmaskenfeld(fldkenn),laengesugrupkenn);IF 
bestandsfehlerTHEN IF allesugruppen<>trennerTHEN standardmeldung(
meldungobjektunbek,"");infeld(fall+1);return(1)FI ;LEAVE 
zeitwuenschebearbeitenELSE bearbfolge:=subtext(allesugruppen,pos(
allesugruppen,trenner+startobjekt+trenner)+objektlaenge+2);FI ;ELSE IF 
allesugruppen=trennerTHEN holallesugruppen;FI ;IF allesugruppen=trennerTHEN 
standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1);LEAVE 
zeitwuenschebearbeitenELSE bearbfolge:=subtext(allesugruppen,laengesugrup+3);
startobjekt:=subtext(allesugruppen,2,2+laengesugrup-1)FI ;FI ;ELSE 
standardmeldung(meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE 
zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzraeume)<>""THEN fall:=
fldkzraeume;bezug:=kennraum;IF restleer(fall)THEN startobjekt:=
standardmaskenfeld(fldraeume);IF startobjekt<>""THEN startobjekt:=text(
startobjekt,laengeraum);IF bestandsfehlerTHEN IF alleraeume<>trennerTHEN 
standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1)FI ;LEAVE 
zeitwuenschebearbeitenELSE bearbfolge:=subtext(alleraeume,pos(alleraeume,
trenner+startobjekt+trenner)+laengeraum+2);FI ;ELSE IF alleraeume=trenner
THEN holalleraeumeFI ;IF alleraeume=trennerTHEN standardmeldung(
meldungkeineraeume,"");infeld(fall+1);return(1);LEAVE zeitwuenschebearbeiten
ELSE bearbfolge:=subtext(alleraeume,laengeraum+3);startobjekt:=subtext(
alleraeume,2,2+laengeraum-1)FI ;FI ;objektlaenge:=laengeraum;ELSE 
standardmeldung(meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE 
zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzfaecher)<>""THEN fall:=
fldkzfaecher;bezug:=kennfach;IF restleer(fall)THEN startobjekt:=
standardmaskenfeld(fldfaecher);IF startobjekt<>""THEN startobjekt:=text(
startobjekt,laengefach);IF bestandsfehlerTHEN IF allefaecher<>trennerTHEN 
standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1);FI ;LEAVE 
zeitwuenschebearbeitenELSE bearbfolge:=subtext(allefaecher,pos(allefaecher,
trenner+startobjekt+trenner)+laengefach+2);FI ;ELSE IF allefaecher=trenner
THEN holallefaecherFI ;IF allefaecher=trennerTHEN standardmeldung(
meldungkeinefaecher,"");infeld(fall+1);return(1);LEAVE zeitwuenschebearbeiten
ELSE bearbfolge:=subtext(allefaecher,laengefach+3);startobjekt:=subtext(
allefaecher,2,2+laengefach-1)FI ;FI ;objektlaenge:=laengefach;ELSE 
standardmeldung(meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE 
zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzkopp)<>""THEN fall:=
fldkzkopp;bezug:=kennkopp;IF restleer(fall)THEN startobjekt:=
standardmaskenfeld(fldkopp);IF startobjekt<>""THEN IF bestandsfehlerTHEN IF 
wert(fnrlvsj)=schjCAND wert(fnrlvhj)=schhjTHEN standardmeldung(
meldungobjektunbek,"");infeld(fall+1);return(1)FI ;LEAVE 
zeitwuenschebearbeitenFI ;ELSE holestartobjektFI ;ELSE standardmeldung(
meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE zeitwuenschebearbeiten
FI ELSE standardmeldung(meldungwertfehlt,"");infeld(fldkzlehrer);return(1);
LEAVE zeitwuenschebearbeitenFI .ermittlehalbjahr:allesugruppen:=trenner;schhj
:=schulkenndatum(halbjahr);schj:=schulkenndatum(schuljahr);IF hjkennz=""THEN 
geplanteshjundsjberechnen(schhj,schj);hjkenn:=1ELSE hjkenn:=0FI .
holestartobjekt:inittupel(dnrlehrveranstaltungen);putwert(fnrlvsj,schj);
putwert(fnrlvhj,schhj);putwert(fnrlvkopplung,"");search(ixlvsjhjkopp,FALSE );
IF wert(fnrlvsj)=schjCAND wert(fnrlvhj)=schhjCAND dbstatus<2THEN startobjekt
:=wert(fnrlvkopplung)ELSE standardmeldung(meldungkeinelv,"");infeld(fall);
return(1);LEAVE zeitwuenschebearbeitenFI .END PROC zeitwuenschebearbeiten;
PROC zeitwuenscheausgeben(TEXT CONST objekt,bez):IF fall=fldkzlehrerTHEN 
standardmaskenfeld(text("Lehrer: "+objekt,laengebezfeld),bearbfldbez)ELIF 
fall=fldkzsugrupTHEN standardmaskenfeld(text("Schülergruppe: "+startobjekt,
laengebezfeld),bearbfldbez)ELIF fall=fldkzraeumeTHEN standardmaskenfeld(text(
"Raum: "+objekt,laengebezfeld),bearbfldbez)ELIF fall=fldkzfaecherTHEN 
standardmaskenfeld(text("Fach: "+objekt,laengebezfeld),bearbfldbez)ELSE 
standardmaskenfeld(text("Kopplung: "+objekt,laengebezfeld),bearbfldbez)FI ;
infeld(1);loeschebildschirm;zeitwunschholen;IF dbstatus=0THEN 
zeitwunschausgebenELSE setzedbwerteFI ;standardfelderausgeben;infeld(
bearbfldmo1).loeschebildschirm:FOR iFROM bearbfldmo1UPTO bearbfldnmgewREP 
standardmaskenfeld("",i)PER .zeitwunschholen:inittupel(dnrzeitwuensche);
putwert(fnrzwsj,schj);putwert(fnrzwhj,schhj);putwert(fnrzwbezug,bez);putwert(
fnrzwbezugsobjekt,compress(objekt));search(dnrzeitwuensche,TRUE );
dbstatusbeimholen:=dbstatus.zeitwunschausgeben:dbbestzw:=wert(
fnrzwbestimmtewuensche);dbunbestzw:=wert(fnrzwunbestimmtewuensche);
gibbestwuenscheaus(dbbestzw);gibunbestwuenscheaus(dbunbestzw).setzedbwerte:
dbbestzw:=leererbestwunsch;dbunbestzw:=leererunbestwunsch.END PROC 
zeitwuenscheausgeben;PROC gibbestwuenscheaus(TEXT CONST bestwunsch):INT VAR 
suchpos:=1;TEXT VAR wunsch:="";WHILE suchpos<>0REP suchpos:=pos(bestwunsch,
minus,suchpos);IF suchpos<>0THEN wunsch:=subtext(bestwunsch,suchpos,suchpos+1
);standardmaskenfeld(wunsch,suchposDIV 2+3);suchposINCR 1FI ;PER ;suchpos:=1;
WHILE suchpos<>0REP suchpos:=pos(bestwunsch,plus,suchpos);IF suchpos<>0THEN 
wunsch:=subtext(bestwunsch,suchpos,suchpos+1);standardmaskenfeld(wunsch,
suchposDIV 2+3);suchposINCR 1FI ;PER .END PROC gibbestwuenscheaus;PROC 
gibunbestwuenscheaus(TEXT CONST unbestwunsch):TEXT VAR datum;IF unbestwunsch
<>leererunbestwunschTHEN datum:=unbestwunschSUB posanzut;IF datum<>" "THEN 
standardmaskenfeld(datum,bearbfldutanz);FI ;datum:=unbestwunschSUB posgewut;
IF datum<>" "THEN standardmaskenfeld(datum,bearbfldutgew);FI ;datum:=
unbestwunschSUB posanzvm;IF datum<>" "THEN standardmaskenfeld(datum,
bearbfldvmanz)FI ;datum:=unbestwunschSUB posgewvm;IF datum<>" "THEN 
standardmaskenfeld(datum,bearbfldvmgew)FI ;datum:=unbestwunschSUB posanznm;
IF datum<>" "THEN standardmaskenfeld(datum,bearbfldnmanz)FI ;datum:=
unbestwunschSUB posgewnm;IF datum<>" "THEN standardmaskenfeld(datum,
bearbfldnmgew)FI ;FI END PROC gibunbestwuenscheaus;BOOL PROC bestandsfehler:
IF fall=fldkzlehrerTHEN pruefparapheELIF fall=fldkzsugrupTHEN pruefsugrup
ELIF fall=fldkzraeumeTHEN pruefraumELIF fall=fldkzfaecherTHEN prueffachELIF 
fall=fldkzkoppTHEN pruefkoppELSE FALSE FI .pruefparaphe:IF alleparaphen=
trennerTHEN holalleparaphen;IF alleparaphen=trennerTHEN standardmeldung(
meldungkeinelehrer,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
alleparaphen,trenner+startobjekt+trenner)=0.pruefsugrup:IF allesugruppen=
trennerTHEN holallesugruppen;IF allesugruppen=trennerTHEN standardmeldung(
meldungkeinesugrup,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
allesugruppen,trenner+startobjekt+trenner)=0.pruefraum:IF alleraeume=trenner
THEN holalleraeume;IF alleraeume=trennerTHEN standardmeldung(
meldungkeineraeume,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
alleraeume,trenner+startobjekt+trenner)=0.prueffach:IF allefaecher=trenner
THEN holallefaecher;IF allefaecher=trennerTHEN standardmeldung(
meldungkeinefaecher,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
allefaecher,trenner+startobjekt+trenner)=0.pruefkopp:inittupel(
dnrlehrveranstaltungen);putwert(fnrlvsj,schj);putwert(fnrlvhj,schhj);putwert(
fnrlvkopplung,startobjekt);search(ixlvsjhjkopp,TRUE );dbstatus<>ok.END PROC 
bestandsfehler;PROC holalleparaphen:inittupel(dnrlehrer);statleseschleife(
dnrlehrer,"","",fnrlparaphe,fnrlfamname,PROC lehrer).END PROC holalleparaphen
;PROC holalleraeume:inittupel(dnrschluessel);statleseschleife(dnrschluessel,
raumkenndaten,"",fnrschlsachgebiet,fnrschlschluessel,PROC raeume).END PROC 
holalleraeume;PROC holallesugruppen:inittupel(dnraktschuelergruppen);
statleseschleife(dnraktschuelergruppen,schj,schhj,fnrsgrpsj,fnrsgrphj,PROC 
sugruppen).END PROC holallesugruppen;PROC holallefaecher:inittupel(dnrfaecher
);statleseschleife(dnrfaecher,"","",fnrffach,fnrffachbez,PROC faecher).END 
PROC holallefaecher;PROC lehrer(BOOL VAR b):IF dbstatus<>0THEN b:=TRUE ELSE 
alleparaphenCAT text(wert(fnrlparaphe),laengeparaphe);alleparaphenCAT trenner
FI END PROC lehrer;PROC sugruppen(BOOL VAR b):IF dbstatus<>0COR wert(
fnrsgrpsj)<>schjCOR wert(fnrsgrphj)<>schhjTHEN b:=TRUE ELSE allesugruppenCAT 
jgstaufber(wert(fnrsgrpjgst));allesugruppenCAT text(wert(fnrsgrpkennung),
laengesugrupkenn);allesugruppenCAT trennerFI END PROC sugruppen;PROC raeume(
BOOL VAR b):IF dbstatus<>0COR wert(fnrschlsachgebiet)>raumkenndatenTHEN b:=
TRUE ELSE alleraeumeCAT text(wert(fnrschlschluessel),laengeraum);alleraeume
CAT trennerFI END PROC raeume;PROC faecher(BOOL VAR b):IF dbstatus<>0THEN b:=
TRUE ELSE allefaecherCAT text(wert(fnrffach),laengefach);allefaecherCAT 
trennerFI END PROC faecher;BOOL PROC restleer(INT CONST fall):IF fall=
fldkzlehrerTHEN FOR iFROM fldkzsugrupUPTO fldkoppREP IF standardmaskenfeld(i)
<>""THEN prueffeld:=i;LEAVE restleerWITH FALSE FI PER ELIF fall=fldkzsugrup
THEN IF standardmaskenfeld(fldkzlehrer)<>""THEN prueffeld:=fldkzlehrer;LEAVE 
restleerWITH FALSE FI ;IF standardmaskenfeld(fldparaphe)<>""THEN prueffeld:=
fldparaphe;LEAVE restleerWITH FALSE FI ;FOR iFROM fldkzraeumeUPTO fldkoppREP 
IF standardmaskenfeld(i)<>""THEN prueffeld:=i;LEAVE restleerWITH FALSE FI 
PER ELIF fall=fldkzraeumeCOR fall=fldkzfaecherTHEN FOR iFROM fldkzlehrerUPTO 
fall-1REP IF standardmaskenfeld(i)<>""THEN prueffeld:=i;LEAVE restleerWITH 
FALSE FI PER ;FOR iFROM fall+2UPTO fldkoppREP IF standardmaskenfeld(i)<>""
THEN prueffeld:=i;LEAVE restleerWITH FALSE FI PER ;ELIF fall=fldkzkoppTHEN 
FOR iFROM fldkzlehrerUPTO fldfaecherREP IF standardmaskenfeld(i)<>""THEN 
prueffeld:=i;LEAVE restleerWITH FALSE FI PER ;FI ;TRUE END PROC restleer;
PROC zeitwuenschekopieren:INT VAR aktfld:=infeld;TEXT VAR wunsch;IF aktfld>=
bearbfldmo1CAND aktfld<=bearbfldsa6THEN kopierfeldinhaltaufrestzeileFI ;
return(1).kopierfeldinhaltaufrestzeile:wunsch:=standardmaskenfeld(aktfld);IF 
aktfld<=bearbfldmo12THEN FOR iFROM aktfldUPTO bearbfldmo12REP 
standardmaskenfeld(wunsch,i)PER ELIF aktfld<=bearbflddi12THEN FOR iFROM 
aktfldUPTO bearbflddi12REP standardmaskenfeld(wunsch,i)PER ELIF aktfld<=
bearbfldmi12THEN FOR iFROM aktfldUPTO bearbfldmi12REP standardmaskenfeld(
wunsch,i)PER ELIF aktfld<=bearbflddo12THEN FOR iFROM aktfldUPTO bearbflddo12
REP standardmaskenfeld(wunsch,i)PER ELIF aktfld<=bearbfldfr12THEN FOR iFROM 
aktfldUPTO bearbfldfr12REP standardmaskenfeld(wunsch,i)PER ELSE FOR iFROM 
aktfldUPTO bearbfldsa6REP standardmaskenfeld(wunsch,i)PER FI ;
standardfelderausgeben;infeld(aktfld).END PROC zeitwuenschekopieren;PROC 
zeitwuenschespeichern(BOOL CONST speichern):TEXT VAR zw:="";BOOL VAR 
aenderung:=FALSE ;IF speichernTHEN standardmeldung(meldungpruefen,"");anztage
:=0;anzvm:=0;anznm:=0;bsbestzw:="";bsunbestzw:="";FOR iFROM bearbfldmo1UPTO 
bearbfldsa6REP zw:=standardmaskenfeld(i);IF zw=""THEN bsbestzwCAT "  "ELIF zw
="-0"THEN bsbestzwCAT "  "ELIF zw="+0"THEN bsbestzwCAT "  "ELSE bsbestzwCAT 
zwFI PER ;FOR iFROM bearbfldutanzUPTO bearbfldnmgewREP zw:=standardmaskenfeld
(i);IF length(zw)>1THEN infeld(i);fehlermeldungFI ;IF iMOD 2=0THEN 
bearbeitegewichtELSE bearbeiteanzahlFI PER ;IF dbbestzw<>bsbestzwTHEN 
aenderung:=TRUE ;pruefebestzwFI ;IF dbunbestzw<>bsunbestzwTHEN aenderung:=
TRUE ;pruefeunbestzwFI ;IF aenderungTHEN standardmeldung(meldungspeichern,"")
;logeintrag(logbucheintrag);datenspeichernFI ;ELSE standardmeldung(
meldungnichtsp,"")FI ;naechsterbildschirm.bearbeitegewicht:IF zw=""THEN 
bsunbestzwCAT "  "ELSE bsunbestzwCAT "-";bsunbestzwCAT zwFI .bearbeiteanzahl:
IF zw=""THEN bsunbestzwCAT " "ELSE bsunbestzwCAT zwFI .pruefebestzw:i:=1;
WHILE i<laengeallezeitwREP zw:=subtext(bsbestzw,i,i+1);IF subtext(dbbestzw,i,
i+1)<>zwTHEN pruefeeintragFI ;iINCR 2PER .pruefeeintrag:IF zw="  "THEN LEAVE 
pruefeeintragFI ;IF pos(zulgewichte,trenner+zw+trenner)=0THEN infeld(iDIV 2+3
);fehlermeldungFI .pruefeunbestzw:IF eingabefalsch(1,1,5)THEN infeld(
bearbfldutanz);fehlermeldungFI ;IF eingabefalsch(4,1,6)THEN infeld(
bearbfldvmanz);fehlermeldungFI ;IF eingabefalsch(7,1,5)THEN infeld(
bearbfldnmanz);fehlermeldungFI ;IF eingabefalsch(3,1,3)THEN infeld(
bearbfldutgew);fehlermeldungFI ;IF eingabefalsch(6,1,3)THEN infeld(
bearbfldvmgew);fehlermeldungFI ;IF eingabefalsch(9,1,3)THEN infeld(
bearbfldnmgew);fehlermeldungFI ;IF anztage+anzvm>6THEN infeld(bearbfldutanz);
fehlermeldungnichtmöglichELIF anztage+anznm>6THEN infeld(bearbfldutanz);
fehlermeldungnichtmöglichELIF anztage*2+anzvm+anznm>11THEN infeld(
bearbfldutanz);fehlermeldungnichtmöglichFI ;FOR iFROM 1UPTO 3REP IF (
bsunbestzwSUB (i*3-2))=" "CAND (bsunbestzwSUB (i*3))<>" "THEN infeld(
bearbfldutanz+((i-1)*2));fehlermeldungfehlenderwertELIF (bsunbestzwSUB (i*3-2
))<>" "CAND (bsunbestzwSUB (i*3))=" "THEN infeld(bearbfldutgew+((i-1)*2));
fehlermeldungfehlenderwertFI PER .fehlermeldungnichtmöglich:return(1);
standardmeldung(meldungfalschekz,"");LEAVE zeitwuenschespeichern.
fehlermeldungfehlenderwert:return(1);standardmeldung(meldungwertfehlt,"");
LEAVE zeitwuenschespeichern.fehlermeldung:return(1);standardmeldung(
meldungwertfalsch,"");LEAVE zeitwuenschespeichern.naechsterbildschirm:IF fall
=fldkzkoppTHEN WHILE wert(fnrlvkopplung)=startobjektCAND dbstatus<>3REP succ(
ixlvsjhjkopp);PER ;IF wert(fnrlvsj)=schjCAND wert(fnrlvhj)=schhjCAND dbstatus
<>3THEN startobjekt:=wert(fnrlvkopplung);zeitwuenscheausgeben(startobjekt,
bezug);return(1)ELSE enter(2)FI ELIF bearbfolge=""THEN enter(2)ELSE 
startobjekt:=text(bearbfolge,objektlaenge);bearbfolge:=subtext(bearbfolge,
objektlaenge+2);zeitwuenscheausgeben(startobjekt,bezug);return(1)FI .
datenspeichern:putwert(fnrzwbestimmtewuensche,bsbestzw);putwert(
fnrzwunbestimmtewuensche,bsunbestzw);IF dbstatusbeimholen=0THEN update(
dnrzeitwuensche)ELSE insert(dnrzeitwuensche)FI ;IF dbstatus<>0THEN 
fehlermeldungbeimspeichernFI .fehlermeldungbeimspeichern:return(1);
standardmeldung(meldungnichtsp,"");LEAVE zeitwuenschespeichern.END PROC 
zeitwuenschespeichern;BOOL PROC eingabefalsch(INT CONST charpos,ugr,ogr):
TEXT VAR datum:=bsunbestzwSUB charpos;INT VAR dat;IF datum=" "THEN FALSE 
ELSE dat:=int(datum);IF charpos=1THEN anztage:=datELIF charpos=4THEN anzvm:=
datELIF charpos=7THEN anznm:=datFI ;IF lastconversionokTHEN dat<ugrCOR dat>
ogrELSE TRUE FI FI END PROC eingabefalsch;END PACKET zeitwuenschebearbeiten