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 klassenbildung | 270 +++++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 app/schulis/2.2.1/src/1.listenweise klassenbildung (limited to 'app/schulis/2.2.1/src/1.listenweise klassenbildung') diff --git a/app/schulis/2.2.1/src/1.listenweise klassenbildung b/app/schulis/2.2.1/src/1.listenweise klassenbildung new file mode 100644 index 0000000..c563019 --- /dev/null +++ b/app/schulis/2.2.1/src/1.listenweise klassenbildung @@ -0,0 +1,270 @@ +PACKET listenweiseklassenbildungDEFINES bearbeitungklassenbildung, +klassenbildungnichtspeichern,klassenbildungspeichern:LET meldbestleer=59, +meldnichtspeichern=63,meldwarten=69,meldspeicherung=132,meldspeicherfehler= +131,meldplausi=57,meldfalscheauswahl=56,meldexistiertnicht=134, +meldzuggewechselt=135,meldfalscheshj=78;LET meldtrenner="#",meldkznorm="+"; +LET fnrneuan5=2,fnrneuan11=3,fnrneuansonst=4,fnrjgst=5,fnrtutor=6, +fnrnurnichtvers=7,fnrgeplhj=8,fnrakthj=9;LET fnrherk=2,fnralteklasse=3, +fnrname=4,fnrneueklasse=5;LET tofather=1,tograndfather=2;LET niltext="",blank +=" ",namenstrenner=", ";LET pruefartalternative=5,pruefartgrenzen=3,jgst5=5, +jgst13=13,null=0,freigabeincr=2;LET schuljahrkey="Schuljahr",schulhalbjahrkey +="Schulhalbjahr",best5="n05",best11="n11",bestsonst="nso",bestlaufsj="ls"; +LET jgst05="05",jgst11="11",maxjgst="13",leerejgst=" ";LET kzwiederholer="w" +;LET standardanfang=1,standardeinstieg=6;LET ersteskommendeshj=1, +geplanteszweiteshj=2,aktuelleshj=3;LET maxschueler=15,erstesfeld=2, +felderprozeile=5,schuelerproseite=16,anzkenndaten=3;LET gwherk=1,gwalteklasse +=2,gwneuejgst=3;LET logtextbeginn="Anw. 1.4.1 Klassenbildung ",logtextneu5= +"Neu 5",logtextneu11="Neu 11",logtextneuso="Neu sonstige",logtextwiederhol= +", Wiederholer",logtextfuer="für ",logtextakthj="aktuelles Halbjahr ";BOOL +VAR nochwelcheda,klassenbehandlung,nurnichtversetzte,logakthalbjahr;LET +allespruefen=1,einejgstpruefen=2,eineklassepruefen=3, +einejgstwiederholerpruefen=4,eineklassewiederholerpruefen=5;INT VAR +waspruefen:=0;INT VAR laengeherk,laengealteklasse,laengename,laengeneueklasse +,bestandindex,halbjahresindex,indexbestand,schuelerzahl,aktuellesfeld, +wiederholerbestand;ROW schuelerproseiteROW anzkenndatenTEXT VAR kenndatum;# +ROW schuelerproseiteTEXT VAR name;ROW schuelerproseiteTEXT VAR rufname;ROW +schuelerproseiteTEXT VAR gebdat;##17.07.87dr#ROW schuelerproseiteTEXT VAR +zugtutor;TEXT VAR altejgst,neuejgst,benoetigtevergljgst,vergleichsjgst, +vergleichszug,sicherungstupel,klassenbildungsbestand,aktschuljahr, +aktschulhalbjahr;PROC bearbeitungklassenbildung:reinitparsing; +eingangsbildschirmpruefen;IF eingangsbildschirmokTHEN +initialisierungenvornehmen;naechsteportionlesen;IF keinemehrdaTHEN +bestandleermelden;enter(tofather)ELSE standardnprocFI ELSE +eingangsmaskenfehler;return(tofather)FI .eingangsbildschirmpruefen: +ankreuzfelderpruefen;IF eingangsbildschirmokTHEN jgstzugpruefen;IF +eingangsbildschirmokTHEN halbjahrmitankreuzungvergleichenFI FI . +ankreuzfelderpruefen:INT VAR pruefstatus;standardpruefe(pruefartalternative, +fnrneuan5,fnrjgst,null,niltext,pruefstatus);.jgstzugpruefen:IF +standardmaskenfeld(fnrjgst)<>niltextTHEN standardpruefe(pruefartgrenzen, +fnrjgst,jgst5,jgst13,niltext,pruefstatus)FI ;IF eingangsbildschirmokTHEN +nurnichtversetzte:=standardmaskenfeld(fnrnurnichtvers)<>niltext; +bestimmebestandindex;IF nurnichtversetzteCAND (bestandindexniltextTHEN LEAVE bestimmebestandindexFI +PER .halbjahrmitankreuzungvergleichen:aktschulhalbjahr:=schulkenndatum( +schulhalbjahrkey);aktschuljahr:=schulkenndatum(schuljahrkey);IF +aktschulhalbjahr="2"THEN IF standardmaskenfeld(fnrgeplhj)<>""THEN +standardmeldung(meldfalscheshj,aktschulhalbjahr+meldkznorm);pruefstatus:= +fnrgeplhjFI ELIF aktschulhalbjahr="1"THEN IF standardmaskenfeld(fnrgeplhj)="" +CAND standardmaskenfeld(fnrakthj)=""THEN standardmeldung(meldfalscheshj, +aktschulhalbjahr+meldkznorm);pruefstatus:=fnrgeplhjFI FI . +eingangsbildschirmok:pruefstatus=0.initialisierungenvornehmen: +bestandunddbmaskesetzen;halbjahrsetzen;nichtverspruefen; +plausipruefungvorbereiten;standardstartproc(maske(vergleichsknoten)); +laengenfestlegen;IF nurnichtversetzteTHEN startebildschirmblock( +wiederholerbestand,maxschueler)ELSE startebildschirmblock(indexbestand, +maxschueler)FI .bestandunddbmaskesetzen:standardmeldung(meldwarten,niltext); +klassenbehandlung:=FALSE ;SELECT bestandindexOF CASE fnrneuan5:neuan5setzen +CASE fnrneuan11:neuan11setzenCASE fnrneuansonst:neuansonstsetzenOTHERWISE +jgstoderzugsetzenEND SELECT ;pruefebestand.neuan5setzen:vergleichsjgst:= +jgst05;benoetigtevergljgst:=vergleichsjgst;klassenbildungsbestand:=best5; +indexbestand:=ixsustatschulkenn;waspruefen:=allespruefen;infeld(fnrneuan5). +neuan11setzen:vergleichsjgst:=jgst11;benoetigtevergljgst:=vergleichsjgst; +klassenbildungsbestand:=best11;indexbestand:=ixsustatschulkenn;waspruefen:= +allespruefen;infeld(fnrneuan11).neuansonstsetzen:vergleichsjgst:=niltext; +benoetigtevergljgst:=vergleichsjgst;klassenbildungsbestand:=bestsonst; +indexbestand:=ixsustatschulkenn;waspruefen:=allespruefen;infeld(fnrneuansonst +).jgstoderzugsetzen:TEXT CONST jgst:=jgstaufber(standardmaskenfeld(fnrjgst)); +vergleichsjgst:=jgst;klassenbildungsbestand:=bestlaufsj;IF eineklasseTHEN +setzeklasseELSE setzejgstFI ;IF NOT ((akthalbjahrCOR geplhalbjahr)COR +nurnichtversetzte)THEN neuejgst:=jgstaufber(text(int(altejgst)+1)); +benoetigtevergljgst:=neuejgstELSE neuejgst:=altejgst;benoetigtevergljgst:= +altejgstFI .eineklasse:TEXT CONST zug:=standardmaskenfeld(fnrtutor); +vergleichszug:=zug;klassenbehandlung:=zug<>niltext;klassenbehandlung. +setzeklasse:IF nurnichtversetzteTHEN wiederholerbestand:=ixhjdsjhjverjgstkenn +;waspruefen:=eineklassewiederholerpruefenELSE indexbestand:=ixsustatjgstzug; +waspruefen:=eineklassepruefen;FI ;altejgst:=jgst;infeld(fnrtutor).setzejgst: +IF nurnichtversetzteTHEN IF NOT klassenbehandlungTHEN #???index# +wiederholerbestand:=ixhjdsjhjverjgst;#wiederholer#ELSE wiederholerbestand:= +ixhjdsjhjverjgstkenn;FI ;waspruefen:=einejgstwiederholerpruefenELSE IF NOT +klassenbehandlungTHEN indexbestand:=ixsustatjgst;ELSE indexbestand:= +ixsustatjgstzug;FI ;waspruefen:=einejgstpruefen;FI ;altejgst:=jgst;infeld( +fnrjgst).pruefebestand:reinitparsing;IF nurnichtversetzteTHEN inittupel( +dnrhalbjahresdaten);schluesselfelderinhalbjahresdatenbelegen;search( +wiederholerbestand,FALSE );ELSE inittupel(dnrschueler); +schluesselfelderinschuelerbelegen;search(indexbestand,FALSE );FI ;IF +bestandnichtvorhandenTHEN bestandleermelden;return(tofather);LEAVE +bearbeitungklassenbildungELSE nochwelcheda:=TRUE FI . +schluesselfelderinhalbjahresdatenbelegen:putwert(fnrhjdversetzung, +kzwiederholer);putwert(fnrhjdsj,aktschuljahr);putwert(fnrhjdhj, +aktschulhalbjahr);putwert(fnrhjdjgst,vergleichsjgst);putwert(fnrhjdkennung, +vergleichszug);.schluesselfelderinschuelerbelegen:putwert(fnrsustatuss, +klassenbildungsbestand);IF indexbestand=ixsustatjgstzugOR indexbestand= +ixsustatjgstTHEN putwert(fnrsusgrpjgst,vergleichsjgst);putwert( +fnrsusgrpzugtut,vergleichszug)FI .bestandnichtvorhanden:dbstatus<>okOR (NOT +nurnichtversetzteCAND NOT pruefungspeziell(waspruefen))OR (nurnichtversetzte +CAND NOT pruefungspeziell(waspruefen)).halbjahrsetzen:logakthalbjahr:=FALSE ; +IF geplhalbjahrTHEN geplhalbjahrsetzenELIF akthalbjahrTHEN logakthalbjahr:= +TRUE ;akthalbjahrsetzenELSE ersteshalbjahrsetzenFI .geplhalbjahr:INT VAR +angekreuztesfeld;standardmaskenfeld(fnrgeplhj)<>niltext.geplhalbjahrsetzen: +IF akthalbjahrCOR neuanmeldungTHEN angekreuztesfeld:=fnrgeplhj;falscheauswahl +ELSE halbjahresindex:=geplanteszweiteshjFI .akthalbjahr:standardmaskenfeld( +fnrakthj)<>niltext.akthalbjahrsetzen:IF neuanmeldungTHEN angekreuztesfeld:= +fnrakthj;falscheauswahlELSE halbjahresindex:=aktuelleshjFI . +ersteshalbjahrsetzen:halbjahresindex:=ersteskommendeshj.neuanmeldung: +bestandindex<=fnrneuansonst.falscheauswahl:standardmeldung(meldfalscheauswahl +,niltext);infeld(angekreuztesfeld);return(tofather);LEAVE +bearbeitungklassenbildung.nichtverspruefen:IF (nurnichtversetzteCAND ( +halbjahresindex<>ersteskommendeshj))COR (((NOT nurnichtversetzte)CAND (jgst= +maxjgst))CAND (halbjahresindex=ersteskommendeshj))THEN angekreuztesfeld:= +fnrnurnichtvers;falscheauswahlELIF nurnichtversetzteTHEN halbjahresindex:= +ersteskommendeshjFI .plausipruefungvorbereiten:#holevergleichssg( +benoetigtevergljgst,(halbjahresindex=aktuelleshj)COR nurnichtversetzte)dr13. +11.87#holevergleichssg(benoetigtevergljgst,halbjahresindex=aktuelleshj). +laengenfestlegen:laengeherk:=standardfeldlaenge(fnrherk);laengealteklasse:= +standardfeldlaenge(fnralteklasse);laengename:=standardfeldlaenge(fnrname); +laengeneueklasse:=standardfeldlaenge(fnrneueklasse).naechsteportionlesen: +blocklesenundausgeben.keinemehrda:NOT nochwelcheda.bestandleermelden: +standardmeldung(meldbestleer,niltext).eingangsmaskenfehler:infeld(pruefstatus +).END PROC bearbeitungklassenbildung;PROC klassenbildungnichtspeichern: +nichtspeichernmelden;startkeyssetzen;neuerblock.nichtspeichernmelden: +standardmeldung(meldnichtspeichern,niltext);pause(10).startkeyssetzen: +restoretupel(dnrschueler,sicherungstupel);changeindex.END PROC +klassenbildungnichtspeichern;PROC klassenbildungspeichern: +bestimmeaenderungsart;pruefeplausibilitaet;IF dateninordnungTHEN +speicherungdurchfuehren;startkeyssetzen;neuerblockELSE eingabefehler;return( +tofather)FI .bestimmeaenderungsart:BOOL VAR normalfall:=NOT ((bestandindex> +fnrneuansonst)CAND (halbjahresindex=aktuelleshj));.pruefeplausibilitaet:BOOL +VAR dateninordnung:=TRUE ;INT VAR aktfeld:=1;TEXT VAR bezugsjgst:="", +gelesenejgst;standardmeldung(meldplausi,niltext);FOR suindFROM 1UPTO +schuelerzahlREP pruefezeile;IF NOT dateninordnungTHEN LEAVE +pruefeplausibilitaetFI ;PER .pruefezeile:TEXT VAR aktuellerzug;TEXT VAR +aktuelleschuelergruppe;aktfeldINCR felderprozeile;aktuellerzug:= +standardmaskenfeld(aktfeld);gelesenejgst:=standardmaskenfeld(aktfeld-1);IF +gelesenejgst<>leerejgstTHEN bezugsjgst:=gelesenejgst;FI ; +aktuelleschuelergruppe:=bezugsjgst+aktuellerzug;IF normalfallTHEN +dateninordnung:=(aktuellerzug=niltext)COR istzulaessigesg( +aktuelleschuelergruppe)ELSE dateninordnung:=istzulaessigesg( +aktuelleschuelergruppe)CAND (aktuellerzug<>niltext)FI . +speicherungdurchfuehren:vorbereiten;logeintragvornehmen;aendernschleife; +kurzwarten.logeintragvornehmen:TEXT VAR eintrag:=logtextbeginn;IF +klassenbildungsbestand=best5THEN eintragCAT logtextfuer;eintragCAT +logtextneu5ELIF klassenbildungsbestand=best11THEN eintragCAT logtextfuer; +eintragCAT logtextneu11ELIF klassenbildungsbestand=bestsonstTHEN eintragCAT +logtextfuer;eintragCAT logtextneusoELIF klassenbildungsbestand=bestlaufsj +THEN IF logakthalbjahrTHEN eintragCAT logtextakthjFI ;eintragCAT logtextfuer; +eintragCAT vergleichsjgst;eintragCAT vergleichszug;IF nurnichtversetzteTHEN +eintragCAT logtextwiederholFI ;FI ;logeintrag(eintrag).kurzwarten:pause(10). +vorbereiten:INT VAR aufsatzpunkt:=null;.aendernschleife:INT VAR suind;INT +VAR zahlderaenderungen:=null;FOR suindFROM 1UPTO schuelerzahlREP +behandleschuelersatzPER .behandleschuelersatz:IF datenveraendertTHEN +fuehreaenderungaus;meldevollzugELSE merkenalsaufsatzpunktFI .datenveraendert: +zugtutor(suind)<>standardmaskenfeld((suind*felderprozeile)+1). +merkenalsaufsatzpunkt:aufsatzpunkt:=suind.fuehreaenderungaus:lesenvorbereiten +;lesen;IF normalfallTHEN zurueckschreibenELSE aenderneinheitFI . +lesenvorbereiten:putwert(fnrsufamnames,kenndatum[suind][1]);putwert( +fnrsurufnames,kenndatum[suind][2]);putwert(fnrsugebdatums,datumskonversion( +kenndatum[suind][3]));zahlderaenderungenINCR 1;.lesen:search(dnrschueler, +TRUE ).zurueckschreiben:IF dbstatus=0THEN putwert(fnrsuneuerzugtut, +standardmaskenfeld((suind*felderprozeile)+1));replace(dnrschueler,gettid)FI . +aenderneinheit:TEXT VAR alterzug:=zugtutor(suind);TEXT VAR neuerzug:= +standardmaskenfeld((suind*felderprozeile)+1);TEXT VAR geliefertejgst:= +jgstaufber(wert(fnrsusgrpjgst));TEXT VAR gelieferterzug:=wert(fnrsusgrpzugtut +);IF dbstatus=0CAND geliefertejgst=altejgstCAND gelieferterzug=alterzugTHEN +TEXT VAR schuelertid:=gettid;aenderntransaktion;ELSE transaktionsfehlerFI . +aenderntransaktion:removeoutofindex(ixsustatjgstzug);# +aenderunginstatraumvorbereiten(FALSE );dr10.05.88 +einenschuelerausstatraumentfernen;#IF wert(fnrsutidakthjd)<>niltextTHEN +readtid(dnrhalbjahresdaten,wert(fnrsutidakthjd));putwert(fnrhjdkennung, +neuerzug);#update(dnrhalbjahresdaten);dr10.05.88#selupdate(dnrhalbjahresdaten +);putwert(fnrsutidakthjd,gettid)ELSE FI ;putwert(fnrsusgrpzugtut,neuerzug); +replace(dnrschueler,schuelertid);insertinindex(ixsustatjgstzug);#IF dbstatus +<>okTHEN putwert(fnrsusgrpzugtut,zugtutor[suind]);FI ; +einenschuelerinstatraumeinfuegen;dr10.05.88#.transaktionsfehler: +standardmeldung(meldzuggewechselt,niltext);return(tofather);infeld((suind* +felderprozeile)+1);LEAVE klassenbildungspeichern.meldevollzug:TEXT VAR +meldungstext;INT VAR satzindex:=(suind*felderprozeile)-1;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 klassenbildungspeichernFI ;infeld(satzindex+2). +startkeyssetzen:IF (NOT klassenbehandlung)OR normalfallTHEN aufsatzpunkt:= +schuelerzahlFI ;IF aufsatzpunkt>nullTHEN restoretupel(dnrschueler, +sicherungstupel);changeindexFI .eingabefehler:standardmeldung( +meldexistiertnicht,standardmaskenfeld(aktfeld)+meldtrenner);infeld(aktfeld). +END PROC klassenbildungspeichern;PROC neuerblock:blocklesenundausgeben;IF +nochwelchedaTHEN return(tofather)ELSE enter(tograndfather)FI .END PROC +neuerblock;PROC blocklesenundausgeben:vorbereiten;initgruppenwechsel;SELECT +bestandindexOF CASE fnrneuan5:neuan5lesenCASE fnrneuan11:neuan11lesenCASE +fnrneuansonst:neuansonstlesenOTHERWISE jgstoderzuglesenEND SELECT ; +nachbereiten.vorbereiten:IF NOT nochwelchedaTHEN LEAVE blocklesenundausgeben +FI ;standardmeldung(meldwarten,niltext);schuelerzahl:=null;aktuellesfeld:= +erstesfeld.neuan5lesen:bildschirmblock(PROC neuan5zeigen,BOOL PROC (INT +CONST )pruefungspeziell,waspruefen).neuan11lesen:bildschirmblock(PROC +neuan11zeigen,BOOL PROC (INT CONST )pruefungspeziell,waspruefen). +neuansonstlesen:bildschirmblock(PROC neuansonstzeigen,BOOL PROC (INT CONST ) +pruefungspeziell,waspruefen).jgstoderzuglesen:bildschirmblock(PROC +jgstoderzugzeigen,BOOL PROC (INT CONST )pruefungspeziell,waspruefen). +nachbereiten:nochwelcheda:=(schuelerzahl>null);IF nochwelchedaTHEN savetupel( +dnrschueler,sicherungstupel);restlichezeilenloeschen;infeld(standardanfang); +standardfelderausgebenFI ;infeld(standardeinstieg).restlichezeilenloeschen: +INT VAR zeilenzaehler;INT VAR zeilenfeld:=(schuelerzahl*felderprozeile)+1; +FOR zeilenzaehlerFROM schuelerzahlUPTO maxschuelerREP loeschezeilePER . +loeschezeile:INT VAR zeilenincr;FOR zeilenincrFROM 1UPTO felderprozeileREP +zeilenfeldINCR 1;standardmaskenfeld(standardfeldlaenge(zeilenfeld)*blank, +zeilenfeld)PER ;feldschutz(zeilenfeld).END PROC blocklesenundausgeben;PROC +neuanzeigen(TEXT CONST jgst):schuelerzahlINCR 1;herkunftsschulezeigen; +alteklassezeigen;namezeigen;neueklassezeigen;neuerzugtutorzeigen. +neueklassezeigen:gruppenwechsel(jgst,gwneuejgst,laengeneueklasse,1, +aktuellesfeld).END PROC neuanzeigen;PROC namezeigen:namenretten; +standardmaskenfeld(text(schuelername+namenstrenner+schuelervorname,laengename +),aktuellesfeld);INT VAR eingabefeld:=aktuellesfeld+freigabeincr; +standardmaskenfeld(niltext,eingabefeld);feldfrei(eingabefeld);aktuellesfeld +INCR 1.namenretten:TEXT VAR schuelername,schuelervorname;schuelername:=wert( +fnrsufamnames);schuelervorname:=wert(fnrsurufnames);kenndatum[schuelerzahl][1 +]:=schuelername;kenndatum[schuelerzahl][2]:=schuelervorname;kenndatum[ +schuelerzahl][3]:=datumrekonversion(wert(fnrsugebdatums));.END PROC +namezeigen;PROC herkunftsschulezeigen:gruppenwechsel(wert(fnrsuskennlschule), +gwherk,laengeherk,1,aktuellesfeld)END PROC herkunftsschulezeigen;PROC +alteklassezeigen:gruppenwechsel(wert(fnrsuklasselschule),gwalteklasse, +laengealteklasse,1,aktuellesfeld)END PROC alteklassezeigen;PROC neuan5zeigen: +neuanzeigen(jgst05)END PROC neuan5zeigen;PROC neuan11zeigen:neuanzeigen( +jgst11)END PROC neuan11zeigen;PROC neuansonstzeigen:schuelerzahlINCR 1; +herkunftsschulezeigen;alteklassezeigen;namezeigen;neueklassezeigen; +neuerzugtutorzeigen.neueklassezeigen:gruppenwechsel(jgstaufber(wert( +fnrsujgsteintr)),gwneuejgst,2,1,aktuellesfeld).END PROC neuansonstzeigen; +PROC neuerzugtutorzeigen:TEXT CONST neuerzugtutor:=wert(fnrsuneuerzugtut); +standardmaskenfeld(neuerzugtutor,aktuellesfeld);zugtutor(schuelerzahl):= +neuerzugtutor;aktuellesfeldINCR 1END PROC neuerzugtutorzeigen;PROC +jgstoderzugzeigen:schuelerzahlINCR 1;herkunftsschuleloeschen; +aktuelleklassezeigen;namezeigen;neueklassezeigen;zugtutorbehandeln. +herkunftsschuleloeschen:feldloeschen(laengeherk);aktuellesfeldINCR 1. +aktuelleklassezeigen:TEXT VAR aktjgst:=jgstaufber(wert(fnrsusgrpjgst));IF +halbjahresindex=aktuelleshjTHEN feldloeschen(laengealteklasse);aktuellesfeld +INCR 1ELSE gruppenwechsel(aktjgst+wert(fnrsusgrpzugtut),gwalteklasse, +laengealteklasse,1,aktuellesfeld)FI .neueklassezeigen:IF halbjahresindex= +ersteskommendeshjTHEN gruppenwechsel(neuejgst,gwneuejgst,2,1,aktuellesfeld) +ELSE gruppenwechsel(aktjgst,gwneuejgst,2,1,aktuellesfeld)FI . +zugtutorbehandeln:IF halbjahresindex<>aktuelleshjTHEN neuerzugtutorzeigen +ELSE TEXT CONST zugtutordesschuelers:=wert(fnrsusgrpzugtut);zugtutor( +schuelerzahl):=zugtutordesschuelers;standardmaskenfeld(zugtutordesschuelers, +aktuellesfeld);aktuellesfeldINCR 1FI .END PROC jgstoderzugzeigen;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)CASE einejgstwiederholerpruefen: +pruefungeinejgstwiederholer(b)CASE eineklassewiederholerpruefen: +pruefungeineklassewiederholer(b)END SELECT ;bEND PROC pruefungspeziell;PROC +pruefungalleklassen(BOOL VAR bool):bool:=(wert(fnrsustatuss)= +klassenbildungsbestand)END PROC pruefungalleklassen;PROC pruefungeinejgst( +BOOL VAR bool):bool:=(wert(fnrsustatuss)=bestlaufsjCAND jgstaufber(wert( +fnrsusgrpjgst))=vergleichsjgst)END PROC pruefungeinejgst;PROC +pruefungeineklasse(BOOL VAR bool):bool:=(wert(fnrsustatuss)=bestlaufsjCAND +jgstaufber(wert(fnrsusgrpjgst))=vergleichsjgstCAND wert(fnrsusgrpzugtut)= +vergleichszug)END PROC pruefungeineklasse;PROC pruefungeinejgstwiederholer( +BOOL VAR bool):inschuelerdateisuchen;bool:=(wert(fnrhjdversetzung)= +kzwiederholerCAND wert(fnrhjdsj)=aktschuljahrCAND wert(fnrhjdhj)= +aktschulhalbjahrCAND jgstaufber(wert(fnrhjdjgst))=vergleichsjgst)END PROC +pruefungeinejgstwiederholer;PROC pruefungeineklassewiederholer(BOOL VAR bool) +:inschuelerdateisuchen;bool:=(wert(fnrhjdversetzung)=kzwiederholerCAND wert( +fnrhjdsj)=aktschuljahrCAND wert(fnrhjdhj)=aktschulhalbjahrCAND jgstaufber( +wert(fnrhjdjgst))=vergleichsjgstCAND wert(fnrhjdkennung)=vergleichszug)END +PROC pruefungeineklassewiederholer;PROC inschuelerdateisuchen:inittupel( +dnrschueler);putwert(fnrsufamnames,wert(fnrhjdfamnames));putwert( +fnrsurufnames,wert(fnrhjdrufnames));putwert(fnrsugebdatums,wert(fnrhjdgebdats +));putwert(fnrsustatuss,bestlaufsj);search(ixsustatfamrufgeb,TRUE );END PROC +inschuelerdateisuchen;END PACKET listenweiseklassenbildung + -- cgit v1.2.3