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 --- app/schulis/2.2.1/src/1.listen.nachpruefung | 155 ++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 app/schulis/2.2.1/src/1.listen.nachpruefung (limited to 'app/schulis/2.2.1/src/1.listen.nachpruefung') diff --git a/app/schulis/2.2.1/src/1.listen.nachpruefung b/app/schulis/2.2.1/src/1.listen.nachpruefung new file mode 100644 index 0000000..0247060 --- /dev/null +++ b/app/schulis/2.2.1/src/1.listen.nachpruefung @@ -0,0 +1,155 @@ +PACKET nachprueflistenDEFINES nachprlispezielleteile:LET +mnrbearbeitetwirdjgst=106,nurimzweitenhj=193,schluesselnachpruefler="n";TEXT +VAR aktuellesschuljahr,endewertjgst,startwertjgst,bearbeitetwirdjgst;LET +niltext="",blank=" ",mittestrich="-",null=0,ueberschriftenzeilen=2, +spalte1breite=7,spalte3breite=40,anzspaltentrenner=2,spaltentrenner=":", +ausgkopflaenge=3,ausgfeldlaenge=4,AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF +=ROW ausgkopflaengeTEXT ,nachprlieingangsmaske= +"ms liste versetz nachpr eingang",nachprlianfpos=2;INT CONST +spalte2bildbreite:=bildbreite-anzspaltentrenner-spalte1breite-spalte3breite; +INT VAR spalte2druckbreite,druckzeilenzahl,bildanf,eingabestatus,breite, +ausgfeldlaengereal;TEXT VAR nachprliueberschrift,schuljahr,jahr1,jahr2, +schuelername,schuelerrufname,schuelernamenszus,schuelerjgst,schuelerzug,fach1 +,fach2,fach3,paraphe1,paraphe2,paraphe3,jgst,neuejgst,klasse,neueklasse;TEXT +VAR druckstrich;TEXT CONST bildstrich:=bildbreite*mittestrich;AUSGFELD VAR +ausgfeld;AUSGKOPF VAR ausgkopf;BOOL VAR sek1,sek2,ersteraufbildschirm, +klassegeaendert:=FALSE ;PROC nachprlispezielleteile(INT CONST nr):SELECT nr +OF CASE 1:nachprlidialogvorbereitenCASE 2:nachprlieingabenrichtigCASE 3: +nachprlilistenvorbereitenCASE 4:nachprlidruckvorbereitenCASE 5: +nachprliseitedruckenCASE 6:nachprlibildschirmvorbereitenCASE 7: +nachprliseitezeigenENDSELECT .END PROC nachprlispezielleteile;PROC +nachprlidialogvorbereiten:nachprliueberschrift:=text(vergleichsknoten); +setzeanfangswerte(nachprlieingangsmaske,nachprlianfpos)END PROC +nachprlidialogvorbereiten;PROC nachprlieingabenrichtig:LET fnrsek1=2,fnrsek2= +3,fnrjgst=4,fnrausgdrucker=5,fnrausgbild=6,auswahlnichtsinnvoll=56;IF int( +schulkenndatum("Schulhalbjahr"))=1THEN standardmeldung(nurimzweitenhj,"2.#"); +setzeeingabetest(FALSE )ELSE wohinpruefenFI .wohinpruefen:standardpruefe(5, +fnrausgdrucker,fnrausgbild,null,niltext,eingabestatus);IF eingabestatus<>0 +THEN infeld(eingabestatus);setzeeingabetest(FALSE )ELSE waspruefenFI . +waspruefen:sek1:=FALSE ;sek2:=FALSE ;fach1:="";fach2:="";fach3:=""; +reinitparsing;IF standardmaskenfeld(fnrjgst)=niltextTHEN standardpruefe(5, +fnrsek1,fnrsek2,null,niltext,eingabestatus);IF eingabestatus<>0THEN infeld( +eingabestatus);setzeeingabetest(FALSE )ELSE sek1:=standardmaskenfeld(fnrsek2) +=niltext;sek2:=NOT sek1;setzeausgabedrucker(standardmaskenfeld(fnrausgbild)= +niltext);setzeeingabetest(TRUE )FI ;ELSE IF (standardmaskenfeld(fnrsek1)= +niltext)AND (standardmaskenfeld(fnrsek2)=niltext)THEN standardpruefe(3, +fnrjgst,5,13,niltext,eingabestatus);IF eingabestatus<>0THEN infeld( +eingabestatus);setzeeingabetest(FALSE )ELSE jgst:=zweistellig( +standardmaskenfeld(fnrjgst));setzeausgabedrucker(standardmaskenfeld( +fnrausgbild)=niltext);setzeeingabetest(TRUE )FI ;ELSE meldefehler;infeld( +fnrsek1);setzeeingabetest(FALSE )FI ;FI .meldefehler:standardmeldung( +auswahlnichtsinnvoll,niltext).END PROC nachprlieingabenrichtig;PROC +nachprlilistenvorbereiten:BOOL VAR b;LET schluessel="Schuljahr"; +startwertjgstbestimmen;aktuellesschuljahrermitteln;inittupel( +dnrhalbjahresdaten);initobli(4);setzeidentiwert("");startwertesetzen; +objektlistestarten(ixhjdversjhjjgstkenn,"",fnrhjdjgst,TRUE ,b); +setzebestandende(NOT multistopnachprueflerCOR b).startwertjgstbestimmen: +aktuellesschuljahr:=schulkenndatum("Schuljahr");endewertjgst:=endeberechnung; +startwertjgst:=anfangsberechnung;.anfangsberechnung:IF sek1THEN "05"ELIF sek2 +THEN "11"ELSE jgstFI .endeberechnung:IF sek1THEN "11"ELIF sek2THEN "14"ELSE +text(int(jgst)+1)FI .startwertesetzen:putwert(fnrhjdversetzung, +schluesselnachpruefler);putwert(fnrhjdjgst,startwertjgst);putwert(fnrhjdsj, +aktuellesschuljahr);putintwert(fnrhjdhj,2).aktuellesschuljahrermitteln: +schuljahr:=schulkenndatum(schluessel);jahr1:=subtext(schuljahr,1,2);jahr2:= +subtext(schuljahr,3,4).END PROC nachprlilistenvorbereiten;PROC +nachprlibildschirmvorbereiten:LET fnrausganf=2;standardkopfmaskeaktualisieren +(nachprliueberschrift);breite:=bildbreite;initspalten;setzespaltentrenner( +spaltentrenner);setzespaltenbreiten(spalte2bildbreite);initausgabekopf( +bildstrich);bildanf:=fnrausganf;INT VAR i;FOR iFROM 1UPTO ausgkopflaenge +REPEAT ausgkopf(i)IN bildanf;bildanfINCR 1END REPEAT ;klasse:=niltext; +setzebildanfangsposition(bildanf).END PROC nachprlibildschirmvorbereiten; +PROC nachprliseitezeigen:setzescanstartwert(startwertjgst);setzescanendewert( +endewertjgst);blaettern(PROC (INT CONST )schuelerzeigen,aktion,TRUE ,TRUE , +BOOL PROC multistopnachpruefler);setzescanstartwert("");setzescanendewert("�" +).#endewertjgstpluseinsbeigleichheit:IF startwertjgst=endewertjgstTHEN text( +int(endewertjgst)+1)ELSE endewertjgstFI .#END PROC nachprliseitezeigen;PROC +schuelerzeigen(INT CONST x):schuelerholen;IF ersteraufbildschirmTHEN +klassegeaendert:=TRUE ;ersteraufbildschirm:=FALSE FI ;schueleraufbereiten; +schueleraufbildschirm.END PROC schuelerzeigen;PROC schueleraufbildschirm:INT +VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT ausgfeld(i)IN ausgabepos; +erhoeheausgabeposumeinsEND REPEAT .END PROC schueleraufbildschirm;PROC +nachprlidruckvorbereiten:LET uebteil11= +"Liste der zur Nachprüfung berechtigten Schüler, ",uebteil12="Sek.I", +uebteil13="Sek.II",uebteil14="Jgst. ",uebteil2="Schuljahr: ";TEXT VAR +ueberschrift1,ueberschrift2;ueberschriftvorbereitendruck;jgst:=niltext;klasse +:=niltext;druckvorbereiten;variablenfuerdrucksetzen;initdruckkopf( +ueberschrift1,ueberschrift2);breite:=druckbreite;initspalten; +setzespaltentrenner(spaltentrenner);setzespaltenbreiten(spalte2druckbreite); +initausgabekopf(druckstrich);holemeldungen;setzewerte;lesenvorbereitendruck( +PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC +multistopnachprueflersim).holemeldungen:meldungstext(mnrbearbeitetwirdjgst, +bearbeitetwirdjgst).setzewerte:inittupel(dnrhalbjahresdaten);putwert( +fnrhjdversetzung,schluesselnachpruefler);putwert(fnrhjdjgst,startwertjgst); +putwert(fnrhjdsj,aktuellesschuljahr);putintwert(fnrhjdhj,2). +ueberschriftvorbereitendruck:ueberschrift1:=uebteil11;IF sek1THEN +ueberschrift1:=ueberschrift1+uebteil12ELSE IF sek2THEN ueberschrift1:= +ueberschrift1+uebteil13ELSE ueberschrift1:=ueberschrift1+uebteil14+jgstFI ; +FI ;ueberschrift2:=uebteil2+aufbereitetesschuljahr.aufbereitetesschuljahr: +"19"+jahr1+"/"+jahr2.variablenfuerdrucksetzen:druckstrich:=druckbreite* +mittestrich;spalte2druckbreite:=druckbreite-anzspaltentrenner-spalte1breite- +spalte3breite;druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)- +ausgkopflaenge.END PROC nachprlidruckvorbereiten;PROC nachprliseitedrucken: +nachprliueberschriftdrucken;seitedrucken(PROC (INT VAR )schuelerdrucken, +druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopnachprueflersim); +seitenwechsel.END PROC nachprliseitedrucken;PROC nachprliueberschriftdrucken: +druckkopfschreiben;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT +druckzeileschreiben(ausgkopf(i))END REPEAT .END PROC +nachprliueberschriftdrucken;PROC schuelerdrucken(INT VAR zeilenzaehler):LET +markiert="#";schuelerholen;IF zeilenzaehler=nullTHEN klassegeaendert:=TRUE +FI ;ggflmeldungjgst;schueleraufbereiten;zeilenzaehlerINCR ausgfeldlaengereal; +schuelerindruckdatei.ggflmeldungjgst:IF jgstgeaendertTHEN zwischenmeldungFI . +jgstgeaendert:neuejgst:=schuelerjgst;jgst<>neuejgst.zwischenmeldung: +standardmeldung(bearbeitetwirdjgst,neuejgst+markiert);jgst:=neuejgst;END +PROC schuelerdrucken;PROC schuelerindruckdatei:INT VAR i;FOR iFROM 1UPTO +ausgfeldlaengerealREPEAT druckzeileschreiben(ausgfeld(i))END REPEAT .END +PROC schuelerindruckdatei;PROC setzespaltenbreiten(INT CONST spalte2breite): +setzespaltenbreite(spalte1breite);setzespaltenbreite(spalte2breite); +setzespaltenbreite(spalte3breite);END PROC setzespaltenbreiten;PROC +initausgabekopf(TEXT CONST strich):LET jgst="Jgst.",zugtut="Zug/Tut",name= +"Familienname",rufname=" Rufname",rest1= +"Meldg. :Prüfer :Datum : : ",rest2= +" :Fach:Fach:Vors:Beis: Zeit:Raum:Note";spaltenweise(jgst);spaltenweise( +name);spaltenweise(rest1);ausgkopf(1):=zeile;spaltenweise(zugtut); +spaltenweise(rufname);spaltenweise(rest2);ausgkopf(2):=zeile;ausgkopf(3):= +strich;END PROC initausgabekopf;PROC schuelerholen:schuelername:=wert( +fnrhjdfamnames);schuelerrufname:=wert(fnrhjdrufnames);#schuelernamenszus:= +wert(fnrhjdzusatz);#schuelernamenszus:="";schuelerjgst:=wert(fnrhjdjgst); +schuelerzug:=wert(fnrhjdkennung);fach1:=wert(fnrhjdnachfach1);fach2:=wert( +fnrhjdnachfach2);fach3:=wert(fnrhjdnachfach3);fachlehrersuchen(fach1,paraphe1 +);fachlehrersuchen(fach2,paraphe2);fachlehrersuchen(fach3,paraphe3); +neueklasse:=schuelerjgst+schuelerzug;klassegeaendert:=klasse<>neueklasse; +klasse:=neueklasse.END PROC schuelerholen;PROC fachlehrersuchen(TEXT CONST +fach,TEXT VAR paraphe):putwert(fnrlvhj,wert(fnrhjdhj));putwert(fnrlvsj,wert( +fnrhjdsj));putwert(fnrlvjgst,wert(fnrhjdjgst));#putwert(fnrlvzug,wert( +fnrhjdkennung));#putwert(fnrlvfachkennung,fach+wert(fnrhjdkennung));search( +dnrlehrveranstaltungen,TRUE );IF dbstatus=okTHEN paraphe:=wert(fnrlvparaphe) +ELSE paraphe:=""FI END PROC fachlehrersuchen;PROC schueleraufbereiten:LET +zwizeile=" : : : : : : :";INT VAR posausgfeld; +posausgfeld:=null;schreibeklassenamefach1;schreiberufnamefach2;IF +ausgabedruckerTHEN schreibeggffach3ELSE schreibefach3FI ; +schreibezwischenzeile.schreibeklassenamefach1:spaltenweise(aufbschuelerklasse +);spaltenweise(aufbschuelername);spaltenweise(aufbfach1);posausgfeldINCR 1; +ausgfeld(posausgfeld):=zeile;posausgfeldINCR 1.schreiberufnamefach2: +spaltenweise(blank);spaltenweise(aufbrufname);spaltenweise(aufbfach2); +ausgfeld(posausgfeld):=zeile;posausgfeldINCR 1.schreibeggffach3:IF fach3<> +niltextTHEN schreibefach3FI ;ausgfeldlaengereal:=posausgfeld.schreibefach3: +spaltenweise(blank);spaltenweise(blank);spaltenweise(aufbfach3);ausgfeld( +posausgfeld):=zeile;posausgfeldINCR 1.schreibezwischenzeile:spaltenweise( +blank);spaltenweise(blank);spaltenweise(zwizeile);ausgfeld(posausgfeld):= +zeile.aufbschuelerklasse:IF klassegeaendertTHEN schuelerjgst+blank+ +schuelerzugELSE blankFI .aufbschuelername:IF schuelernamenszus=niltextTHEN +schuelernameELSE schuelernamenszus+blank+schuelernameFI .aufbfach1:aufbfach( +fach1,paraphe1).aufbrufname:2*blank+schuelerrufname.aufbfach2:aufbfach(fach2, +paraphe2).aufbfach3:aufbfach(fach3,paraphe3).END PROC schueleraufbereiten; +TEXT PROC aufbfach(TEXT CONST fach,paraphe):LET vorfach="__: ",nachfach= +":____:____:_______:____:____";vorfach+fach+(3-length(fach))*blank+ +spaltentrenner+paraphe+(4-length(paraphe))*blank+nachfach.END PROC aufbfach; +BOOL PROC elementsek1:sek1COR int(startwertjgst)<11ENDPROC elementsek1;BOOL +PROC multistopnachpruefler:BOOL VAR b;b:=nachprueflerundrichtigesdatumCAND +int(wert(fnrhjdjgst))>=int(startwertjgst)CAND int(wert(fnrhjdjgst))<#=#int( +endewertjgst);b.nachprueflerundrichtigesdatum:wert(fnrhjdversetzung)= +schluesselnachprueflerCAND wert(fnrhjdsj)=aktuellesschuljahrCAND wert( +fnrhjdhj)="2".ENDPROC multistopnachpruefler;BOOL PROC +multistopnachprueflersim:BOOL VAR b:=multistopnachpruefler;setzebestandende( +NOT b);bENDPROC multistopnachprueflersim;END PACKET nachprueflisten; + -- cgit v1.2.3