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 --- .../2.2.1/src/1.anschr.nachpruefungszulassung | 146 +++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung (limited to 'app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung') 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 anztupelfaecherkartei(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; + -- cgit v1.2.3