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