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
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
|
PACKET lehrveranstaltungenbenennenDEFINES lehrveranstaltungenbenennenstart,
lehrveranstaltungenuebernehmenstart,lehrveranstaltungenuebernehmen,
bearbeitunglehrveranstaltungen,lehrveranstaltungenzeileeinfuegen,
lehrveranstaltungenspeichern:LET maskeeingang=
"ms lehrveranstalt benennen eingang";LET maskebearb=
"ms lehrveranstalt benennen";LET fnrbearbeiten=2,fnrbearbaktsj=3,
fnrbearbgeplsj=4,fnrbearbjgst=5,fnrbearbfach=6,fnrfachanguebernehmen=7,
fnrfachangaktsj=8,fnrfachanggeplsj=9,fnrfachangjgst=10,fnrlehrveruebernehmen=
11,fnrlehrverjgst=12;LET feldanzmaskeeingang=12;ROW feldanzmaskeeingangTEXT
VAR feldbs1;LET felderprozeile=9;LET ersteseingabefeld=3;LET
erstestabellenfeld=2;LET incrfuerkennung=1,incrfuerlvart=2,
incrfuerklassengranfang=3,incrfuerklassengrende=6,incrfuerwstd=7;LET
meldnrdatenspeichern=50,meldnrungueltigeauswahl=56,meldnrkennungzulang=60,
meldnrdatennichtspeichern=63,meldnrbittewarten=69,meldnrbitteangabegenauer=
129,meldnrungueltigeuebernahmejgst=146,meldnrfragedatenuebernehmen=300,
meldnrdatenwerdenuebernommen=301,meldnrdatenwurdenuebernommen=302,
meldnrdatenwurdennichtuebernommen=303,meldnrkeinfachzuanderenangaben=307,
meldnrungueltigesfach=310,meldnrungueltigeart=311,
meldnrletztezeilenichteinfuegen=314,meldnrkeinfaecherangebot=315,
meldnruebernehmenderjgst=316,meldnrlehrveranstaltungloeschen=317,
meldnrfalschetastezuankreuz=318,meldnrfalscheausfuellung=319,
meldnrungueltigeklassengruppe=320,meldnrkeinelehrveranstaltungen=321,
meldnrlehrveranstaltunggibtsschon=322,meldnrfehlerhaftejgst=305;LET kennzhell
="#";LET textschulj="Schuljahr",texthalbj="Schulhalbjahr",ersteshalbjahr="1",
zweiteshalbjahr="2";LET wertaktuell="aktuell",wertgeplant="geplant";LET
artbestand="c02 art lehrveranstaltung";BOOL VAR aktuelleshalbjahrzubearbeiten
;TEXT VAR gewschulj,gewhalbj,aktschulj:="",akthalbj:="";INT VAR gewjgst,
startjgst,endejgst;TEXT VAR vgljgst:="",vglfach:="";INT VAR
jgstdesletztensatzes:=0;LET fachlaenge=2;LET kennunglaenge=4;INT VAR zugriff;
BOOL VAR eingangsmaskenfehler:=FALSE ;INT VAR pruefstatus:=0,letztecursorfnr
:=fnrbearbeiten;INT VAR aktzeile;INT VAR ifnr,ijgst;LET trenner="�";TEXT VAR
geprueftefaecher,gueltigeschuelergruppen:="",gueltigeklassengruppen:="",
gueltigelvart:="";TEXT VAR pruefklasse;INT VAR pruefjgst,pruefbez;TEXT VAR
sugruppen,sugruppejgst;INT VAR possugruppe,laengesugruppen;LET
laengeeinersugruppe=6;LET blankzeichen=" ",trennstrich="/",
textueberschriftanfang="Lehrveranstaltungen benennen für Halbjahr ";TEXT VAR
ueberschrift;LET jgst0=0,jgst5=5,jgst10=10,jgst13=13;BOOL VAR gueltigejgst;
BOOL VAR bearbeitungallerjgst;BOOL VAR leerenbszeigen;LET lvdateiname=
"LV-Datei";FILE VAR lvdatei;TEXT VAR lvdateizeile;TEXT VAR nfschulj,nfhalbj,
nfjgst,nffachkennung;INT VAR izeile,anzahlgezeigtezeilen,
anzahleingegebenezeilen;LET zeilenanzahl=18;ROW zeilenanzahlSTRUCT (TEXT jgst
,TEXT fach,TEXT kennung,TEXT kopplung,TEXT art,TEXT klasse1,TEXT klasse2,
TEXT klasse3,TEXT klasse4,TEXT wstd)VAR bszeile;
initfelderdeseingangsbildschirms;initbszeilepuffer;PROC
lehrveranstaltungenbenennenstart:standardstartproc(maskeeingang);
wertedeseingangsbildschirmsholen;infeld(fnrbearbeiten);standardfelderausgeben
;infeld(letztecursorfnr);standardnprocEND PROC
lehrveranstaltungenbenennenstart;PROC lehrveranstaltungenuebernehmenstart:
BOOL VAR ausgangsdatenfehlen:=FALSE ;eingangsbehandlung(1);IF
eingangsmaskenfehlerTHEN infeld(pruefstatus);return(1)ELSE
wertedeseingangsbildschirmsmerken;schulhalbjahrbestimmen;IF jgstangabeleer
THEN startjgst:=jgst0;endejgst:=jgst13ELSE startjgst:=int(vgljgst);endejgst:=
startjgstFI ;IF standardmaskenfeld(fnrfachanguebernehmen)<>""THEN
pruefendesfaecherangebots;IF ausgangsdatenfehlenTHEN standardmeldung(
meldnrkeinfaecherangebot,"");return(1)ELSE standardmeldung(
meldnrfragedatenuebernehmen,"");eingabefeldersperren(fnrfachanguebernehmen);
standardnprocFI ELSE pruefenderlehrveranstaltungen;IF ausgangsdatenfehlen
THEN standardmeldung(meldnrkeinelehrveranstaltungen,"");return(1)ELIF
gewhalbj=ersteshalbjahrAND startjgst=jgst13THEN standardmeldung(
meldnrungueltigeuebernahmejgst,"");infeld(fnrlehrverjgst);return(1)ELSE
standardmeldung(meldnrfragedatenuebernehmen,"");eingabefeldersperren(
fnrlehrveruebernehmen);standardnprocFI FI FI .pruefendesfaecherangebots:
ausgangsdatenfehlen:=FALSE ;putwert(fnrfangsj,gewschulj);putwert(fnrfanghj,
gewhalbj);putintwert(fnrfangjgst,startjgst);putintwert(fnrfanglfdnr,0);search
(dnrfaecherangebot,FALSE );IF dbstatus<>okTHEN ausgangsdatenfehlen:=TRUE
ELIF wert(fnrfanghj)<>gewhalbjCOR wert(fnrfangsj)<>gewschuljCOR intwert(
fnrfangjgst)>endejgstTHEN ausgangsdatenfehlen:=TRUE FI .
pruefenderlehrveranstaltungen:ausgangsdatenfehlen:=FALSE ;putwert(fnrlvsj,
aktschulj);putwert(fnrlvhj,akthalbj);putintwert(fnrlvjgst,startjgst);putwert(
fnrlvfachkennung,"");search(dnrlehrveranstaltungen,FALSE );IF dbstatus<>ok
THEN ausgangsdatenfehlen:=TRUE ELIF wert(fnrlvhj)<>akthalbjCOR wert(fnrlvsj)
<>aktschuljCOR intwert(fnrlvjgst)>endejgstTHEN ausgangsdatenfehlen:=TRUE FI .
END PROC lehrveranstaltungenuebernehmenstart;PROC eingabefeldersperren(INT
CONST fnrfreiesfeld):FOR ifnrFROM fnrbearbeitenUPTO feldanzmaskeeingangREP
IF ifnr<>fnrfreiesfeldTHEN feldschutz(ifnr)FI PER ;infeld(fnrfreiesfeld)END
PROC eingabefeldersperren;PROC eingabefelderfreigeben:FOR ifnrFROM
fnrbearbeitenUPTO feldanzmaskeeingangREP feldfrei(ifnr)PER END PROC
eingabefelderfreigeben;PROC lehrveranstaltungenuebernehmen(BOOL CONST
uebernehmen):INT VAR letztejgst:=-1;IF uebernehmenTHEN standardmeldung(
meldnrdatenwerdenuebernommen,"");IF standardmaskenfeld(fnrfachanguebernehmen)
<>""THEN evtlvorhandenelehrveranstaltungenloeschen;
neuelvausfaecherangebotschreibenELSE neuelvauslehrveranstaltungenschreibenFI
;evtlkurswahldatenbeimuebernehmenaktualisieren;IF
aktuelleshalbjahrzubearbeitenTHEN aenderungsvermerksetzen(wertaktuell)ELSE
aenderungsvermerksetzen(wertgeplant)FI ;standardmeldung(
meldnrdatenwurdenuebernommen,"")ELSE standardmeldung(
meldnrdatenwurdennichtuebernommen,"")FI ;eingabefelderfreigeben;return(2).
evtlkurswahldatenbeimuebernehmenaktualisieren:IF
aktuelleshalbjahrzubearbeitenOR gewhalbj=zweiteshalbjahrTHEN FOR gewjgstFROM
startjgstUPTO endejgstREP IF gewjgst>jgst10THEN kurswahlserverlvaktualisieren
(text(gewjgst),text(gewjgst),gewhalbj)FI ;PER ;ELSE FOR gewjgstFROM startjgst
UPTO endejgstREP IF gewjgst>=jgst10THEN kurswahlserverlvaktualisieren(text(
gewjgst),text(gewjgst+1),gewhalbj)FI ;PER ;FI .
evtlvorhandenelehrveranstaltungenloeschen:
sucheerstelehrveranstaltungzugewhalbj;WHILE lehrveranstaltungzuloeschenREP
meldungzumloeschenbeijgstwechsel;loeschevorhandenelehrveranstaltung;
suchenaechstelehrveranstaltungzugewhalbjPER .
sucheerstelehrveranstaltungzugewhalbj:putwert(fnrlvsj,gewschulj);putwert(
fnrlvhj,gewhalbj);putintwert(fnrlvjgst,startjgst);putwert(fnrlvfachkennung,""
);search(dnrlehrveranstaltungen,FALSE );letztejgst:=-1;.
lehrveranstaltungzuloeschen:dbstatus=okCAND wert(fnrlvsj)=gewschuljCAND wert(
fnrlvhj)=gewhalbjCAND intwert(fnrlvjgst)<=endejgst.
loeschevorhandenelehrveranstaltung:delete(dnrlehrveranstaltungen).
meldungzumloeschenbeijgstwechsel:IF intwert(fnrlvjgst)<>letztejgstTHEN
letztejgst:=intwert(fnrlvjgst);standardmeldung(
meldnrlehrveranstaltungloeschen,text(letztejgst)+kennzhell)FI .
suchenaechstelehrveranstaltungzugewhalbj:succ(dnrlehrveranstaltungen).
neuelvausfaecherangebotschreiben:letztejgst:=-1;REP
lehrveranstaltungenzufaecherangebotschreiben;
suchenaechstesfaecherangebotzugewhalbjUNTIL faecherangebotabgehandeltPER .
lehrveranstaltungenzufaecherangebotschreiben:INT VAR satzanzahl:=intwert(
fnrfanganzlv);INT VAR isatz;
setzefestewerteausfaecherangebotfuerlehrveranstaltung;
meldungzuruebernahmebeijgstwechsel;FOR isatzFROM 1UPTO satzanzahlREP
setzevarwerteausfaecherangebotfuerlehrveranstaltung;insert(
dnrlehrveranstaltungen)PER .meldungzuruebernahmebeijgstwechsel:IF intwert(
fnrlvjgst)<>letztejgstTHEN letztejgst:=intwert(fnrlvjgst);standardmeldung(
meldnruebernehmenderjgst,text(letztejgst)+kennzhell)FI .
setzefestewerteausfaecherangebotfuerlehrveranstaltung:putwert(fnrlvsj,
gewschulj);putwert(fnrlvhj,gewhalbj);putintwert(fnrlvjgst,intwert(fnrfangjgst
));putwert(fnrlvparaphe,"");putwert(fnrlvart,wert(fnrfangart));putintwert(
fnrlvwochenstd,intwert(fnrfangwochenstd));putwert(fnrlvklgrp1,"");putwert(
fnrlvklgrp2,"");putwert(fnrlvklgrp3,"");putwert(fnrlvklgrp4,"");putwert(
fnrlvraumgrp1,"");putwert(fnrlvraumgrp2,"");.
setzevarwerteausfaecherangebotfuerlehrveranstaltung:TEXT VAR lvkennung:=text(
wert(fnrfangart),2)+textzweistellig(isatz);putwert(fnrlvfachkennung,text(wert
(fnrfangfach),fachlaenge)+lvkennung);putwert(fnrlvkopplung,textzweistellig(
intwert(fnrfangjgst))+textzweistellig(intwert(fnrfanglfdnr))+lvkennung);.
suchenaechstesfaecherangebotzugewhalbj:succ(dnrfaecherangebot).
faecherangebotabgehandelt:NOT (dbstatus=okCAND intwert(fnrfangjgst)<=endejgst
CAND wert(fnrfangsj)=gewschuljCAND wert(fnrfanghj)=gewhalbj).
neuelvauslehrveranstaltungenschreiben:lvsaetzezuaktuellenjgstindateischreiben
;evtlvorhandenelehrveranstaltungenloeschenvorbereiten;
evtlvorhandenelehrveranstaltungenloeschen;
lvsaetzeausdateizugeplantenjgstschreiben.
lvsaetzezuaktuellenjgstindateischreiben:forget(lvdateiname,quiet);lvdatei:=
sequentialfile(output,lvdateiname);standardmeldung(meldnrbittewarten,"");
holegueltigelehrveranstaltungen.
evtlvorhandenelehrveranstaltungenloeschenvorbereiten:IF gewhalbj=
ersteshalbjahrAND NOT jgstangabeleerTHEN IF startjgst>=jgst5THEN startjgst
INCR 1;endejgstINCR 1FI FI .lvsaetzeausdateizugeplantenjgstschreiben:
letztejgst:=-1;lvdatei:=sequentialfile(input,lvdateiname);WHILE NOT eof(
lvdatei)REP getline(lvdatei,lvdateizeile);restoretupel(dnrlehrveranstaltungen
,lvdateizeile);putwert(fnrlvhj,gewhalbj);IF gewhalbj=ersteshalbjahrTHEN
putwert(fnrlvsj,gewschulj);ijgst:=intwert(fnrlvjgst);IF ijgst>0THEN
putintwert(fnrlvjgst,ijgst+1);TEXT VAR bearbkopplung:=wert(fnrlvkopplung);IF
int(subtext(bearbkopplung,1,2))=ijgstTHEN putwert(fnrlvkopplung,
textzweistellig(ijgst+1)+subtext(bearbkopplung,3))FI ;FI ;FI ;IF intwert(
fnrlvjgst)>jgst13THEN LEAVE lvsaetzeausdateizugeplantenjgstschreibenELSE
meldungzuruebernahmebeijgstwechsel;insert(dnrlehrveranstaltungen)FI PER END
PROC lehrveranstaltungenuebernehmen;PROC holegueltigelehrveranstaltungen:
inittupel(dnrlehrveranstaltungen);putwert(fnrlvsj,aktschulj);putwert(fnrlvhj,
akthalbj);putintwert(fnrlvjgst,startjgst);search(dnrlehrveranstaltungen,
FALSE );statleseschleife(dnrlehrveranstaltungen,aktschulj,akthalbj,fnrlvsj,
fnrlvhj,PROC lehrveranstaltungindateieinlesen)END PROC
holegueltigelehrveranstaltungen;PROC lehrveranstaltungindateieinlesen(BOOL
VAR b):IF dbstatus<>0OR wert(fnrlvsj)<>aktschuljOR wert(fnrlvhj)<>akthalbjOR
intwert(fnrlvjgst)>endejgstTHEN b:=TRUE ELSE savetupel(dnrlehrveranstaltungen
,lvdateizeile);putline(lvdatei,lvdateizeile)FI END PROC
lehrveranstaltungindateieinlesen;PROC bearbeitunglehrveranstaltungen:
eingangsbehandlung(2);IF eingangsmaskenfehlerTHEN infeld(pruefstatus);return(
1)ELSE wertedeseingangsbildschirmsmerken;schulhalbjahrbestimmen;
zugriffauflehrveranstaltungenbestimmen;erstensatzlesen;IF
keinelehrveranstaltungengespeichertCAND bearbeitungallerjgstTHEN
standardmeldung(meldnrkeinelehrveranstaltungen,"");return(1)ELSE
standardstartproc(maskebearb);ueberschriftzeilezusammensetzen;
standardkopfmaskeaktualisieren(ueberschrift);bsfuellen;infeld(
ersteseingabefeld);standardnprocFI ;FI .
zugriffauflehrveranstaltungenbestimmen:IF fachangabeleerTHEN zugriff:=
ixlvsjhjkoppELIF jgstangabeleerTHEN zugriff:=ixlvsjhjkennELSE zugriff:=
dnrlehrveranstaltungenFI .erstensatzlesen:putwert(fnrlvsj,gewschulj);putwert(
fnrlvhj,gewhalbj);putintwert(fnrlvjgst,int(vgljgst));IF zugriff=ixlvsjhjkopp
THEN putwert(fnrlvkopplung,textzweistellig(int(vgljgst)))ELSE putwert(
fnrlvfachkennung,vglfach)FI ;jgstdesletztensatzes:=int(vgljgst);search(
zugriff,FALSE );leerenbszeigen:=NOT (dbstatus=okCAND wert(fnrlvhj)=gewhalbj
CAND wert(fnrlvsj)=gewschuljCAND (jgstangabeleerCOR intwert(fnrlvjgst)=int(
vgljgst))CAND (fachangabeleerCOR compress(subtext(wert(fnrlvfachkennung),1,
fachlaenge))=vglfach)).keinelehrveranstaltungengespeichert:dbstatus<>0.
ueberschriftzeilezusammensetzen:ueberschrift:=textueberschriftanfang;
ueberschriftCAT gewhalbj;ueberschriftCAT blankzeichen;ueberschriftCAT subtext
(gewschulj,1,2);ueberschriftCAT trennstrich;ueberschriftCAT subtext(gewschulj
,3,4).END PROC bearbeitunglehrveranstaltungen;BOOL PROC fachangabeleer:
vglfach=""END PROC fachangabeleer;BOOL PROC jgstangabeleer:vgljgst=""END
PROC jgstangabeleer;PROC bsfuellen:izeile:=0;IF NOT leerenbszeigenTHEN
startebildschirmblock(zugriff,zeilenanzahl-1);bildschirmblock(PROC satzmerken
,BOOL PROC (INT CONST )satzzubehandeln,0);IF dbstatus=0THEN succ(zugriff);IF
dbstatus<>0THEN inittupel(dnrlehrveranstaltungen)FI ELSE inittupel(
dnrlehrveranstaltungen)FI ;merkesatzalsnachfolgerELSE nffachkennung:=""FI ;
evtlleerzeilenhinzufuegen;werteausbszeileinstandardfeldersetzen;infeld(
erstestabellenfeld);standardfelderausgeben;.evtlleerzeilenhinzufuegen:
anzahlgezeigtezeilen:=izeile;WHILE izeile<zeilenanzahlREP izeileINCR 1;
bszeile(izeile).jgst:=text(jgstdesletztensatzes);bszeile(izeile).fach:="";
bszeile(izeile).kennung:="";bszeile(izeile).kopplung:="";bszeile(izeile).art
:="";bszeile(izeile).klasse1:="";bszeile(izeile).klasse2:="";bszeile(izeile).
klasse3:="";bszeile(izeile).klasse4:="";bszeile(izeile).wstd:=""PER .
werteausbszeileinstandardfeldersetzen:ifnr:=erstestabellenfeld;TEXT VAR
letztejgst:="-1";FOR izeileFROM 1UPTO zeilenanzahlREP IF bszeile(izeile).jgst
=letztejgstTHEN standardmaskenfeld(" ",ifnr);ELSE letztejgst:=bszeile(izeile
).jgst;standardmaskenfeld(textzweistellig(int(letztejgst)),ifnr);FI ;
standardmaskenfeld(bszeile(izeile).fach,ifnr+1);standardmaskenfeld(bszeile(
izeile).kennung,ifnr+2);standardmaskenfeld(bszeile(izeile).art,ifnr+3);
standardmaskenfeld(bszeile(izeile).klasse1,ifnr+4);standardmaskenfeld(bszeile
(izeile).klasse2,ifnr+5);standardmaskenfeld(bszeile(izeile).klasse3,ifnr+6);
standardmaskenfeld(bszeile(izeile).klasse4,ifnr+7);standardmaskenfeld(bszeile
(izeile).wstd,ifnr+8);ifnrINCR felderprozeilePER .merkesatzalsnachfolger:
nfschulj:=wert(fnrlvsj);nfhalbj:=wert(fnrlvhj);nfjgst:=wert(fnrlvjgst);
nffachkennung:=wert(fnrlvfachkennung).END PROC bsfuellen;BOOL PROC
satzzubehandeln(INT CONST dummynr):IF NOT (izeile<zeilenanzahlCAND dbstatus=
okCAND wert(fnrlvsj)=gewschuljCAND wert(fnrlvhj)=gewhalbj)THEN LEAVE
satzzubehandelnWITH FALSE FI ;IF NOT jgstangabeleerCAND intwert(fnrlvjgst)<>
int(vgljgst)THEN LEAVE satzzubehandelnWITH FALSE FI ;IF NOT fachangabeleer
CAND compress(subtext(wert(fnrlvfachkennung),1,fachlaenge))<>vglfachTHEN
LEAVE satzzubehandelnWITH FALSE FI ;TRUE .END PROC satzzubehandeln;PROC
satzmerken:izeileINCR 1;bszeile(izeile).jgst:=wert(fnrlvjgst);
jgstdesletztensatzes:=intwert(fnrlvjgst);bszeile(izeile).fach:=compress(
subtext(wert(fnrlvfachkennung),1,2));bszeile(izeile).kennung:=subtext(wert(
fnrlvfachkennung),3);bszeile(izeile).kopplung:=wert(fnrlvkopplung);bszeile(
izeile).art:=wert(fnrlvart);bszeile(izeile).klasse1:=wert(fnrlvklgrp1);
bszeile(izeile).klasse2:=wert(fnrlvklgrp2);bszeile(izeile).klasse3:=wert(
fnrlvklgrp3);bszeile(izeile).klasse4:=wert(fnrlvklgrp4);bszeile(izeile).wstd
:=wert(fnrlvwochenstd);.END PROC satzmerken;PROC lehrveranstaltungenspeichern
(BOOL CONST speichern):IF speichernTHEN plausipruefung;ELSE pruefstatus:=0FI
;IF pruefstatus<>0THEN infeld(pruefstatus);return(1)ELSE datenspeichern(
speichern);IF nachfolgesatzvorhandenTHEN holewertedesnachfolgersatzes;search(
dnrlehrveranstaltungen,TRUE );IF dbstatus<>0THEN search(
dnrlehrveranstaltungen,FALSE )FI ;izeile:=0;IF satzzubehandeln(izeile)THEN
changeindex;leerenbszeigen:=FALSE ;setzejgstfuerneuenbildschirm;
naechstenbildschirmzeigenELSE enter(2)FI ELIF letzteeingabezeilegefuelltTHEN
leerenbszeigen:=TRUE ;naechstenbildschirmzeigenELSE enter(2)FI ;FI .
nachfolgesatzvorhanden:nffachkennung<>"".letzteeingabezeilegefuellt:
standardmaskenfeld((zeilenanzahl-1)*felderprozeile+ersteseingabefeld)<>"".
holewertedesnachfolgersatzes:putwert(fnrlvsj,nfschulj);putwert(fnrlvhj,
nfhalbj);putwert(fnrlvjgst,nfjgst);putwert(fnrlvfachkennung,nffachkennung).
naechstenbildschirmzeigen:bsfuellen;infeld(ersteseingabefeld);return(1).
setzejgstfuerneuenbildschirm:izeile:=zeilenanzahl;WHILE
keinbezugaufletztensatzREP izeileDECR 1PER ;jgstdesletztensatzes:=int(bszeile
(izeile).jgst);.keinbezugaufletztensatz:bszeile(izeile).fach="".END PROC
lehrveranstaltungenspeichern;PROC datenspeichern(BOOL CONST speichern):IF
speichernTHEN standardmeldung(meldnrdatenspeichern,"");
datenspeicherungdurchfuehren;ELSE standardmeldung(meldnrdatennichtspeichern,
"");FI ;END PROC datenspeichern;PROC datenspeicherungdurchfuehren:BOOL VAR
aenderungsvermerkzusetzen:=FALSE ;FOR izeileFROM 1UPTO zeilenanzahlREP
holevergleichswerte;IF lvzeileloeschenTHEN aenderungszeileanzeigen;
aenderungsvermerkzusetzen:=TRUE ;altelvloeschenELIF lvzeileeinfuegenTHEN
aenderungszeileanzeigen;aenderungsvermerkzusetzen:=TRUE ;neuelveinfuegenELIF
lvzeileueberschreibenTHEN aenderungszeileanzeigen;aenderungsvermerkzusetzen:=
TRUE ;altelvupdateFI PER ;IF aenderungsvermerkzusetzenTHEN IF
aktuelleshalbjahrzubearbeitenTHEN aenderungsvermerksetzen(wertaktuell)ELSE
aenderungsvermerksetzen(wertgeplant)FI FI .holevergleichswerte:INT VAR
prueffnr:=fachfnrin(izeile);TEXT VAR prueffach:=standardmaskenfeld(prueffnr);
TEXT VAR altesfach:=bszeile(izeile).fach.lvzeileloeschen:prueffach=""CAND
altesfach<>"".altelvloeschen:setzealtesuchwerteindbpuffer;search(
dnrlehrveranstaltungen,TRUE );IF dbstatus=0THEN delete(dnrlehrveranstaltungen
);evtlkurswahldatenbeimbearbeitenaktualisierenFI .lvzeileeinfuegen:prueffach
<>""CAND altesfach="".neuelveinfuegen:setzeneuewerteindbpuffer;
setzenichtsichtbarewerteindbpuffer;insert(dnrlehrveranstaltungen);
evtlkurswahldatenbeimbearbeitenaktualisieren.lvzeileueberschreiben:NOT (
standardmaskenfeld(prueffnr)=bszeile(izeile).fachCAND standardmaskenfeld(
prueffnr+1)=bszeile(izeile).kennungCAND standardmaskenfeld(prueffnr+2)=
bszeile(izeile).artCAND standardmaskenfeld(prueffnr+3)=bszeile(izeile).
klasse1CAND standardmaskenfeld(prueffnr+4)=bszeile(izeile).klasse2CAND
standardmaskenfeld(prueffnr+5)=bszeile(izeile).klasse3CAND standardmaskenfeld
(prueffnr+6)=bszeile(izeile).klasse4CAND standardmaskenfeld(prueffnr+7)=
bszeile(izeile).wstd).altelvupdate:setzealtesuchwerteindbpuffer;search(
dnrlehrveranstaltungen,TRUE );setzeneuewerteindbpuffer;IF standardmaskenfeld(
prueffnr)<>bszeile(izeile).fachCOR compress(standardmaskenfeld(prueffnr+1))<>
bszeile(izeile).kennungTHEN setzenichtsichtbarewerteindbpufferFI ;update(
dnrlehrveranstaltungen);evtlkurswahldatenbeimbearbeitenaktualisieren.
setzealtesuchwerteindbpuffer:putwert(fnrlvsj,gewschulj);putwert(fnrlvhj,
gewhalbj);putwert(fnrlvjgst,bszeile(izeile).jgst);putwert(fnrlvfachkennung,
text(altesfach,fachlaenge)+bszeile(izeile).kennung).setzeneuewerteindbpuffer:
putwert(fnrlvsj,gewschulj);putwert(fnrlvhj,gewhalbj);putwert(fnrlvjgst,
bszeile(izeile).jgst);putwert(fnrlvfachkennung,neuekennung);putwert(fnrlvart,
standardmaskenfeld(prueffnr+2));putwert(fnrlvklgrp1,standardmaskenfeld(
prueffnr+3));putwert(fnrlvklgrp2,standardmaskenfeld(prueffnr+4));putwert(
fnrlvklgrp3,standardmaskenfeld(prueffnr+5));putwert(fnrlvklgrp4,
standardmaskenfeld(prueffnr+6));putwert(fnrlvwochenstd,standardmaskenfeld(
prueffnr+7)).setzenichtsichtbarewerteindbpuffer:putwert(fnrlvkopplung,
neuekopplung);putwert(fnrlvparaphe,"");putwert(fnrlvraumgrp1,"");putwert(
fnrlvraumgrp2,"").neuekennung:text(prueffach,fachlaenge)+compress(
standardmaskenfeld(prueffnr+1)).neuekopplung:textzweistellig(int(bszeile(
izeile).jgst))+neuekennung.END PROC datenspeicherungdurchfuehren;PROC
evtlkurswahldatenbeimbearbeitenaktualisieren:IF intwert(fnrlvjgst)>jgst10
THEN IF aktuelleshalbjahrzubearbeitenOR gewhalbj=zweiteshalbjahrTHEN
kurswahlserverlvaktualisieren(wert(fnrlvjgst),wert(fnrlvjgst),gewhalbj)ELSE
kurswahlserverlvaktualisieren(text(intwert(fnrlvjgst)-1),wert(fnrlvjgst),
gewhalbj)FI FI END PROC evtlkurswahldatenbeimbearbeitenaktualisieren;PROC
aenderungszeileanzeigen:infeld((izeile-1)*felderprozeile+ersteseingabefeld)
END PROC aenderungszeileanzeigen;PROC lehrveranstaltungenzeileeinfuegen(BOOL
CONST zeilerein):INT VAR erstefnr;IF zeilereinTHEN zeileeinfuegenELSE
zeileloeschenFI ;return(1).zeileeinfuegen:aktzeile:=bearbeitungszeilezufeld(
infeld);IF aktzeile=zeilenanzahlTHEN standardmeldung(
meldnrletztezeilenichteinfuegen,"");LEAVE zeileeinfuegenFI ;IF bszeile(
zeilenanzahl).fach<>""THEN merkeverdraengtensatzalsnachfolgesatz;
anzahlgezeigtezeilen:=zeilenanzahlFI ;FOR izeileFROM zeilenanzahl-1DOWNTO
aktzeile+1REP zeileiminternenpufferverschieben;
wertederzeileaufdembildschirmverschiebenPER ;izeile:=aktzeile+1;
leerzeileschreiben;jgstineingefuegterzeilevermerken;neuezeilenausgeben.
merkeverdraengtensatzalsnachfolgesatz:nfschulj:=gewschulj;nfhalbj:=gewhalbj;
nfjgst:=bszeile(zeilenanzahl).jgst;nffachkennung:=text(bszeile(zeilenanzahl).
fach,fachlaenge)+bszeile(zeilenanzahl).kennung.
zeileiminternenpufferverschieben:bszeile(izeile+1).jgst:=bszeile(izeile).jgst
;bszeile(izeile+1).fach:=bszeile(izeile).fach;bszeile(izeile+1).kennung:=
bszeile(izeile).kennung;bszeile(izeile+1).kopplung:=bszeile(izeile).kopplung;
bszeile(izeile+1).art:=bszeile(izeile).art;bszeile(izeile+1).klasse1:=bszeile
(izeile).klasse1;bszeile(izeile+1).klasse2:=bszeile(izeile).klasse2;bszeile(
izeile+1).klasse3:=bszeile(izeile).klasse3;bszeile(izeile+1).klasse4:=bszeile
(izeile).klasse4;bszeile(izeile+1).wstd:=bszeile(izeile).wstd;.
wertederzeileaufdembildschirmverschieben:FOR ifnrFROM erstesfeldderzeileUPTO
letztesfeldderzeileREP standardmaskenfeld(standardmaskenfeld(ifnr),ifnr+
felderprozeile)PER .erstesfeldderzeile:(izeile-1)*felderprozeile+
erstestabellenfeld.letztesfeldderzeile:erstesfeldderzeile+felderprozeile-1.
jgstineingefuegterzeilevermerken:bszeile(izeile).jgst:=bszeile(aktzeile).jgst
;bszeile(izeile).fach:="";bszeile(izeile).kennung:="";bszeile(izeile).
kopplung:="";bszeile(izeile).art:="";bszeile(izeile).klasse1:="";bszeile(
izeile).klasse2:="";bszeile(izeile).klasse3:="";bszeile(izeile).klasse4:="";
bszeile(izeile).wstd:="";standardmaskenfeld(textzweistellig(int(bszeile(
izeile).jgst)),erstefnr);.zeileloeschen:izeile:=bearbeitungszeilezufeld(
infeld);leerzeileschreiben;neuezeilenausgeben.leerzeileschreiben:erstefnr:=
erstesfeldderzeile;standardmaskenfeld(" ",erstefnr);FOR ifnrFROM erstefnr+1
UPTO letztesfeldderzeileREP standardmaskenfeld("",ifnr)PER .
neuezeilenausgeben:infeld(erstefnr);standardfelderausgeben;infeld(erstefnr+1)
.END PROC lehrveranstaltungenzeileeinfuegen;INT PROC bearbeitungszeilezufeld(
INT CONST feldnr):((feldnr-erstestabellenfeld)DIV felderprozeile)+1END PROC
bearbeitungszeilezufeld;PROC eingangsbehandlung(INT CONST plausiart):LET
uebernehmen=1,bearbeiten=2;BOOL VAR ok;reinitparsing;eingangsmaskenfehler:=
FALSE ;ankreuzfelderpruefen;IF mehralseineauswahlangekreuztTHEN
standardmeldung(meldnrungueltigeauswahl,"");pruefstatus:=fnrbearbeiten;
eingangsmaskenfehler:=TRUE ;LEAVE eingangsbehandlungFI ;IF
uebernehmenpruefungTHEN IF ankreuz1THEN ankreuzfehler(fnrbearbeiten);LEAVE
eingangsbehandlungFI ELIF bearbeitenpruefungTHEN IF ankreuz2THEN
ankreuzfehler(fnrfachanguebernehmen);LEAVE eingangsbehandlungELIF ankreuz3
THEN ankreuzfehler(fnrlehrveruebernehmen);LEAVE eingangsbehandlungFI FI ;IF
bearbeitenpruefungTHEN standardpruefe(5,fnrbearbaktsj,fnrbearbgeplsj,0,"",
pruefstatus);IF pruefstatus<>0THEN eingangsmaskenfehler:=TRUE ;LEAVE
eingangsbehandlungELSE jgstpruefung(fnrbearbjgst,ok);IF NOT okTHEN jgstfehler
(fnrbearbjgst);LEAVE eingangsbehandlungFI ;vgljgst:=standardmaskenfeld(
fnrbearbjgst);vglfach:=compress(standardmaskenfeld(fnrbearbfach))FI ELIF
ankreuz2THEN standardpruefe(5,fnrfachangaktsj,fnrfachanggeplsj,0,"",
pruefstatus);IF pruefstatus<>0THEN eingangsmaskenfehler:=TRUE ;LEAVE
eingangsbehandlungELSE jgstpruefung(fnrfachangjgst,ok);IF NOT okTHEN
jgstfehler(fnrfachangjgst);LEAVE eingangsbehandlungELSE vgljgst:=
standardmaskenfeld(fnrfachangjgst)FI ;FI ELSE jgstpruefung(fnrlehrverjgst,ok)
;IF NOT okTHEN jgstfehler(fnrlehrverjgst);LEAVE eingangsbehandlungELSE
vgljgst:=standardmaskenfeld(fnrlehrverjgst)FI ;FI ;IF ankreuz1THEN FOR ifnr
FROM fnrfachanguebernehmenUPTO fnrlehrverjgstREP IF standardmaskenfeld(ifnr)
<>""THEN eintragfehler(ifnr);LEAVE eingangsbehandlungFI PER ELIF ankreuz2
THEN FOR ifnrFROM fnrbearbeitenUPTO fnrbearbfachREP IF standardmaskenfeld(
ifnr)<>""THEN eintragfehler(ifnr);LEAVE eingangsbehandlungFI PER ;IF
standardmaskenfeld(fnrlehrverjgst)<>""THEN eintragfehler(fnrlehrverjgst);
LEAVE eingangsbehandlungFI ELSE FOR ifnrFROM fnrbearbeitenUPTO fnrfachangjgst
REP IF standardmaskenfeld(ifnr)<>""THEN eintragfehler(ifnr);LEAVE
eingangsbehandlungFI PER FI .ankreuzfelderpruefen:INT VAR summe:=0;IF
ankreuz1THEN summeINCR 1FI ;IF ankreuz2THEN summeINCR 1FI ;IF ankreuz3THEN
summeINCR 1FI .mehralseineauswahlangekreuzt:summe<>1.ankreuz1:
standardmaskenfeld(fnrbearbeiten)<>"".ankreuz2:standardmaskenfeld(
fnrfachanguebernehmen)<>"".ankreuz3:standardmaskenfeld(fnrlehrveruebernehmen)
<>"".uebernehmenpruefung:plausiart=uebernehmen.bearbeitenpruefung:plausiart=
bearbeiten.END PROC eingangsbehandlung;PROC ankreuzfehler(INT CONST
fehlerfeld):pruefstatus:=fehlerfeld;eingangsmaskenfehler:=TRUE ;
standardmeldung(meldnrfalschetastezuankreuz,"").END PROC ankreuzfehler;PROC
jgstpruefung(INT CONST fnrpruefjgst,BOOL VAR ok):IF standardmaskenfeld(
fnrpruefjgst)=""THEN bearbeitungallerjgst:=TRUE ;ok:=TRUE ;ELSE
bearbeitungallerjgst:=FALSE ;gewjgst:=int(standardmaskenfeld(fnrpruefjgst));
ok:=lastconversionokCAND (gewjgst=jgst0OR (gewjgst>=jgst5AND gewjgst<=jgst13)
)FI END PROC jgstpruefung;PROC jgstfehler(INT CONST fehlerfeld):pruefstatus:=
fehlerfeld;eingangsmaskenfehler:=TRUE ;standardmeldung(meldnrfehlerhaftejgst,
"").END PROC jgstfehler;PROC eintragfehler(INT CONST fehlerfeld):pruefstatus
:=fehlerfeld;eingangsmaskenfehler:=TRUE ;standardmeldung(
meldnrfalscheausfuellung,"").END PROC eintragfehler;PROC plausipruefung:
pruefstatus:=0;facheintraegepruefen;IF eingabefehlerTHEN LEAVE plausipruefung
FI ;datenkonsistenzpruefen;IF eingabefehlerTHEN LEAVE plausipruefungFI .
eingabefehler:pruefstatus<>0.END PROC plausipruefung;PROC
facheintraegepruefen:anzahleingegebenezeilen:=0;geprueftefaecher:=trenner;IF
gueltigeschuelergruppen=""THEN holegueltigeschuelergruppenFI ;IF
gueltigeklassengruppen=""THEN holegueltigeklassengruppenFI ;IF gueltigelvart=
""THEN holegueltigelvartenFI ;FOR izeileFROM 1UPTO zeilenanzahlREP IF
fachfehlerTHEN LEAVE facheintraegepruefenFI PER .fachfehler:INT VAR prueffnr
:=fachfnrin(izeile);TEXT VAR prueffach:=standardmaskenfeld(prueffnr);IF
prueffachleerTHEN IF eintraginfolgefelderderzeileTHEN pruefstatus:=prueffnr;
standardmeldung(meldnrkeinfachzuanderenangaben,"");TRUE ELSE FALSE FI ELIF
prueffachungueltigTHEN pruefstatus:=prueffnr;standardmeldung(
meldnrungueltigesfach,"");TRUE ELIF length(standardmaskenfeld(prueffnr+
incrfuerkennung))>kennunglaengeTHEN pruefstatus:=prueffnr+incrfuerkennung;
standardmeldung(meldnrkennungzulang,"");TRUE ELIF compress(standardmaskenfeld
(prueffnr+incrfuerkennung))=""THEN pruefstatus:=prueffnr+incrfuerkennung;
standardmeldung(meldnrbitteangabegenauer,"");TRUE ELIF lvartungueltigTHEN
TRUE ELIF klassengruppenungueltigTHEN TRUE ELIF wochenstundenungueltigTHEN
pruefstatus:=prueffnr+incrfuerwstd;TRUE ELSE anzahleingegebenezeilenINCR 1;
FALSE FI .prueffachleer:prueffach="".eintraginfolgefelderderzeile:
standardmaskenfeld(prueffnr+1)<>""COR standardmaskenfeld(prueffnr+2)<>""COR
standardmaskenfeld(prueffnr+3)<>""COR standardmaskenfeld(prueffnr+4)<>""COR
standardmaskenfeld(prueffnr+5)<>""COR standardmaskenfeld(prueffnr+6)<>""COR
standardmaskenfeld(prueffnr+7)<>"".prueffachungueltig:IF
fachkuerzelschongeprueftTHEN FALSE ELIF fachimfachbestandTHEN
geprueftefaecherCAT prueffach;geprueftefaecherCAT trenner;FALSE ELSE TRUE FI
.fachkuerzelschongeprueft:pos(geprueftefaecher,trenner+prueffach+trenner)>0.
fachimfachbestand:putwert(fnrffach,prueffach);search(dnrfaecher,TRUE );
dbstatus=0.lvartungueltig:IF pos(gueltigelvart,trenner+standardmaskenfeld(
prueffnr+incrfuerlvart)+trenner)=0THEN standardmeldung(meldnrungueltigeart,""
);pruefstatus:=prueffnr+incrfuerlvart;TRUE ELSE FALSE FI .
klassengruppenungueltig:pruefjgst:=int(bszeile(izeile).jgst);FOR ifnrFROM
prueffnr+incrfuerklassengranfangUPTO prueffnr+incrfuerklassengrendeREP
pruefklasse:=standardmaskenfeld(ifnr);IF klassengruppeungueltigTHEN
standardmeldung(meldnrungueltigeklassengruppe,"");pruefstatus:=ifnr;LEAVE
klassengruppenungueltigWITH TRUE FI PER ;FALSE .klassengruppeungueltig:IF
pruefklasse=""THEN FALSE ELIF pruefklasseistschuelergruppeTHEN FALSE ELIF
pruefklasseistklassengruppeTHEN FALSE ELIF pruefklasseistgueltigejgstTHEN
FALSE ELSE TRUE FI .pruefklasseistschuelergruppe:pos(gueltigeschuelergruppen,
trenner+bszeile(izeile).jgst+pruefklasse+trenner)>0.
pruefklasseistklassengruppe:IF pos(gueltigeklassengruppen,trenner+pruefklasse
+trenner)=0THEN FALSE ELIF pruefjgst=jgst0THEN TRUE ELSE putwert(
fnrkgklassengrp,pruefklasse);search(dnrklassengruppen,TRUE );IF dbstatus<>0
THEN FALSE ELSE sugruppen:=wert(fnrkgschuelergrp);laengesugruppen:=length(
sugruppen);possugruppe:=1;WHILE possugruppe<laengesugruppenREP sugruppejgst:=
subtext(sugruppen,possugruppe,possugruppe+1);IF int(sugruppejgst)<>pruefjgst
THEN LEAVE pruefklasseistklassengruppeWITH FALSE FI ;possugruppeINCR
laengeeinersugruppePER ;TRUE FI FI .pruefklasseistgueltigejgst:gueltigejgst:=
FALSE ;pruefbez:=int(pruefklasse);IF lastconversionokTHEN IF pruefbez>=jgst5
CAND pruefbez<=jgst13THEN IF pruefjgst=jgst0OR pruefjgst=pruefbezTHEN
gueltigejgst:=TRUE FI FI FI ;gueltigejgst.wochenstundenungueltig:
standardpruefe(1,prueffnr+incrfuerwstd,0,0,"",pruefstatus);IF pruefstatus=0
THEN standardpruefe(2,prueffnr+incrfuerwstd,0,0,"",pruefstatus);pruefstatus<>
0ELSE TRUE FI .END PROC facheintraegepruefen;INT PROC fachfnrin(INT CONST
zeilennr):(zeilennr-1)*felderprozeile+ersteseingabefeldEND PROC fachfnrin;
PROC datenkonsistenzpruefen:FOR izeileFROM 1UPTO zeilenanzahlREP IF
zeileungueltigTHEN pruefstatus:=prueffnr;standardmeldung(
meldnrlehrveranstaltunggibtsschon,"");LEAVE datenkonsistenzpruefenFI PER .
zeileungueltig:IF leerzeileTHEN FALSE ELIF
zeileistimschluesselunveraendertgebliebenTHEN FALSE ELSE
ergebnisderpruefungzeileschongespeichertFI .leerzeile:INT VAR prueffnr:=
fachfnrin(izeile);TEXT VAR prueffach:=standardmaskenfeld(prueffnr);prueffach=
"".zeileistimschluesselunveraendertgeblieben:standardmaskenfeld(prueffnr)=
bszeile(izeile).fachCAND compress(standardmaskenfeld(prueffnr+1))=bszeile(
izeile).kennung.ergebnisderpruefungzeileschongespeichert:
neuewerteindbpuffersetzen;search(dnrlehrveranstaltungen,TRUE );dbstatus=0.
neuewerteindbpuffersetzen:putwert(fnrlvsj,gewschulj);putwert(fnrlvhj,gewhalbj
);putwert(fnrlvjgst,bszeile(izeile).jgst);putwert(fnrlvfachkennung,text(
prueffach,fachlaenge)+compress(standardmaskenfeld(prueffnr+1))).END PROC
datenkonsistenzpruefen;PROC schulhalbjahrbestimmen:IF akthalbj=""THEN
akthalbj:=schulkenndatum(texthalbj);aktschulj:=schulkenndatum(textschulj)FI ;
IF standardmaskenfeld(fnrlehrveruebernehmen)<>""THEN
aktuelleshalbjahrzubearbeiten:=FALSE ELSE aktuelleshalbjahrzubearbeiten:=
standardmaskenfeld(fnrbearbaktsj)<>""OR standardmaskenfeld(fnrfachangaktsj)<>
""FI ;gewhalbj:=akthalbj;gewschulj:=aktschulj;IF NOT
aktuelleshalbjahrzubearbeitenTHEN geplanteshjundsjberechnen(gewhalbj,
gewschulj)FI END PROC schulhalbjahrbestimmen;PROC holegueltigeschuelergruppen
:gueltigeschuelergruppen:=trenner;inittupel(dnraktschuelergruppen);
statleseschleife(dnraktschuelergruppen,gewschulj,gewhalbj,fnrsgrpsj,fnrsgrphj
,PROC schuelergruppelesen)END PROC holegueltigeschuelergruppen;PROC
schuelergruppelesen(BOOL VAR b):IF dbstatus<>0OR wert(fnrsgrpsj)<>gewschulj
OR wert(fnrsgrphj)<>gewhalbjTHEN b:=TRUE ELSE gueltigeschuelergruppenCAT wert
(fnrsgrpjgst);gueltigeschuelergruppenCAT wert(fnrsgrpkennung);
gueltigeschuelergruppenCAT trennerFI END PROC schuelergruppelesen;PROC
holegueltigeklassengruppen:gueltigeklassengruppen:=trenner;inittupel(
dnrklassengruppen);statleseschleife(dnrklassengruppen,"","",fnrkgklassengrp,
fnrkgklassengrp,PROC klassengruppelesen)END PROC holegueltigeklassengruppen;
PROC klassengruppelesen(BOOL VAR b):IF dbstatus<>0THEN b:=TRUE ELSE
gueltigeklassengruppenCAT wert(fnrkgklassengrp);gueltigeklassengruppenCAT
trennerFI END PROC klassengruppelesen;PROC holegueltigelvarten:gueltigelvart
:=trenner;inittupel(dnrschluessel);statleseschleife(dnrschluessel,artbestand,
"",fnrschlsachgebiet,fnrschlschluessel,PROC holelvart)END PROC
holegueltigelvarten;PROC holelvart(BOOL VAR b):IF wert(fnrschlsachgebiet)>
artbestandCOR dbstatus<>0THEN b:=TRUE ELSE gueltigelvartCAT wert(
fnrschlschluessel);gueltigelvartCAT trennerFI END PROC holelvart;TEXT PROC
textzweistellig(INT CONST i):IF i<10THEN "0"+text(i)ELSE text(i)FI END PROC
textzweistellig;PROC initfelderdeseingangsbildschirms:INT VAR i;FOR iFROM 1
UPTO feldanzmaskeeingangREP feldbs1(i):=""PER END PROC
initfelderdeseingangsbildschirms;PROC wertedeseingangsbildschirmsmerken:INT
VAR i;letztecursorfnr:=infeld;FOR iFROM 1UPTO feldanzmaskeeingangREP feldbs1(
i):=standardmaskenfeld(i)PER END PROC wertedeseingangsbildschirmsmerken;PROC
wertedeseingangsbildschirmsholen:INT VAR i;FOR iFROM 1UPTO
feldanzmaskeeingangREP standardmaskenfeld(feldbs1(i),i)PER END PROC
wertedeseingangsbildschirmsholen;PROC initbszeilepuffer:FOR izeileFROM 1UPTO
zeilenanzahlREP bszeile(izeile).jgst:="";bszeile(izeile).fach:="";bszeile(
izeile).kennung:="";bszeile(izeile).art:="";bszeile(izeile).klasse1:="";
bszeile(izeile).klasse2:="";bszeile(izeile).klasse3:="";bszeile(izeile).
klasse4:="";bszeile(izeile).wstd:="";PER END PROC initbszeilepuffer;END
PACKET lehrveranstaltungenbenennen
|