summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung')
-rw-r--r--app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung146
1 files changed, 146 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung b/app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung
new file mode 100644
index 0000000..871d9b6
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung
@@ -0,0 +1,146 @@
+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;
+