From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- app/schulis/2.2.1/src/1.listenweise dif dat erf | 255 ++++++++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 app/schulis/2.2.1/src/1.listenweise dif dat erf (limited to 'app/schulis/2.2.1/src/1.listenweise dif dat erf') 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 + -- cgit v1.2.3