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
|
PACKET listenweiseergnachprDEFINES bearbeitungergnachpr,
ergnachprnichtspeichern,ergnachprspeichern:LET tofather=1,tograndfather=2,
jgst5=5,jgst13=13,niltext="",blank=" ",namenstrenner=", ",null=0,punkt=".",
meldtrenner="#";LET jgstufe10=10;LET einejgst=2,eineklasse=3;LET
geaendertersatz="x",kznachpruefung="n",dreizehnnachprsatz="N";LET
standardanfang=1,standardeinstieg=2,abstandzumnamen=2;LET maxschueler=15,
erstesfeld=5,felderprozeile=6,schuelerproseite=16;LET gwklasse=1;LET
bestandengrenzeeinstellig=4,bestandengrenzezweistellig="05",minnoteeinstellig
=1,maxnoteeinstellig=6,minnotezweistellig="00",maxnotezweistellig="15",
leernote="";LET meldbestleer=59,meldnichtspeichern=63,meldwarten=69,
meldspeicherung=132,meldspeicherfehler=131,meldfalschesfach=147,
meldungueltigenote=148,meldfalschesg=134,meldfehlendesfach=52,
meldtransaktionsfehler=138,meldplausi=57,meldfalscheauswahl=56,
meldzugtutorfehlt=52;LET pruefartgrenzen=3;LET fnrjgst=2,fnrtutor=3,fnrklasse
=2,fnrname=3,fnrbetr=4,fnrfach=5,fnrnote=6,fnrzug=7;LET schuljahrkey=
"Schuljahr",anfangschuljahrkey="Anfang Schulhalbjahr",halbjahr1="1",halbjahr2
="2",bestandlaufsj="ls",bestandabgegangene="abg";LET allespruefen=1,
einejgstpruefen=2,eineklassepruefen=3;LET anzkenndaten=3,sek2min=11;LET
logtextbeginn="Anw. 1.4.9 Nachprüfungen für ",logtextalleklassen=
"alle Klassen";BOOL VAR nochwelcheda,alleklassen;INT VAR waspruefen,
laengeklasse,laengename,laengebetr,laengefach,laengenote,laengezugtutor,
bestandindex,schuelerzahl,aktuellesfeld;ROW schuelerproseiteTEXT VAR name;
ROW schuelerproseiteTEXT VAR rufname;ROW schuelerproseiteTEXT VAR gebdatum;
ROW schuelerproseiteBOOL VAR dreizehner;ROW schuelerproseiteTEXT VAR
altedaten;ROW schuelerproseiteTEXT VAR npfaecher;ROW anzkenndatenTEXT VAR key
;TEXT VAR startkey1,startkey2,aktschuljahr,schuljahr,schulhalbjahr,hjdtupel,
schuelertupel,sichtupel;PROC bearbeitungergnachpr:reinitparsing;
eingangsbildschirmpruefen;IF eingangsbildschirmokTHEN
initialisierungenvornehmen;naechsteportionlesen;IF keinemehrdaTHEN
bestandleermelden;enter(tofather)ELSE standardnprocFI ELSE
eingangsmaskenfehler;return(tofather)FI .eingangsbildschirmpruefen:INT VAR
pruefstatus:=null;startkey1:=niltext;startkey2:=niltext;alleklassen:=FALSE ;
IF standardmaskenfeld(fnrjgst)<>niltextTHEN standardpruefe(pruefartgrenzen,
fnrjgst,jgst5,jgst13,niltext,pruefstatus);IF pruefstatus=nullTHEN startkey1:=
jgstaufber(standardmaskenfeld(fnrjgst));startkey2:=standardmaskenfeld(
fnrtutor);IF standardmaskenfeld(fnrtutor)=niltextTHEN bestandindex:=einejgst
ELSE bestandindex:=eineklasseFI FI ELIF standardmaskenfeld(fnrtutor)<>niltext
THEN pruefstatus:=fnrtutorELSE alleklassen:=TRUE FI .eingangsbildschirmok:
pruefstatus=null.initialisierungenvornehmen:plausipruefungvorbereiten;
bestandsetzen;standardstartproc(maske(vergleichsknoten));laengenfestlegen;IF
waspruefen=einejgstpruefenAND sek2THEN startebildschirmblock(
ixhjdsjhjverjgstkenn,maxschueler);ELSE startebildschirmblock(ixhjdsjhjverjgst
,maxschueler);FI .sek2:int(startkey1)>=sek2min.bestandsetzen:bestimmebestand;
setzestartkeys;pruefebestand.bestimmebestand:aktschuljahr:=schulkenndatum(
schuljahrkey);schuljahr:=subtext(aktschuljahr,1,2);schuljahr:=text(int(
schuljahr)-1)+schuljahr;schulhalbjahr:=halbjahr2;IF alleklassenTHEN
alleklassensetzenELSE SELECT bestandindexOF CASE einejgst:bestandjgstCASE
eineklasse:bestandklasseEND SELECT FI ;.alleklassensetzen:waspruefen:=
allespruefen;infeld(fnrjgst).bestandjgst:waspruefen:=einejgstpruefen;infeld(
fnrjgst).bestandklasse:waspruefen:=eineklassepruefen;infeld(fnrtutor).
setzestartkeys:putwert(fnrhjdsj,schuljahr);putwert(fnrhjdhj,schulhalbjahr);
putwert(fnrhjdjgst,startkey1);putwert(fnrhjdkennung,startkey2);putwert(
fnrhjdversetzung,kznachpruefung).pruefebestand:search(ixhjdsjhjverjgstkenn,
FALSE );IF dbstatus<>nullOR (NOT pruefungspeziell(waspruefen))THEN
bestandleermelden;return(tofather);LEAVE bearbeitungergnachprELSE
nochwelcheda:=TRUE FI .laengenfestlegen:laengeklasse:=standardfeldlaenge(
fnrklasse);laengename:=standardfeldlaenge(fnrname);laengebetr:=
standardfeldlaenge(fnrbetr);laengefach:=standardfeldlaenge(fnrfach);
laengenote:=standardfeldlaenge(fnrnote);laengezugtutor:=standardfeldlaenge(
fnrzug).plausipruefungvorbereiten:standardmeldung(meldwarten,niltext);.
naechsteportionlesen:blocklesenundausgeben.keinemehrda:NOT nochwelcheda.
bestandleermelden:infeld(fnrjgst);standardmeldung(meldbestleer,niltext).
eingangsmaskenfehler:standardmeldung(meldfalscheauswahl,niltext);infeld(
pruefstatus).END PROC bearbeitungergnachpr;PROC ergnachprnichtspeichern:
nichtspeichernmelden;startkeyssetzen;neuerblock.nichtspeichernmelden:
standardmeldung(meldnichtspeichern,niltext);pause(10).startkeyssetzen:
restoretupel(dnrhalbjahresdaten,hjdtupel);changeindex.END PROC
ergnachprnichtspeichern;PROC ergnachprspeichern:BOOL VAR
halbjahresdateninzwischengeaendert,schuelerdateninzwischengeaendert;TEXT VAR
altejgst:="",alterzug:="",neuejgst:="";pruefeplausibilitaet;IF dateninordnung
THEN speicherungdurchfuehren;startkeyssetzen;neuerblockELSE eingabefehler;
return(tofather)FI .pruefeplausibilitaet:standardmeldung(meldplausi,niltext);
BOOL VAR dateninordnung:=TRUE ;INT VAR satzindex:=erstesfeld;INT VAR fehlernr
;TEXT VAR fehlertext:=niltext;FOR suindFROM 1UPTO schuelerzahlREP pruefezeile
;IF NOT dateninordnungTHEN LEAVE pruefeplausibilitaetFI ;satzindexINCR
felderprozeilePER .pruefezeile:dateninordnung:=allesfreiCOR allesrichtig.
allesrichtig:((noterichtig)CAND (schuelergrupperichtig))CAND (fachrichtig).
noterichtig:((NOT fehlendertutor)CAND (gueltigenote))CAND (NOT fehlendesfach)
.fehlendertutor:fehlernr:=meldzugtutorfehlt;aktuellesfeld:=satzindex+2;
sitzengebliebenCAND keintutor.sitzengeblieben:IF length(eingegebenenote)=1
THEN int(eingegebenenote)>bestandengrenzeeinstelligELSE eingegebenenote<
bestandengrenzezweistelligFI .eingegebenenote:standardmaskenfeld(satzindex+1)
.gueltigenote:fehlernr:=meldungueltigenote;aktuellesfeld:=satzindex+1;TEXT
VAR pruefungsnote:=eingegebenenote;noteimbereich.noteimbereich:pruefungsnote=
leernoteOR (notenichtzukleinCAND notenichtzugross).notenichtzuklein:IF length
(pruefungsnote)=1THEN int(pruefungsnote)>=minnoteeinstelligELSE pruefungsnote
>=minnotezweistelligFI .notenichtzugross:IF length(pruefungsnote)=1THEN int(
pruefungsnote)<=maxnoteeinstelligELSE pruefungsnote<=maxnotezweistelligFI .
fehlendesfach:fehlernr:=meldfehlendesfach;aktuellesfeld:=satzindex;bestanden
CAND keinfach.bestanden:NOT sitzengeblieben.schuelergrupperichtig:fehlernr:=
meldfalschesg;aktuellesfeld:=satzindex+2;fehlertext:=standardmaskenfeld(
aktuellesfeld)+meldtrenner;keintutorCOR schuelergruppeimbestand.
schuelergruppeimbestand:#????#putwert(fnrsgrpsj,aktschuljahr);putwert(
fnrsgrphj,halbjahr1);putwert(fnrsgrpjgst,schuelergruppenschluessel);putwert(
fnrsgrpkennung,eingegebenertutor);search(dnraktschuelergruppen,TRUE );
dbstatus=null.schuelergruppenschluessel:IF bestandenCAND NOT
dreizehnernachprueflingTHEN jahrgangsstufeeinshoeherELSE
bisherigejahrgangsstufeFI .bisherigejahrgangsstufe:subtext(altedaten(suind),1
,2).jahrgangsstufeeinshoeher:jgstaufber(text(int(bisherigejahrgangsstufe)+1))
.eingegebenertutor:standardmaskenfeld(satzindex+2).fachrichtig:fehlernr:=
meldfalschesfach;aktuellesfeld:=satzindex;fehlertext:=npfaecher(suind)+
meldtrenner;keinfachCOR ausdemvorgegebenenbereich.ausdemvorgegebenenbereich:
pos(fehlertext,eingegebenesfach)>null.eingegebenesfach:standardmaskenfeld(
satzindex).allesfrei:(keintutorCAND keinfach)CAND keinenote.keintutor:
eingegebenertutor=niltextCOR eingegebenertutor="abg.".keinenote:
standardmaskenfeld(satzindex+1)=niltext.keinfach:eingegebenesfach=niltext.
speicherungdurchfuehren:logeintragvornehmen;aendernschleife;kurzwarten.
logeintragvornehmen:TEXT VAR eintrag:=logtextbeginn;IF alleklassenTHEN
eintragCAT logtextalleklassenELSE eintragCAT startkey1;eintragCAT startkey2
FI ;logeintrag(eintrag).kurzwarten:pause(10).aendernschleife:INT VAR suind;
INT VAR zahlderaenderungen:=null;satzindex:=erstesfeld-abstandzumnamen;FOR
suindFROM 1UPTO schuelerzahlREP behandleschuelersatz;satzindexINCR
felderprozeilePER .behandleschuelersatz:IF datenveraendertTHEN
aenderungvorbereiten;IF zwischenzeitlichgeaendertTHEN transaktionsfehlerELSE
dateninpuffersetzen;schreibtransaktion;meldevollzugFI ;FI ;.datenveraendert:
subtext(altedaten(suind),laengeklasse+1)<>jetzigedaten.jetzigedaten:INT VAR
datenfeldanfang:=satzindex+abstandzumnamen;standardmaskenfeld(datenfeldanfang
)+standardmaskenfeld(datenfeldanfang+1)+standardmaskenfeld(datenfeldanfang+2)
.aenderungvorbereiten:lesenvorbereiten;lesen.lesenvorbereiten:
zahlderaenderungenINCR 1;key(1):=name(suind);key(2):=rufname(suind);key(3):=
datumrekonversion(gebdatum(suind));schluesselfuerhjddateisetzen.
schluesselfuerhjddateisetzen:schluesselfuerhjdsetzen(dnrhalbjahresdaten,key,
schuljahr,halbjahr2,"").lesen:search(dnrhalbjahresdaten,TRUE );
halbjahresdateninzwischengeaendert:=(dbstatus<>ok);IF dbstatus=okTHEN
saveupdateposition(dnrhalbjahresdaten);savetupel(dnrhalbjahresdaten,sichtupel
);altejgst:=jgstaufber(wert(fnrhjdjgst));schluesselfuerschuelerdateisetzen;
search(dnrschueler,TRUE );schuelerdateninzwischengeaendert:=(dbstatus<>ok);
IF dbstatus=okTHEN alterzug:=wert(fnrsusgrpzugtut);saveupdateposition(
dnrschueler);savetupel(dnrschueler,schuelertupel)FI FI .
zwischenzeitlichgeaendert:halbjahresdateninzwischengeaendertOR
schuelerdateninzwischengeaendert.transaktionsfehler:standardmeldung(
meldtransaktionsfehler,niltext);return(tofather);infeld(satzindex+
abstandzumnamen);LEAVE ergnachprspeichern.dateninpuffersetzen:IF jetzigedaten
=niltextTHEN noteundfachsetzen;schuelerdatenaendernELIF nichtbestandenTHEN
nichtbestandenneuELSE notenfachundneuerzugFI ;neuerzugtutorloeschen.
schuelerdatenaendern:putwert(fnrsustatuss,bestandlaufsj);IF
dreizehnernachprueflingTHEN putwert(fnrsusgrpjgst,text(jgst13));putwert(
fnrsuartzugang,dreizehnnachprsatz)ELSE neuejgst:=jgstaufber(text(int(altejgst
)+1));putwert(fnrsusgrpjgst,neuejgst);putwert(fnrsusgrpzugtut,wert(
fnrhjdkennung));putwert(fnrsuartzugang,kznachpruefung)FI .nichtbestanden:
datenfeldanfang:=satzindex+abstandzumnamen;IF length(standardmaskenfeld(
datenfeldanfang+1))=1THEN int(standardmaskenfeld(datenfeldanfang+1))>
bestandengrenzeeinstelligELSE standardmaskenfeld(datenfeldanfang+1)<
bestandengrenzezweistelligFI .notenfachundneuerzug:noteundfachsetzen;IF
dreizehnernachprueflingTHEN dreizehnerabmeldenELSE neuejgst:=jgstaufber(text(
int(altejgst)+1));putwert(fnrsusgrpjgst,neuejgst);putwert(fnrsuartzugang,
kznachpruefung);neuerzugsetzenFI .noteundfachsetzen:TEXT VAR fach:=
standardmaskenfeld(datenfeldanfang);TEXT VAR note:=standardmaskenfeld(
datenfeldanfang+1);putwert(fnrhjdnachfach,fach);putwert(fnrhjdnacherg,note).
dreizehnernachpruefling:dreizehner(suind).dreizehnerabmelden:putwert(
fnrsustatuss,bestandabgegangene);putwert(fnrsuabgdats,schulkenndatum(
anfangschuljahrkey)).neuerzugsetzen:TEXT VAR neuerzug;neuerzug:=
standardmaskenfeld(datenfeldanfang+2);IF neuerzug<>niltextTHEN IF neuerzug<>
alterzugTHEN putwert(fnrsusgrpzugtut,neuerzug);FI ELSE IF jgstaufber(wert(
fnrsusgrpjgst))=altejgstTHEN putwert(fnrsusgrpzugtut,wert(fnrhjdkennung))FI
FI ;zuginakthjdaendern.zuginakthjdaendern:savetupel(dnrhalbjahresdaten,
sichtupel);neueklasseinhalbjahresdateneintragen(key,aktschuljahr,halbjahr1,
neuejgst,neuerzug);IF dbstatus=okTHEN putwert(fnrsutidakthjd,gettid)FI ;
restoretupel(dnrhalbjahresdaten,sichtupel).nichtbestandenneu:
noteundfachsetzen;setzezugang;savetupel(dnrhalbjahresdaten,sichtupel);
setzejgstrunter;halbjahresdatenbearbeiten;restoretupel(dnrhalbjahresdaten,
sichtupel).setzezugang:putwert(fnrsuartzugang,geaendertersatz).
setzejgstrunter:neuejgst:=jgstaufber(text(int(altejgst)));neuerzug:=
standardmaskenfeld(datenfeldanfang+2);putwert(fnrsusgrpjgst,neuejgst);putwert
(fnrsusgrpzugtut,neuerzug);putwert(fnrsustatuss,bestandlaufsj);.
halbjahresdatenbearbeiten:IF NOT dreizehnernachprueflingTHEN
nachfolgendehjdsloeschen;FI .nachfolgendehjdsloeschen:halbjahresdatenloeschen
(PROC (INT CONST )succ,key,halbjahr2,int(neuejgst),FALSE );.
neuerzugtutorloeschen:putwert(fnrsuneuerzugtut,niltext).schreibtransaktion:
restoreupdateposition(dnrhalbjahresdaten);selupdate(dnrhalbjahresdaten);IF
dbstatus<>okTHEN restoretupel(dnrschueler,schuelertupel)ELSE
restoreupdateposition(dnrschueler);selupdate(dnrschueler);IF dbstatus<>ok
THEN restoretupel(dnrschueler,schuelertupel)ELSE IF int(neuejgst)=int(
altejgst)THEN evtlkurswahldatenfuerwiederholerbehandelnFI ;FI FI .
evtlkurswahldatenfuerwiederholerbehandeln:IF int(neuejgst)>=jgstufe10THEN
kurswahlserveraktualisieren(neuejgst,"","")FI ;IF (int(neuejgst)+1)>=
jgstufe10THEN kurswahlserveraktualisieren(text(int(neuejgst)+1),"","")FI .
meldevollzug:TEXT VAR meldungstext;IF dbstatus=0THEN meldungstext:=compress(
standardmaskenfeld(satzindex))+meldtrenner;standardmeldung(meldspeicherung,
meldungstext)ELSE meldungstext:=text(dbstatus)+meldtrenner;meldungstextCAT
compress(standardmaskenfeld(satzindex));meldungstextCAT meldtrenner;
standardmeldung(meldspeicherfehler,meldungstext);return(tofather);LEAVE
ergnachprspeichernFI ;infeld(satzindex+abstandzumnamen).startkeyssetzen:
restoretupel(dnrhalbjahresdaten,hjdtupel);changeindex.eingabefehler:
standardmeldung(fehlernr,fehlertext);infeld(aktuellesfeld).END PROC
ergnachprspeichern;PROC neuerblock:blocklesenundausgeben;IF nochwelchedaTHEN
return(tofather)ELSE enter(tograndfather)FI .END PROC neuerblock;PROC
blocklesenundausgeben:vorbereiten;initgruppenwechsel;gewuenschteszeigen;
nachbereiten.vorbereiten:IF NOT nochwelchedaTHEN LEAVE blocklesenundausgeben
FI ;standardmeldung(meldwarten,niltext);schuelerzahl:=null;aktuellesfeld:=
standardeinstieg.gewuenschteszeigen:bildschirmblock(PROC datenzeigen,BOOL
PROC (INT CONST )pruefungspeziell,waspruefen).nachbereiten:nochwelcheda:=(
schuelerzahl>null);IF nochwelchedaTHEN savetupel(dnrhalbjahresdaten,hjdtupel)
;restlichezeilenloeschen;infeld(standardanfang);standardfelderausgebenELSE
LEAVE blocklesenundausgebenFI ;infeld(erstesfeld).restlichezeilenloeschen:
INT VAR zeilenzaehler;INT VAR zeilenfeld:=(schuelerzahl*felderprozeile)+1;
FOR zeilenzaehlerFROM schuelerzahlUPTO schuelerproseite-1REP loeschezeilePER
.loeschezeile:INT VAR zeilenincr;FOR zeilenincrFROM 1UPTO felderprozeileREP
zeilenfeldINCR 1;standardmaskenfeld(standardfeldlaenge(zeilenfeld)*blank,
zeilenfeld);feldschutz(zeilenfeld)PER ;.END PROC blocklesenundausgeben;PROC
datenzeigen:TEXT VAR merkdaten:=niltext;zaehlen;zeigenundmerken.zaehlen:
schuelerzahlINCR 1.zeigenundmerken:altejgstzeigen;namezeigen;aktjgstzeigen;
fachzeigen;npfaechermerken;notezeigen;neuerzugtutorzeigen.altejgstzeigen:IF
dreizehnerzurnachpruefungTHEN aenderungsetzenELSE neusetzenFI ;
betreffendeszeigen.dreizehnerzurnachpruefung:intwert(fnrhjdjgst)=jgst13.
aenderungsetzen:BOOL VAR satzgeaendert:=TRUE ;.neusetzen:satzgeaendert:=
FALSE ;.betreffendeszeigen:TEXT VAR alteklasse:=jgstaufber(wert(fnrhjdjgst))+
wert(fnrhjdkennung);dreizehner(schuelerzahl):=satzgeaendert;
standardmaskenfeld(text(alteklasse,laengeklasse),aktuellesfeld);merkdaten:=
text(alteklasse,laengeklasse);gruppenwechsel(alteklasse,gwklasse,laengeklasse
,1,aktuellesfeld);.namezeigen:namenretten;standardmaskenfeld(text(
schuelername+namenstrenner+schuelervorname,laengename),aktuellesfeld);
aktuellesfeldINCR 1.namenretten:TEXT VAR schuelername,schuelervorname;
schuelername:=wert(fnrhjdfamnames);schuelervorname:=wert(fnrhjdrufnames);name
(schuelerzahl):=schuelername;rufname(schuelerzahl):=schuelervorname;gebdatum(
schuelerzahl):=wert(fnrhjdgebdats).aktjgstzeigen:TEXT VAR aktklasse:=niltext;
schluesselfuerschuelerdateisetzen;search(dnrschueler,TRUE );IF dbstatus=ok
THEN aktklasse:=jgstaufber(wert(fnrsusgrpjgst))+wert(fnrsusgrpzugtut)FI ;
standardmaskenfeld(aktklasse,aktuellesfeld);aktuellesfeldINCR 1.fachzeigen:
TEXT VAR fach:=niltext,faecher:=niltext;fach:=wert(fnrhjdnachfach);merkdaten
CAT fach;standardmaskenfeld(fach,aktuellesfeld);feldfrei(aktuellesfeld);
aktuellesfeldINCR 1.npfaechermerken:INT VAR fachind;FOR fachindFROM
fnrhjdnachfach1UPTO fnrhjdnachfach1+2REP faecherCAT wert(fachind);faecherCAT
namenstrenner;PER ;npfaecher(schuelerzahl):=faecher.notezeigen:TEXT VAR note;
note:=wert(fnrhjdnacherg);merkdatenCAT note;standardmaskenfeld(note,
aktuellesfeld);feldfrei(aktuellesfeld);aktuellesfeldINCR 1.
neuerzugtutorzeigen:#????#TEXT VAR tutor;IF wert(fnrsustatuss)=
bestandabgegangeneTHEN tutor:=bestandabgegangene+punktELSE tutor:=niltext;#
wert(fnrsusgrpzugtut);15.07.87dr#FI ;merkdatenCAT tutor;standardmaskenfeld(
tutor,aktuellesfeld);altedaten(schuelerzahl):=merkdaten;feldfrei(
aktuellesfeld);aktuellesfeldINCR 1.END PROC datenzeigen;PROC
schluesselfuerschuelerdateisetzen:inittupel(dnrschueler);putwert(
fnrsufamnames,wert(fnrhjdfamnames));putwert(fnrsurufnames,wert(fnrhjdrufnames
));putwert(fnrsugebdatums,wert(fnrhjdgebdats));.END PROC
schluesselfuerschuelerdateisetzen;PROC feldloeschen(INT CONST laenge):
standardmaskenfeld(laenge*blank,aktuellesfeld)END PROC feldloeschen;BOOL
PROC pruefungspeziell(INT CONST wasistzutun):BOOL VAR b:=FALSE ;SELECT
wasistzutunOF CASE allespruefen:pruefungalleklassen(b)CASE einejgstpruefen:
pruefungeinejgst(b)CASE eineklassepruefen:pruefungeineklasse(b)END SELECT ;b
END PROC pruefungspeziell;PROC pruefungalleklassen(BOOL VAR bool):bool:=(wert
(fnrhjdsj)=schuljahrCAND wert(fnrhjdhj)=schulhalbjahrCAND wert(
fnrhjdversetzung)=kznachpruefung)END PROC pruefungalleklassen;PROC
pruefungeinejgst(BOOL VAR bool):bool:=(wert(fnrhjdsj)=schuljahrCAND wert(
fnrhjdhj)=schulhalbjahrCAND wert(fnrhjdversetzung)=kznachpruefungCAND
jgstaufber(wert(fnrhjdjgst))=startkey1)END PROC pruefungeinejgst;PROC
pruefungeineklasse(BOOL VAR bool):bool:=(wert(fnrhjdsj)=schuljahrCAND wert(
fnrhjdhj)=schulhalbjahrCAND wert(fnrhjdversetzung)=kznachpruefungCAND
jgstaufber(wert(fnrhjdjgst))=startkey1CAND wert(fnrhjdkennung)=startkey2)END
PROC pruefungeineklasse;END PACKET listenweiseergnachpr
|