app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung

Raw file
Back to index

PACKET anschrnachpruefungszulassungDEFINES nachpruefungszulassungeingang,
nachpruefungszulassungende,nachpruefungszulassungstarten,
sonderwertenachpruefungszulassung,multistopnachpruefler:INT VAR 
aktuellerindex;TEXT VAR schuelerschluessel1,schuelerschluessel2,
schuelerschluessel3,bestandsschluessel1,bestandsschluessel2,
aktuellesschuljahr;LET schluesselnachpruefung="n";LET vordruck=
"vordruck nachpruefungszulassung";LET maske="ms anschr schueler o. klasse";
LET namefeldnr=2,vornamefeldnr=3,geburtsdatumfeldnr=4,jgstfeldnr=5,
zugtutorfeldnr=6,bildschirmfeldnr=7,druckerfeldnr=8;LET niltext="",
trennsymbol=" ",vollj="v",minderj="m",oder=" oder ",punkt=".",meldkennz="#",
fehlerhalbjnr=167,fehlermeldnr=56,#wartemeldnr=69,#
dieauswahlderjgstistnichtzulaessignr=146,#
anschreibenkannnichterstelltwerdennr=124,#vater=1;LET minjgst=5,jgst11=11,
maxjgst=13;LET swschulhalbjahr=509,swzuname=511,swnamenszusaetze=512,
swvornamen=513,swgeschlecht=514,swvollj=515,swstrhausnr=517,swplzort=518,
swnameerzieher=519,swnamenszusaetzeerzieher=520,swvornameerzieher=521,
swstrhausnrerzieher=522,swplzorterzieher=523,swparagraph=524,
swnachpruefungsfaecher=525,swbemerkung=526;LET maxanzahlderfaecher=100,
karteifachlangtext=2,fachschluesselindex=1,fachlangtextindex=2;ROW 
maxanzahlderfaecherROW karteifachlangtextTEXT VAR faecherkartei;INT VAR 
anzahlderfaecher:=0;BOOL VAR eingang:=TRUE ,zweitehalbjahr:=TRUE ,
anschreibenzeigen;PROC bildefaecherbestand:LET anzstacktupel=25;
initialisierefaecherkartei;vorbereitung;leseschleife.
initialisierefaecherkartei:INT VAR zaehler1,zaehler2;FOR zaehler1FROM 1UPTO 
maxanzahlderfaecherREP FOR zaehler2FROM 1UPTO karteifachlangtextREP 
faecherkartei(zaehler1)(zaehler2):=niltextPER PER .vorbereitung:BOOL VAR 
wenigergelesen:=FALSE ;INT VAR anztupel;inittupel(dnrfaecher);anztupel:=
anzstacktupel;anzahlderfaecher:=0;multisearchforward(dnrfaecher,anztupel);
evtweniger.leseschleife:WHILE anztupel>0CAND anzahlderfaecher<=
maxanzahlderfaecherREP anzahlderfaecherINCR 1;anztupelDECR 1;multisucc;
faecherkartei(anzahlderfaecher)(1):=wert(dnrfaecher+1);faecherkartei(
anzahlderfaecher)(2):=wert(dnrfaecher+2);IF anztupel=0CAND NOT wenigergelesen
THEN anztupel:=anzstacktupel;multisucc(dnrfaecher,anztupel);evtwenigerFI PER 
.evtweniger:IF anztupel<anzstacktupelTHEN wenigergelesen:=TRUE FI .END PROC 
bildefaecherbestand;TEXT PROC langtextzufachschluessel(TEXT CONST schluessel)
:INT VAR zaehler:=1;TEXT VAR langtext:="";WHILE zaehler<anzahlderfaecherCAND 
schluessel<>faecherkartei(zaehler)(fachschluesselindex)REP zaehlerINCR 1PER ;
IF schluessel=faecherkartei(zaehler)(fachschluesselindex)THEN langtext:=
faecherkartei(zaehler)(fachlangtextindex)FI ;langtextEND PROC 
langtextzufachschluessel;PROC nachpruefungszulassungeingang:standardvproc(
maske);IF eingangTHEN setzesonderwerteschulkenndaten;
feststellenobzweitehalbjahr;IF zweitehalbjahrTHEN bildefaecherbestand;FI ;
aendernderflaggeFI .feststellenobzweitehalbjahr:zweitehalbjahr:=int(
sonderwert(swschulhalbjahr))=2.aendernderflagge:eingang:=FALSE .END PROC 
nachpruefungszulassungeingang;PROC nachpruefungszulassungende:eingang:=TRUE ;
enter(2)END PROC nachpruefungszulassungende;BOOL PROC 
sonderwertenachpruefungszulassung:initialisieresonderwerte;sucheschueler;
sonderwertfuerdenadressaten;sonderwerteschuelerdaten;sonderwerteerzieherdaten
;sonderwertparagraph;sonderwertfuerdienachpruefungsfaecher;
sonderwertfuerbemerkung;TRUE .sucheschueler:inittupel(dnrschueler);
uebernehmeentsprdaten;search(dnrschueler,TRUE ).uebernehmeentsprdaten:putwert
(fnrsufamnames,wert(fnrhjdfamnames));putwert(fnrsurufnames,wert(
fnrhjdrufnames));putwert(fnrsugebdatums,wert(fnrhjdgebdats)).
sonderwertfuerdenadressaten:adressat((wert(fnrsuvornames)SUB 1)+punkt+
trennsymbol+wert(fnrsufamnames)).sonderwerteschuelerdaten:setzesonderwert(
swzuname,wert(fnrsufamnames));setzesonderwert(swnamenszusaetze,wert(
fnrsunamenszusatzs));setzesonderwert(swvornamen,wert(fnrsuvornames));
setzesonderwert(swgeschlecht,wert(fnrsugeschlechts));setzesonderwert(
swstrhausnr,wert(fnrsustrnrs));setzesonderwert(swplzort,wert(fnrsuplzorts));
IF volljaehrig(wert(fnrsugebdatums))THEN setzesonderwert(swvollj,vollj);ELSE 
setzesonderwert(swvollj,minderj)FI .sonderwerteerzieherdaten:setzesonderwert(
swnameerzieher,wert(fnrsufamnamee));setzesonderwert(swnamenszusaetzeerzieher,
wert(fnrsunamenszusatze));setzesonderwert(swvornameerzieher,wert(
fnrsuvornamee));sucheerzieheradresse;setzesonderwert(swstrhausnrerzieher,wert
(fnrsustrnrs));setzesonderwert(swplzorterzieher,wert(fnrsuplzorts));.
sucheerzieheradresse:#IF wert(fnradresse)<>""THEN putwert(fnradrkuerzel,wert(
fnradresse));search(dnradressen,TRUE );IF dbstatus=okTHEN 
uebernehmeerzieheradresseELSE dbstatus(ok)FI FI #IF wert(fnrsuplzorte)<>""
THEN uebernehmeerzieheradresseFI .uebernehmeerzieheradresse:putwert(
fnrsustrnrs,wert(fnrsustrnre));putwert(fnrsuplzorts,wert(fnrsuplzorte)).
sonderwertparagraph:TEXT CONST paragraphsek1:=
"Nr. 4 der Verordnung über die Abschlüsse und "+
"die Versetzung in Sekundarstufe 1 (AVO - SI)",paragraphsek2:=
"Nr. 11 der Verordnung über den Bildungsgang"+
" und die Abiturprüfung der gymnasialen Oberstufe";IF int(wert(fnrhjdjgst))<
jgst11THEN setzesonderwert(swparagraph,paragraphsek1)ELSE setzesonderwert(
swparagraph,paragraphsek2)FI .sonderwertfuerdienachpruefungsfaecher:TEXT VAR 
fachschluessel:="";TEXT VAR nachpruefungsfach:="";TEXT VAR langtext:="";
bestimmungderfaecherindennachpruefungmoeglich;setzesonderwert(
swnachpruefungsfaecher,nachpruefungsfach).
bestimmungderfaecherindennachpruefungmoeglich:fachschluessel:=wert(
fnrhjdnachfach1);langtext:=langtextzufachschluessel(fachschluessel);IF 
langtext<>niltextTHEN nachpruefungsfach:=langtext;fachschluessel:=wert(
fnrhjdnachfach2);langtext:=langtextzufachschluessel(fachschluessel);IF 
langtext<>niltextTHEN nachpruefungsfach:=nachpruefungsfach+oder+langtext;
fachschluessel:=wert(fnrhjdnachfach3);langtext:=langtextzufachschluessel(
fachschluessel);IF langtext<>niltextTHEN nachpruefungsfach:=nachpruefungsfach
+oder+langtextFI FI FI .sonderwertfuerbemerkung:sucheschluesselbemerkung;
suchelangtextzubemerkungundsetzesonderwert.sucheschluesselbemerkung:TEXT VAR 
bemerkungsschluessel:="";bemerkungsschluessel:=wert(fnrhjdbemnach).
suchelangtextzubemerkungundsetzesonderwert:putwert(fnrschlsachgebiet,
"c02 bemerkungen");putwert(fnrschlschluessel,bemerkungsschluessel);search(
dnrschluessel,TRUE );IF dbstatus=okTHEN setzesonderwert(swbemerkung,wert(
fnrschllangtext))ELSE dbstatus(ok);setzesonderwert(swbemerkung,niltext)FI .
END PROC sonderwertenachpruefungszulassung;PROC nachpruefungszulassungstarten
:IF zweitehalbjahrTHEN lesemaskenwerte;IF maskenwerteinordnungTHEN IF 
beibestandsauswahlauswahlzulaessigTHEN startenausfuehrenELSE 
meldeunzulaessigeschuelergruppenauswahl;zurueckzumdialogFI ELSE 
meldedenfehler;zurueckzumdialogFI ELSE meldefalscheshalbjahr;zurueckzumdialog
FI .meldefalscheshalbjahr:LET zweiteshalbjahr="2";standardmeldung(
fehlerhalbjnr,zweiteshalbjahr+meldkennz).lesemaskenwerte:schuelerschluessel1
:=standardmaskenfeld(namefeldnr);schuelerschluessel2:=standardmaskenfeld(
vornamefeldnr);schuelerschluessel3:=standardmaskenfeld(geburtsdatumfeldnr);
bestandsschluessel1:=standardmaskenfeld(jgstfeldnr);bestandsschluessel2:=
standardmaskenfeld(zugtutorfeldnr);anschreibenzeigen:=standardmaskenfeld(
bildschirmfeldnr)<>niltext.maskenwerteinordnung:IF NOT ((standardmaskenfeld(
bildschirmfeldnr)<>niltext)XOR (standardmaskenfeld(druckerfeldnr)<>niltext))
THEN infeld(bildschirmfeldnr);FALSE ELIF ((schuelerschluessel1<>niltextAND 
bestandsschluessel1+bestandsschluessel2=niltextAND (schuelerschluessel2<>
niltextXOR (schuelerschluessel2=niltextAND schuelerschluessel3=niltext)))XOR 
(schuelerschluessel1+schuelerschluessel2+schuelerschluessel3=niltextAND 
bestandsschluessel1<>niltext)XOR (schuelerschluessel1+schuelerschluessel2+
schuelerschluessel3+bestandsschluessel1+bestandsschluessel2=niltext))THEN 
TRUE ELSE infeld(namefeldnr);FALSE FI .meldedenfehler:standardmeldung(
fehlermeldnr,niltext).zurueckzumdialog:return(vater).
meldeunzulaessigeschuelergruppenauswahl:standardmeldung(
dieauswahlderjgstistnichtzulaessignr,niltext).
beibestandsauswahlauswahlzulaessig:(bestandsschluessel1=niltext)OR (
bestandsschluessel1<>niltextCAND int(bestandsschluessel1)<=maxjgstCAND int(
bestandsschluessel1)>=minjgst).startenausfuehren:
initialisieredruckerfueranschreiben;dbstatus(ok);parsenooffields(30);
indexnummerbestimmen;uebernimmentsprechendedaten;anschreibenstart(
aktuellerindex,vordruck,anschreibenzeigen,(schuelerschluessel1+
schuelerschluessel2)<>"",BOOL PROC sonderwertenachpruefungszulassung,BOOL 
PROC multistopnachpruefler).uebernimmentsprechendedaten:aktuellesschuljahr:=
schulkenndatum("Schuljahr");putwert(fnrhjdsj,aktuellesschuljahr);putintwert(
fnrhjdhj,2);putwert(fnrhjdfamnames,schuelerschluessel1);putwert(
fnrhjdrufnames,schuelerschluessel2);putwert(fnrhjdgebdats,datumskonversion(
schuelerschluessel3));putwert(fnrhjdjgst,bestandsschluessel1);putwert(
fnrhjdkennung,bestandsschluessel2);putwert(fnrhjdversetzung,
schluesselnachpruefung).indexnummerbestimmen:IF schuelerschluessel1<>niltext
THEN aktuellerindex:=#dnrhalbjahresdaten#ixhjdverfamsjhjrufgebELSE 
aktuellerindex:=ixhjdversjhjjgstkennFI .END PROC 
nachpruefungszulassungstarten;BOOL PROC multistopnachpruefler:BOOL VAR b:=
wert(fnrhjdsj)=aktuellesschuljahrCAND intwert(fnrhjdhj)=2CAND wert(
fnrhjdversetzung)=schluesselnachpruefung;IF bTHEN weitereueberpruefungFI ;b.
weitereueberpruefung:IF aktuellerindex=ixhjdverfamsjhjrufgebTHEN 
ueberpruefenamenELSE IF bestandsschluessel1<>""THEN ueberpruefejgstFI FI .
ueberpruefenamen:b:=wert(fnrhjdfamnames)=schuelerschluessel1CAND (
schuelerschluessel2=""COR wert(fnrhjdrufnames)=schuelerschluessel2)CAND (
schuelerschluessel3=""COR wert(fnrhjdgebdats)=datumskonversion(
schuelerschluessel3)).ueberpruefejgst:b:=int(bestandsschluessel1)=intwert(
fnrhjdjgst)CAND (bestandsschluessel2=""COR bestandsschluessel2=wert(
fnrhjdkennung)).ENDPROC multistopnachpruefler;END PACKET 
anschrnachpruefungszulassung;