app/schulis/2.2.1/src/1.listenweise dif dat erf

Raw file
Back to index

PACKET listenweisedifdaterfDEFINES bearbeitungdifdaterf,
difdaterfnichtspeichern,difdaterfspeichern:LET tofather=1,tograndfather=2,
maxsek1="10",niltext="",blank=" ",namenstrenner=", ",null=0,meldtrenner="#";
LET maskennamepreallg="ms dif dat erf bearbeitung";LET jgst5=5,jgst13=13,
standardanfang=1;LET maxschueler=14,schuelerproseite=15;LET meldbestleer=59,
meldnichtspeichern=63,meldplausi=57,meldwarten=69,meldspeicherung=132,
meldspeicherfehler=131,meldnrfalschesdatum=157,meldnrfalscherschluessel=34;
LET pruefartalternative=5,pruefartgrenzen=3;LET fnrjgst=2,fnrtutor=3,fnrfs1=4
,fnrag=12,fnrmaskentitel=3,fnrklasse=2;LET mnr1=1,mnr2=2,mnr3=3,mnr4=4,mnr5=5
,titel09="09",titel10="10",ef1=4,fpz1=4,ef2=3,fpz3=2,fpz4=5;LET awfs1=1,awfs2
=2,awfs3=3,awfs4=4,awreli=5,awkunst=6,awwp9=7,awwp10=8,awag=9,
auswertungsdistanz=3;LET maxag=3;LET allespruefen=1,einejgstpruefen=2,
eineklassepruefen=3;LET schuelerbestand="ls";LET logtextbeginn="Anw. 1.4.2 ",
logtextalleklassen="alle Klassen";LET logtext1=".Fremdsprache",logtext2=
"Teilnahme am Religionsunterricht",logtext3="Kunst/Musik",logtext4=
"Wahlpflichtfächer",logtext5="Arbeitsgemeinschaften";TEXT VAR logarttext;
BOOL VAR nochwelcheda,alleklassen,tutorenkurs,sek2,eineklasse,
nochweiterebestaende,einejgst;INT VAR fremdsprachenindex,wpindex,waspruefen,
erstesfeld,felderprozeile,standardeinstieg,laengename,laengeklasse,
schuelerzahl,aktuellesfeld,auswertungsnr;ROW schuelerproseiteTEXT VAR name;
ROW schuelerproseiteTEXT VAR rufname;ROW schuelerproseiteTEXT VAR gebdat;ROW 
schuelerproseiteTEXT VAR altedaten;TEXT VAR vergleichsjgst,vergleichszug,
sicherungstupel;PROC bearbeitungdifdaterf:TEXT VAR jgst,zug;reinitparsing;
eingangsbildschirmpruefen;IF eingangsbildschirmokTHEN 
initialisierungenvornehmen;naechsteportionlesen;IF keinemehrdaTHEN 
bestandleermelden;enter(tofather)ELSE standardnprocFI ELSE 
eingangsmaskenfehler;return(tofather)FI .eingangsbildschirmok:pruefstatus=0.
eingangsbildschirmpruefen:ankreuzfelderpruefen;IF eingangsbildschirmokTHEN 
jgstzugpruefenFI .ankreuzfelderpruefen:INT VAR pruefstatus;standardpruefe(
pruefartalternative,fnrfs1,fnrag,null,niltext,pruefstatus);.jgstzugpruefen:
alleklassen:=FALSE ;IF standardmaskenfeld(fnrjgst)<>niltextTHEN 
standardpruefe(pruefartgrenzen,fnrjgst,jgst5,jgst13,niltext,pruefstatus)ELIF 
standardmaskenfeld(fnrtutor)<>niltextTHEN pruefstatus:=fnrtutorELSE 
alleklassen:=TRUE FI .initialisierungenvornehmen:bestandundmaskesetzen;
bearbeitungsmaskevorbereiten;laengenfestlegen;IF sek2CAND NOT tutorenkurs
THEN startebildschirmblock(ixsustatjgst,maxschueler)ELSE 
startebildschirmblock(ixsustatjgstzug,maxschueler)FI .
bearbeitungsmaskevorbereiten:standardstartproc(maskennamepreallg+text(
auswertungsmaskennr));IF maskentitel<>niltextTHEN standardmaskenfeld(
maskentitel,fnrmaskentitel)FI ;SELECT auswertungsmaskennrOF CASE mnr1:
erstesfeld:=ef1;felderprozeile:=fpz1CASE mnr2:erstesfeld:=ef2;felderprozeile
:=fpz1CASE mnr3:erstesfeld:=ef2;felderprozeile:=fpz3CASE mnr4:erstesfeld:=ef1
;felderprozeile:=fpz4CASE mnr5:erstesfeld:=ef2;felderprozeile:=fpz1END 
SELECT ;standardeinstieg:=erstesfeld+1.laengenfestlegen:laengeklasse:=
standardfeldlaenge(fnrklasse);laengename:=standardfeldlaenge(erstesfeld).
naechsteportionlesen:blocklesenundausgeben.keinemehrda:NOT nochwelcheda.
bestandleermelden:standardmeldung(meldbestleer,niltext).eingangsmaskenfehler:
#standardmeldung(meldfalscheauswahl,niltext);#infeld(pruefstatus).
bestandundmaskesetzen:standardmeldung(meldwarten,niltext);bestimmebestand;
setzestartkeys;pruefebestand;bestimmemaske.bestimmebestand:eineklasse:=FALSE 
;einejgst:=FALSE ;jgst:=jgstaufber(standardmaskenfeld(fnrjgst));zug:=
standardmaskenfeld(fnrtutor);IF alleklassenTHEN alleklassensetzenELIF 
nureineklasseTHEN setzeklasseELSE setzejgstFI .alleklassensetzen:waspruefen:=
allespruefen;sek2:=FALSE ;vergleichsjgst:=niltext;infeld(fnrjgst).
nureineklasse:tutorenkurs:=zug<>niltext;tutorenkurs.setzeklasse:eineklasse:=
TRUE ;waspruefen:=eineklassepruefen;vergleichsjgst:=jgst;vergleichszug:=zug;
sek2:=FALSE ;infeld(fnrtutor).setzejgst:sek2:=istsek2(jgst);einejgst:=TRUE ;
waspruefen:=einejgstpruefen;vergleichsjgst:=jgst;infeld(fnrjgst).
setzestartkeys:inittupel(dnrschueler);putwert(fnrsustatuss,schuelerbestand);
putwert(fnrsusgrpjgst,jgst);putwert(fnrsusgrpzugtut,zug);.pruefebestand:
search(ixsustatjgstzug,FALSE );IF dbstatus=nullCAND (pruefungspeziell(
waspruefen))THEN vergleichsjgst:=wert(fnrsusgrpjgst);vergleichszug:=wert(
fnrsusgrpzugtut);nochwelcheda:=TRUE ;IF alleklassenTHEN waspruefen:=
eineklassepruefenELIF NOT sek2CAND waspruefen=einejgstpruefenTHEN waspruefen
:=eineklassepruefenFI ELSE bestandleermelden;return(tofather);LEAVE 
bearbeitungdifdaterfFI .bestimmemaske:setzeauswertungsnr;SELECT auswertungsnr
OF CASE awfs1,awfs2,awfs3,awfs4:auswertungfremdspracheCASE awreli:
auswertungreliCASE awkunst:auswertungkunstCASE awwp9:auswertungwp9CASE awwp10
:auswertungwp10CASE awag:auswertungagEND SELECT .auswertungfremdsprache:INT 
VAR auswertungsmaskennr:=mnr1;maskentitel:=text(auswertungsnr);logarttext:=
maskentitel;logarttextCAT logtext1.auswertungreli:auswertungsmaskennr:=mnr2;
logarttext:=logtext2.auswertungkunst:auswertungsmaskennr:=mnr3;logarttext:=
logtext3.auswertungwp9:auswertungsmaskennr:=mnr4;maskentitel:=titel09;
logarttext:=logtext4.auswertungwp10:auswertungsmaskennr:=mnr4;maskentitel:=
titel10;logarttext:=logtext4.auswertungag:auswertungsmaskennr:=mnr5;
logarttext:=logtext5.setzeauswertungsnr:INT VAR indauswertungsnr;TEXT VAR 
maskentitel:=niltext;FOR indauswertungsnrFROM fnrfs1UPTO fnragREP IF 
standardmaskenfeld(indauswertungsnr)<>niltextTHEN auswertungsnr:=
indauswertungsnr-auswertungsdistanz;LEAVE setzeauswertungsnrFI PER .END PROC 
bearbeitungdifdaterf;PROC difdaterfnichtspeichern:nichtspeichernmelden;
startkeyssetzen;neuerblock.nichtspeichernmelden:standardmeldung(
meldnichtspeichern,niltext);pause(10).startkeyssetzen:restoretupel(
dnrschueler,sicherungstupel);changeindex.END PROC difdaterfnichtspeichern;
PROC difdaterfspeichern:BOOL VAR falschesdatum:=FALSE ;INT VAR lv;
pruefeplausibilitaet;IF dateninordnungTHEN speicherungdurchfuehren;
startkeyssetzen;neuerblockELSE eingabefehler;return(tofather);FI .
pruefeplausibilitaet:BOOL VAR dateninordnung:=TRUE ;standardmeldung(
meldplausi,niltext);aktuellesfeldvorbelegen;FOR suindFROM 1UPTO schuelerzahl
REP pruefezeile;IF NOT dateninordnungTHEN LEAVE pruefeplausibilitaetFI PER .
aktuellesfeldvorbelegen:SELECT auswertungsnrOF CASE awfs1,awfs2,awfs3,awfs4:
vorbelegungmitsprungCASE awreli:vorbelegungmitsprungCASE awkunst:
vorbelegungmitsprungCASE awwp9,awwp10:vorbelegungohnesprungCASE awag:
vorbelegungohnesprungEND SELECT .vorbelegungmitsprung:aktuellesfeld:=
erstesfeld+1-felderprozeile.vorbelegungohnesprung:aktuellesfeld:=erstesfeld.
pruefezeile:falschesdatum:=FALSE ;SELECT auswertungsnrOF CASE awfs1,awfs2,
awfs3,awfs4:ueberpruefefachmitsprungCASE awreli:ueberpruefefachmitsprungCASE 
awkunst:ueberpruefefachmitsprungCASE awwp9,awwp10:ueberpruefefachinreiheCASE 
awag:ueberpruefefachinreiheEND SELECT .ueberpruefefachmitsprung:aktuellesfeld
:=aktuellesfeld+felderprozeile;dateninordnung:=schluesselexistiert;IF 
auswertungsnr=awreliTHEN disablestop;FOR lvFROM 1UPTO 2REP putwert(
fnrddreliunter+lv,datumskonversion(standardmaskenfeld(aktuellesfeld+lv)));IF 
iserrorTHEN clearerror;falschesdatum:=TRUE ;dateninordnung:=FALSE ;enablestop
;LEAVE ueberpruefefachmitsprungFI ;PER ;enablestop;FI .ueberpruefefachinreihe
:INT VAR i;FOR iFROM 1UPTO felderprozeile-1REP aktuellesfeldINCR 1;
dateninordnung:=schluesselexistiert;IF NOT dateninordnungTHEN LEAVE 
ueberpruefefachinreiheFI PER ;aktuellesfeldINCR 1.schluesselexistiert:TEXT 
CONST schleintrag:=compress(subtext(standardmaskenfeld(aktuellesfeld),1,2));(
schleintrag=niltext)COR schluesselvorhanden(schleintrag).
speicherungdurchfuehren:logeintragvornehmen;aendernschleife;kurzwarten.
logeintragvornehmen:TEXT VAR eintrag:=logtextbeginn;eintragCAT logarttext;
eintragCAT " für ";IF alleklassenTHEN eintragCAT logtextalleklassenELSE 
eintragCAT vergleichsjgst;eintragCAT vergleichszugFI ;logeintrag(eintrag).
kurzwarten:pause(10).aendernschleife:INT VAR suind;INT VAR zahlderaenderungen
:=null;INT VAR satzindex:=erstesfeld;FOR suindFROM 1UPTO schuelerzahlREP 
behandleschuelersatz;satzindexINCR felderprozeilePER .behandleschuelersatz:
IF datenveraendertTHEN fuehreaenderungaus;meldevollzugFI .fuehreaenderungaus:
lesenvorbereiten;lesen;zurueckschreiben;.lesenvorbereiten:zahlderaenderungen
INCR 1;putwert(fnrsufamnames,name(suind));putwert(fnrsurufnames,rufname(suind
));putwert(fnrsugebdatums,gebdat(suind)).lesen:search(dnrschueler,TRUE );IF 
dbstatus=okCAND wert(fnrsutiddiffdaten)<>niltextTHEN readtid(dnrdiffdaten,
wert(fnrsutiddiffdaten))ELSE dbstatus(notfound)FI .zurueckschreiben:IF 
dbstatus=0THEN dbwertesetzen;aenderntransaktionFI .dbwertesetzen:
aktuellesfeld:=satzindex+1;SELECT auswertungsnrOF CASE awfs1,awfs2,awfs3,
awfs4:setzefremdsprachenCASE awreli:setzereliCASE awkunst:setzekunstCASE 
awwp9,awwp10:setzewpCASE awag:setzeagEND SELECT .aenderntransaktion:replace(
dnrdiffdaten,wert(fnrsutiddiffdaten)).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 difdaterfspeichernFI ;infeld(satzindex+1
).datenveraendert:altedaten(suind)<>jetzigedaten.jetzigedaten:INT VAR datind;
TEXT VAR datenindermaske:=niltext;FOR datindFROM 1UPTO felderprozeile-1REP 
datenindermaskeCAT text(standardmaskenfeld(satzindex+datind),
standardfeldlaenge(satzindex+datind))PER ;datenindermaske.startkeyssetzen:
restoretupel(dnrschueler,sicherungstupel);changeindex.eingabefehler:IF 
falschesdatumTHEN standardmeldung(meldnrfalschesdatum,niltext);infeld(
aktuellesfeld+lv)ELSE standardmeldung(meldnrfalscherschluessel,niltext);
infeld(aktuellesfeld)FI ;.END PROC difdaterfspeichern;BOOL PROC 
schluesselvorhanden(TEXT CONST eingabe):putwert(fnrffach,eingabe);search(
dnrfaecher,TRUE );dbstatus=okEND PROC schluesselvorhanden;PROC neuerblock:
evtlnaechsterbestand;blocklesenundausgeben;IF nochwelchedaTHEN return(
tofather)ELSE enter(tograndfather)FI .evtlnaechsterbestand:IF schuelerzahl=
maxschuelerTHEN IF sek2CAND NOT tutorenkursTHEN succ(ixsustatjgst)ELSE succ(
ixsustatjgstzug);FI ;IF dbstatus<>0THEN nochwelcheda:=FALSE ;
nochweiterebestaende:=FALSE ;FI FI ;IF NOT pruefungspeziell(waspruefen)THEN 
IF naechsterbestandTHEN changeindex;vergleichsjgst:=wert(fnrsusgrpjgst);
vergleichszug:=wert(fnrsusgrpzugtut);startebildschirmblock(ixsustatjgstzug,
maxschueler)ELSE nochwelcheda:=FALSE FI ELSE restoretupel(dnrschueler,
sicherungstupel);changeindexFI .END PROC neuerblock;PROC 
blocklesenundausgeben:REP vorbereiten;gewuenschteszeigen;nachbereitenPER .
vorbereiten:IF NOT nochwelchedaTHEN LEAVE blocklesenundausgebenFI ;
standardmeldung(meldwarten,niltext);schuelerzahl:=null;aktuellesfeld:=
erstesfeld.nachbereiten:nochwelcheda:=(schuelerzahl>null);IF nochwelcheda
THEN savetupel(dnrschueler,sicherungstupel);restlichezeilenloeschen;infeld(
standardanfang);standardfelderausgeben;infeld(standardeinstieg);LEAVE 
blocklesenundausgebenELIF naechsterbestandTHEN vergleichsjgst:=wert(
fnrsusgrpjgst);vergleichszug:=wert(fnrsusgrpzugtut);#???#
startebildschirmblock(ixsustatjgstzug,maxschueler);nochwelcheda:=TRUE ELSE 
LEAVE blocklesenundausgebenFI ;.restlichezeilenloeschen:INT VAR zeilenzaehler
;INT VAR zeilenfeld:=(schuelerzahl*felderprozeile)+(erstesfeld-1);FOR 
zeilenzaehlerFROM schuelerzahlUPTO maxschuelerREP loeschezeilePER .
loeschezeile:INT VAR zeilenincr;FOR zeilenincrFROM 1UPTO felderprozeileREP 
zeilenfeldINCR 1;standardmaskenfeld(standardfeldlaenge(zeilenfeld)*blank,
zeilenfeld);feldschutz(zeilenfeld)PER ;.gewuenschteszeigen:SELECT 
auswertungsnrOF CASE awfs1:zeigefremdsprache1CASE awfs2:zeigefremdsprache2
CASE awfs3:zeigefremdsprache3CASE awfs4:zeigefremdsprache4CASE awreli:
zeigereliCASE awkunst:zeigekunstCASE awwp9:zeigewp9CASE awwp10:zeigewp10CASE 
awag:zeigeagEND SELECT ;.zeigefremdsprache1:fremdsprachenindex:=
fnrdd1fremdfach;bildschirmblock(PROC fremdsprachezeigen,BOOL PROC (INT CONST 
)pruefungspeziell,waspruefen).zeigefremdsprache2:fremdsprachenindex:=
fnrdd2fremdfach;bildschirmblock(PROC fremdsprachezeigen,BOOL PROC (INT CONST 
)pruefungspeziell,waspruefen).zeigefremdsprache3:fremdsprachenindex:=
fnrdd3fremdfach;bildschirmblock(PROC fremdsprachezeigen,BOOL PROC (INT CONST 
)pruefungspeziell,waspruefen).zeigefremdsprache4:fremdsprachenindex:=
fnrdd4fremdfach;bildschirmblock(PROC fremdsprachezeigen,BOOL PROC (INT CONST 
)pruefungspeziell,waspruefen).zeigereli:bildschirmblock(PROC relizeigen,BOOL 
PROC (INT CONST )pruefungspeziell,waspruefen).zeigekunst:bildschirmblock(
PROC kunstzeigen,BOOL PROC (INT CONST )pruefungspeziell,waspruefen).zeigewp9:
wpindex:=fnrddfach091a;bildschirmblock(PROC wpzeigen,BOOL PROC (INT CONST )
pruefungspeziell,waspruefen).zeigewp10:wpindex:=fnrddfach101a;bildschirmblock
(PROC wpzeigen,BOOL PROC (INT CONST )pruefungspeziell,waspruefen).zeigeag:
bildschirmblock(PROC agzeigen,BOOL PROC (INT CONST )pruefungspeziell,
waspruefen).END PROC blocklesenundausgeben;PROC namezeigen:IF ersterTHEN 
klassezeigenundrettenFI ;namenretten;standardmaskenfeld(text(schuelername+
namenstrenner+schuelervorname,laengename),aktuellesfeld);readtid(dnrdiffdaten
,wert(fnrsutiddiffdaten));aktuellesfeldINCR 1.erster:schuelerzahl=null.
klassezeigenundretten:sek2:=istsek2(wert(fnrsusgrpjgst));IF sek2CAND (NOT 
tutorenkurs)THEN sek2sonderbehandlungELSE normalbehandlungFI .
normalbehandlung:vergleichsjgst:=wert(fnrsusgrpjgst);vergleichszug:=wert(
fnrsusgrpzugtut);standardmaskenfeld(text(vergleichsjgst+vergleichszug,
laengeklasse),fnrklasse).sek2sonderbehandlung:vergleichsjgst:=wert(
fnrsusgrpjgst);standardmaskenfeld(text(vergleichsjgst,laengeklasse),fnrklasse
).namenretten:TEXT VAR schuelername,schuelervorname;schuelername:=wert(
fnrsufamnames);schuelervorname:=wert(fnrsurufnames);schuelerzahlINCR 1;name(
schuelerzahl):=schuelername;rufname(schuelerzahl):=schuelervorname;gebdat(
schuelerzahl):=wert(fnrsugebdatums).END PROC namezeigen;PROC 
fremdsprachezeigen:namezeigen;gewaehltefremdsprachezeigen.
gewaehltefremdsprachezeigen:TEXT VAR was;INT VAR lv;altedaten(schuelerzahl):=
niltext;FOR lvFROM fremdsprachenindexUPTO fremdsprachenindex+2REP was:=wert(
lv);standardmaskenfeld(was,aktuellesfeld);altedaten(schuelerzahl)CAT text(was
,standardfeldlaenge(aktuellesfeld));feldfrei(aktuellesfeld);aktuellesfeld
INCR 1PER .END PROC fremdsprachezeigen;PROC setzefremdsprachen:TEXT VAR was;
INT VAR lv;FOR lvFROM fremdsprachenindexUPTO fremdsprachenindex+2REP was:=
standardmaskenfeld(aktuellesfeld);putwert(lv,was);aktuellesfeldINCR 1;PER .
END PROC setzefremdsprachen;PROC relizeigen:namezeigen;relidatenzeigen.
relidatenzeigen:INT VAR was:=fnrddreliunter,lv;TEXT VAR daten;altedaten(
schuelerzahl):=niltext;FOR lvFROM wasUPTO was+2REP IF lv=wasTHEN daten:=(wert
(lv));ELSE daten:=datumrekonversion(wert(lv))FI ;standardmaskenfeld(daten,
aktuellesfeld);altedaten(schuelerzahl)CAT text(daten,standardfeldlaenge(
aktuellesfeld));feldfrei(aktuellesfeld);aktuellesfeldINCR 1PER .END PROC 
relizeigen;PROC setzereli:INT VAR was:=fnrddreliunter,lv;TEXT VAR daten;FOR 
lvFROM wasUPTO was+2REP IF lv=wasTHEN daten:=standardmaskenfeld(aktuellesfeld
);ELSE daten:=datumskonversion(standardmaskenfeld(aktuellesfeld));FI ;putwert
(lv,daten);aktuellesfeldINCR 1PER END PROC setzereli;PROC kunstzeigen:
namezeigen;fachzeigen;merken.fachzeigen:TEXT VAR fach:=wert(fnrddkunstmusik);
standardmaskenfeld(fach,aktuellesfeld);feldfrei(aktuellesfeld);aktuellesfeld
INCR 1.merken:altedaten(schuelerzahl):=text(fach,2).END PROC kunstzeigen;
PROC setzekunst:putwert(fnrddkunstmusik,standardmaskenfeld(aktuellesfeld));
END PROC setzekunst;PROC wpzeigen:namezeigen;zeigefaecher;merken.zeigefaecher
:INT VAR lv;TEXT VAR wpfaecher:=niltext,fach;FOR lvFROM wpindexUPTO wpindex+3
REP fach:=wert(lv);standardmaskenfeld(fach,aktuellesfeld);feldfrei(
aktuellesfeld);aktuellesfeldINCR 1;wpfaecherCAT text(fach,2)PER .merken:
altedaten(schuelerzahl):=wpfaecher.END PROC wpzeigen;PROC setzewp:INT VAR lv;
TEXT VAR fach;FOR lvFROM wpindexUPTO wpindex+3REP fach:=standardmaskenfeld(
aktuellesfeld);putwert(lv,fach);aktuellesfeldINCR 1PER END PROC setzewp;PROC 
agzeigen:namezeigen;agdatenzeigen.agdatenzeigen:INT VAR agind,woher:=0,
laengeag:=2;TEXT VAR ag:=niltext;altedaten(schuelerzahl):=niltext;FOR agind
FROM 0UPTO maxag-1REP ag:=text(wert(fnrddagthema1+woher),laengeag);agCAT text
(wert(fnrddagthema1b+woher),laengeag+1);agCAT text(wert(fnrddagthema1e+woher)
,laengeag+1);IF compress(ag)<>niltextTHEN standardmaskenfeld(ag,aktuellesfeld
);ELSE standardmaskenfeld(niltext,aktuellesfeld);FI ;altedaten(schuelerzahl)
CAT text(ag,standardfeldlaenge(aktuellesfeld));feldfrei(aktuellesfeld);
aktuellesfeldINCR 1;woherINCR 3PER .END PROC agzeigen;PROC setzeag:INT VAR 
agind,wohin:=0;TEXT VAR ag:=niltext;FOR agindFROM 0UPTO maxag-1REP ag:=
standardmaskenfeld(aktuellesfeld);putwert(fnrddagthema1+wohin,subtext(ag,1,2)
);putwert(fnrddagthema1b+wohin,subtext(ag,3,5));putwert(fnrddagthema1e+wohin,
subtext(ag,6,8));wohinINCR 3;aktuellesfeldINCR 1;PER END PROC setzeag;PROC 
feldloeschen(INT CONST laenge):standardmaskenfeld(laenge*blank,aktuellesfeld)
END PROC feldloeschen;BOOL PROC istsek2(TEXT CONST jgst):jgst>maxsek1END 
PROC istsek2;BOOL PROC naechsterbestand:nochweiterebestaende:=(alleklassen
CAND pruefungspeziell(allespruefen))OR (einejgstCAND pruefungspeziell(
einejgstpruefen))OR (eineklasseCAND pruefungspeziell(eineklassepruefen));
nochweiterebestaendeEND PROC naechsterbestand;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 ;bEND PROC pruefungspeziell
;PROC pruefungalleklassen(BOOL VAR bool):bool:=wert(fnrsustatuss)=
schuelerbestandEND PROC pruefungalleklassen;PROC pruefungeinejgst(BOOL VAR 
bool):bool:=(wert(fnrsustatuss)=schuelerbestandCAND wert(fnrsusgrpjgst)=
vergleichsjgst)END PROC pruefungeinejgst;PROC pruefungeineklasse(BOOL VAR 
bool):bool:=(wert(fnrsustatuss)=schuelerbestandCAND wert(fnrsusgrpjgst)=
vergleichsjgstCAND wert(fnrsusgrpzugtut)=vergleichszug)END PROC 
pruefungeineklasse;END PACKET listenweisedifdaterf