summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listenweise dif dat erf
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listenweise dif dat erf')
-rw-r--r--app/schulis/2.2.1/src/1.listenweise dif dat erf255
1 files changed, 255 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.listenweise dif dat erf b/app/schulis/2.2.1/src/1.listenweise dif dat erf
new file mode 100644
index 0000000..0ef8cfd
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.listenweise dif dat erf
@@ -0,0 +1,255 @@
+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
+