summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listen.nachpruefung
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listen.nachpruefung')
-rw-r--r--app/schulis/2.2.1/src/1.listen.nachpruefung155
1 files changed, 155 insertions, 0 deletions
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;
+