diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2019-02-04 13:09:03 +0100 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2019-02-04 13:09:03 +0100 |
commit | 04e68443040c7abad84d66477e98f93bed701760 (patch) | |
tree | 2b6202afae659e773bf6916157d23e83edfa44e3 /app/schulis/2.2.1/src/1.anschr.nachpruefungsbescheinigung | |
download | eumel-src-04e68443040c7abad84d66477e98f93bed701760.tar.gz eumel-src-04e68443040c7abad84d66477e98f93bed701760.tar.bz2 eumel-src-04e68443040c7abad84d66477e98f93bed701760.zip |
Initial import
Diffstat (limited to 'app/schulis/2.2.1/src/1.anschr.nachpruefungsbescheinigung')
-rw-r--r-- | app/schulis/2.2.1/src/1.anschr.nachpruefungsbescheinigung | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.anschr.nachpruefungsbescheinigung b/app/schulis/2.2.1/src/1.anschr.nachpruefungsbescheinigung new file mode 100644 index 0000000..27212bf --- /dev/null +++ b/app/schulis/2.2.1/src/1.anschr.nachpruefungsbescheinigung @@ -0,0 +1,150 @@ +PACKET anschrnachpruefungsbescheinigungDEFINES +nachpruefungsbescheinigungeingang,nachpruefungsbescheinigungende, +nachpruefungsbescheinigungstarten,sonderwertenachpruefungsbescheinigung, +multistopnachpruefbesch:INT VAR aktuellerindex;TEXT VAR schuelerschluessel1, +schuelerschluessel2,schuelerschluessel3,bestandsschluessel1, +bestandsschluessel2,aktuellesschuljahr,vorigesschuljahr;LET # +schluesselversetztmitpruefung="n"#schluesselnachpruefung="n";# +schluesselwiederholtmitpruefung="x",schluesselwiederholer="w";#LET vordruck= +"vordruck nachpruefungsbescheinigung";LET maske= +"ms auswahl schueler o. klasse";LET namefeldnr=2,vornamefeldnr=3, +geburtsdatumfeldnr=4,jgstfeldnr=5,zugtutorfeldnr=6,bildschirmfeldnr=7, +druckerfeldnr=8;LET niltext="",trennsymbol=" ",punkt=".",meldkennz="#", +fehlerhalbjnr=165,fehlermeldnr=56,#wartemeldnr=69,sortiervorgangwartemeldnr= +76,#dieauswahlderjgstistnichtzulaessignr=146,vater=1;LET minjgst=5,jgst11=11, +maxjgst=13;LET swschulhalbjahr=509,swzuname=511,swnamenszusaetze=512, +swvornamen=513,swgeschlecht=514,swgeburtsdatum=515,swzugang=516, +swjgstnachpruefung=517,swnachpruefungsfach=518,swparagraph=519,swbemerkung= +520;LET maxanzahlderfaecher=100,fachschluesselindex=1,fachlangtextindex=2; +ROW maxanzahlderfaecherROW fachlangtextindexTEXT VAR faecherkartei;INT VAR +anzahlderfaecher:=0;BOOL VAR eingang:=TRUE ,erstehalbjahr:=TRUE , +anschreibenzeigen;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 bildefaecherbestand:LET anzstacktupel=25; +initialisierefaecherkartei;vorbereitung;leseschleife. +initialisierefaecherkartei:INT VAR zaehler1,zaehler2;FOR zaehler1FROM 1UPTO +maxanzahlderfaecherREP FOR zaehler2FROM 1UPTO fachlangtextindexREP +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;PROC nachpruefungsbescheinigungeingang:standardvproc( +maske);IF eingangTHEN setzesonderwerteschulkenndaten; +feststellenoberstehalbjahr;IF erstehalbjahrTHEN berechneschuljahre; +bildefaecherbestand;FI ;aendernderflaggeFI .feststellenoberstehalbjahr: +erstehalbjahr:=int(sonderwert(swschulhalbjahr))=1.aendernderflagge:eingang:= +FALSE .berechneschuljahre:aktuellesschuljahr:=schulkenndatum("Schuljahr"); +vorigesschuljahr:=vorigesjahr.vorigesjahr:text(int(subtext(aktuellesschuljahr +,1,2))-1)+text(int(subtext(aktuellesschuljahr,3,4))-1).END PROC +nachpruefungsbescheinigungeingang;PROC nachpruefungsbescheinigungende:eingang +:=TRUE ;enter(2)END PROC nachpruefungsbescheinigungende;BOOL PROC +sonderwertenachpruefungsbescheinigung:initialisieresonderwerte;sucheschueler; +sonderwertfuerdenadressaten;sonderwerteschuelerdaten;sonderwertartdeszugangs; +sonderwertfuerdiejahrgangsstufe;sonderwertparagraph; +sonderwertfuerdasnachpruefungsfach;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(swgeburtsdatum,wert(fnrsugebdatums));#setzesonderwert( +swstrhausnr,wert(fnrsustrnrs));setzesonderwert(swplzort,wert(fnrsuplzorts)); +IF volljaehrig(wert(fnrsugebdatums))THEN setzesonderwert(swvollj,vollj);ELSE +setzesonderwert(swvollj,minderj)FI #.sonderwertartdeszugangs:IF #wert( +fnrsuartzugang)="x"#bestandenTHEN setzesonderwert(swzugang,"")ELSE +setzesonderwert(swzugang,"x")FI .bestanden:TEXT VAR nachpruefergebnis:=wert( +fnrhjdnacherg);(length(nachpruefergebnis)>1CAND int(nachpruefergebnis)>=4) +COR (length(nachpruefergebnis)=1CAND int(nachpruefergebnis)<=4). +sonderwertfuerdiejahrgangsstufe:#IF wert(fnrsuartzugang)="x"THEN +setzesonderwert(swjgstnachpruefung,text(int(wert(fnrsujgst))-1))ELSE +setzesonderwert(swjgstnachpruefung,wert(fnrsujgst))FI #setzesonderwert( +swjgstnachpruefung,wert(fnrhjdjgst)).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 .sonderwertfuerdasnachpruefungsfach:TEXT VAR +fachschluessel:="";#TEXT VAR nachpruefungsfach:="";#TEXT VAR langtext:=""; +fachschluessel:=wert(fnrhjdnachfach);langtext:=langtextzufachschluessel( +fachschluessel);setzesonderwert(swnachpruefungsfach,langtext). +sonderwertfuerbemerkung:sucheschluesselbemerkung; +suchelangtextzubemerkungundsetzesonderwert.sucheschluesselbemerkung:TEXT VAR +bemerkungsschluessel:="";bemerkungsschluessel:=wert(fnrhjdbemerk). +suchelangtextzubemerkungundsetzesonderwert:#INT VAR bestandsid:=0;systemdbon; +putwert(fnrsysbestand,"c02 bemerkungen");search(dnrsysbestaende,TRUE );IF +dbstatus=okTHEN bestandsid:=intwert(fnrsysbestandsid)FI ;systemdboff;#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 +sonderwertenachpruefungsbescheinigung;PROC nachpruefungsbescheinigungstarten: +IF erstehalbjahrTHEN lesemaskenwerte;IF maskenwerteinordnungTHEN IF +beibestandsauswahlauswahlzulaessigTHEN #bildebestand;IF status<>0AND NOT +einzelbearbeitungTHEN meldenichterstellbar;zurueckzumdialogELSE # +startenausfuehren#FI #ELSE meldeunzulaessigeschuelergruppenauswahl; +zurueckzumdialogFI ELSE meldedenfehler;zurueckzumdialogFI ELSE +meldefalscheshalbjahr;zurueckzumdialogFI .meldefalscheshalbjahr:LET +ersteshalbjahr="1";standardmeldung(fehlerhalbjnr,ersteshalbjahr+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).#einzelbearbeitung:schuelerschluessel1<> +niltext.startenausfuehren:initialisieredruckerfueranschreiben; +anschreibenstart(endbestand,vordruck,dbmnachpruefungsbescheinigung, +schuelerschluessel1,schuelerschluessel2+schuelerschluessel3,anschreibenzeigen +,laengedbmnachpruefungsbescheinigung,BOOL PROC +sonderwertenachpruefungsbescheinigung);.END PROC +nachpruefungsbescheinigungstarten;#startenausfuehren: +initialisieredruckerfueranschreiben;dbstatus(ok);parsenooffields(44); +indexnummerbestimmen;uebernimmentsprechendedaten;anschreibenstart( +aktuellerindex,vordruck,anschreibenzeigen,(schuelerschluessel1+ +schuelerschluessel2)<>"",BOOL PROC sonderwertenachpruefungsbescheinigung, +BOOL PROC multistopnachpruefbesch).uebernimmentsprechendedaten:putwert( +fnrhjdsj,#aktuellesschuljahr#vorigesschuljahr);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:=#dnrhjd#ixhjdverfamsjhjrufgebELSE aktuellerindex:= +ixhjdversjhjjgstkennFI .END PROC nachpruefungsbescheinigungstarten;BOOL PROC +multistopnachpruefbesch:BOOL VAR b:=wert(fnrhjdsj)=#aktuellesschuljahr# +vorigesschuljahrCAND 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:=bestandsschluessel1=wert(fnrhjdjgst) +CAND (bestandsschluessel2=""COR bestandsschluessel2=wert(fnrhjdkennung)). +ENDPROC multistopnachpruefbesch;END PACKET anschrnachpruefungsbescheinigung; + |