summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listen.wiederholer
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listen.wiederholer')
-rw-r--r--app/schulis/2.2.1/src/1.listen.wiederholer160
1 files changed, 160 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.listen.wiederholer b/app/schulis/2.2.1/src/1.listen.wiederholer
new file mode 100644
index 0000000..e0541d2
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.listen.wiederholer
@@ -0,0 +1,160 @@
+PACKET versetzlistenDEFINES verslispezielleteile:LET schluesselwiederholer=
+"w";INT CONST mnrbearbeitetwirdjgst:=106,nurimzweitenhj:=193;TEXT VAR
+bearbeitetwirdjgst:="",aktuellesschuljahr:="",endewertjgst:="",startwertjgst
+:="";LET niltext="",nildatum="01.01.00",blank=" ",mittestrich="-",null=0,
+komma=",",ueberschriftenzeilen=2,spalte1breitesek1=5,spalte3breitesek1=32,
+spalte1breitesek2=8,spalte3breitesek2=25,anzspaltentrenner=2,spaltentrenner=
+":",ausgkopflaenge=3,ausgfeldlaenge=1,AUSGFELD =ROW ausgfeldlaengeTEXT ,
+AUSGKOPF =ROW ausgkopflaengeTEXT ,verslieingangsmaske=
+"ms liste versetz nachpr eingang",verslianfpos=2;INT CONST
+spalte2bildbreitesek1:=bildbreite-anzspaltentrenner-spalte1breitesek1-
+spalte3breitesek1,spalte2bildbreitesek2:=bildbreite-anzspaltentrenner-
+spalte1breitesek2-spalte3breitesek2;INT VAR spalte2druckbreite,
+druckzeilenzahl,bildanf,eingabestatus,breite;TEXT VAR versliueberschrift,
+jahr1,jahr2,schuelername,schuelerrufname,schuelernamenszus,schuelerjgst,
+schuelerzug,schuelerabdat,ortsteil,erstesprache,religionsunt,kuodermu,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
+verslispezielleteile(INT CONST nr):SELECT nrOF CASE 1:verslidialogvorbereiten
+CASE 2:verslieingabenrichtigCASE 3:verslilistenvorbereitenCASE 4:
+verslidruckvorbereitenCASE 5:versliseitedruckenCASE 6:
+verslibildschirmvorbereitenCASE 7:versliseitezeigenENDSELECT .END PROC
+verslispezielleteile;PROC verslidialogvorbereiten:versliueberschrift:=text(
+vergleichsknoten);setzeanfangswerte(verslieingangsmaske,verslianfpos);
+reinitparsingEND PROC verslidialogvorbereiten;PROC verslieingabenrichtig: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<>0THEN infeld(eingabestatus);
+setzeeingabetest(FALSE )ELSE waspruefenFI .waspruefen:sek1:=FALSE ;sek2:=
+FALSE ;jgst:="";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 verslieingabenrichtig;PROC
+verslilistenvorbereiten:BOOL VAR b;LET schluessel="Schuljahr";
+aktuellesschuljahrermitteln;startwertjgstbestimmen;inittupel(
+dnrhalbjahresdaten);initobli(16);setzeidentiwert("");startwertesetzen;
+objektlistestarten(ixhjdversjhjjgstkenn,"",fnrhjdjgst,TRUE ,b);
+setzebestandende(NOT multistopniverCOR b).aktuellesschuljahrermitteln:
+aktuellesschuljahr:=schulkenndatum(schluessel);jahr1:=subtext(
+aktuellesschuljahr,1,2);jahr2:=subtext(aktuellesschuljahr,3,4).
+startwertjgstbestimmen:endewertjgst:=endeberechnung;startwertjgst:=
+anfangsberechnung;.anfangsberechnung:IF sek1THEN "05"ELIF sek2THEN "11"ELSE
+jgstFI .endeberechnung:IF sek1THEN "11"ELIF sek2THEN "14"ELSE text(int(jgst)+
+1)FI .startwertesetzen:putwert(fnrhjdversetzung,schluesselwiederholer);
+putwert(fnrhjdjgst,startwertjgst);putwert(fnrhjdsj,aktuellesschuljahr);
+putintwert(fnrhjdhj,2).END PROC verslilistenvorbereiten;BOOL PROC
+multistopniver:BOOL VAR b;b:=wiederholerundrichtigesdatumCAND int(wert(
+fnrhjdjgst))>=int(startwertjgst)CAND int(wert(fnrhjdjgst))<#=#int(
+endewertjgst);b.wiederholerundrichtigesdatum:wert(fnrhjdversetzung)=
+schluesselwiederholerCAND wert(fnrhjdsj)=aktuellesschuljahrCAND wert(fnrhjdhj
+)="2".ENDPROC multistopniver;BOOL PROC multistopniversim:BOOL VAR b:=
+multistopniver;setzebestandende(NOT b);bENDPROC multistopniversim;PROC
+verslibildschirmvorbereiten:LET fnrausganf=2;standardkopfmaskeaktualisieren(
+versliueberschrift);breite:=bildbreite;initspalten;setzespaltentrenner(
+spaltentrenner);IF elementsek1THEN setzespaltenbreitensek1(
+spalte2bildbreitesek1);initausgabekopfsek1(bildstrich)ELSE
+setzespaltenbreitensek2(spalte2bildbreitesek2);initausgabekopfsek2(bildstrich
+)FI ;bildanf:=fnrausganf;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT
+ausgkopf(i)IN bildanf;bildanfINCR 1END REPEAT ;klasse:=niltext;
+setzebildanfangsposition(bildanf).END PROC verslibildschirmvorbereiten;PROC
+versliseitezeigen:setzescanstartwert(startwertjgst);setzescanendewert(
+endewertjgstpluseinsbeigleichheit);blaettern(PROC (INT CONST )schuelerzeigen,
+aktion,TRUE ,TRUE ,BOOL PROC multistopniver);setzescanstartwert("");
+setzescanendewert("�").endewertjgstpluseinsbeigleichheit:IF startwertjgst=
+endewertjgstTHEN text(int(endewertjgst)+1)ELSE endewertjgstFI .END PROC
+versliseitezeigen;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 verslidruckvorbereiten:LET uebteil11=
+"Liste der nicht versetzten 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);IF elementsek1THEN setzespaltenbreitensek1(spalte2druckbreite
+);initausgabekopfsek1(druckstrich)ELSE setzespaltenbreitensek2(
+spalte2druckbreite);initausgabekopfsek2(druckstrich)FI ;holemeldungen;
+setzewerte;lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )
+scanforward,BOOL PROC multistopniversim).holemeldungen:meldungstext(
+mnrbearbeitetwirdjgst,bearbeitetwirdjgst).setzewerte:inittupel(
+dnrhalbjahresdaten);putwert(fnrhjdversetzung,schluesselwiederholer);putwert(
+fnrhjdjgst,startwertjgst);putwert(fnrhjdsj,aktuellesschuljahr);putintwert(
+fnrhjdhj,2).ueberschriftvorbereitendruck:ueberschrift1:=uebteil11;IF sek1
+THEN 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;IF elementsek1
+THEN spalte2druckbreite:=spalte2druckbreite-spalte1breitesek1-
+spalte3breitesek1ELSE spalte2druckbreite:=spalte2druckbreite-
+spalte1breitesek2-spalte3breitesek2FI ;druckzeilenzahl:=drucklaenge(
+ueberschriftenzeilen)-ausgkopflaenge.END PROC verslidruckvorbereiten;PROC
+versliseitedrucken:versliueberschriftdrucken;seitedrucken(PROC (INT VAR )
+schuelerdrucken,druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopniversim);
+seitenwechsel.END PROC versliseitedrucken;PROC versliueberschriftdrucken:
+druckkopfschreiben;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT
+druckzeileschreiben(ausgkopf(i))END REPEAT .END PROC
+versliueberschriftdrucken;PROC schuelerdrucken(INT VAR zeilenzaehler):LET
+markiert="#";schuelerholen;IF zeilenzaehler=nullTHEN klassegeaendert:=TRUE
+FI ;ggflmeldungjgst;schueleraufbereiten;zeilenzaehlerINCR ausgfeldlaenge;
+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
+ausgfeldlaengeREPEAT druckzeileschreiben(ausgfeld(i))END REPEAT .END PROC
+schuelerindruckdatei;PROC setzespaltenbreitensek1(INT CONST spalte2breitesek1
+):setzespaltenbreite(spalte1breitesek1);setzespaltenbreite(spalte2breitesek1)
+;setzespaltenbreite(spalte3breitesek1);END PROC setzespaltenbreitensek1;PROC
+setzespaltenbreitensek2(INT CONST spalte2breitesek2):setzespaltenbreite(
+spalte1breitesek2);setzespaltenbreite(spalte2breitesek2);setzespaltenbreite(
+spalte3breitesek2);END PROC setzespaltenbreitensek2;PROC initausgabekopfsek1(
+TEXT CONST strich):LET jgst="Jgst.",zug=" Zug",name="Name",rest1=
+"Orts-:Rel.: L : KU : Klasse",rest2="teil :unt.: F : MU :Wunsch:neu";
+spaltenweise(jgst);spaltenweise(blank);spaltenweise(rest1);ausgkopf(1):=zeile
+;spaltenweise(zug);spaltenweise(name);spaltenweise(rest2);ausgkopf(2):=zeile;
+ausgkopf(3):=strich;END PROC initausgabekopfsek1;PROC initausgabekopfsek2(
+TEXT CONST strich):LET jgst="Jgst.",tutor=" Tutor",name="Name",rest1=
+"Abmeldung";spaltenweise(jgst);spaltenweise(blank);spaltenweise(blank);
+ausgkopf(1):=zeile;spaltenweise(tutor);spaltenweise(name);spaltenweise(rest1)
+;ausgkopf(2):=zeile;ausgkopf(3):=strich;END PROC initausgabekopfsek2;PROC
+schuelerholen:sucheschueler;schuelername:=wert(fnrsufamnames);schuelerrufname
+:=wert(fnrsurufnames);schuelernamenszus:=wert(fnrsunamenszusatzs);
+schuelerjgst:=wert(fnrhjdjgst);schuelerzug:=wert(fnrhjdkennung);schuelerabdat
+:=wert(fnrsuabgdats);IF elementsek1THEN ortsteil:=wert(fnrsuortsteils);
+erstesprache:=wert(fnrdd1fremdfach);religionsunt:=wert(fnrddreliunter);
+kuodermu:=wert(fnrddkunstmusik)FI ;neueklasse:=schuelerjgst+schuelerzug;
+klassegeaendert:=klasse<>neueklasse;klasse:=neueklasse.sucheschueler:
+uebernehmewerte;search(dnrschueler,TRUE );IF dbstatus=okTHEN readtid(
+dnrdiffdaten,zugriff(fnrsutiddiffdaten))ELSE inittupel(dnrdiffdaten)FI .
+uebernehmewerte:putwert(fnrsufamnames,wert(fnrhjdfamnames));putwert(
+fnrsurufnames,wert(fnrhjdrufnames));putwert(fnrsugebdatums,wert(fnrhjdgebdats
+)).END PROC schuelerholen;PROC schueleraufbereiten:LET abgemsek1="abgem.",
+abgemsek2="abgemeldet";schreibeklassenamerest.schreibeklassenamerest:
+spaltenweise(aufbschuelerklasse);spaltenweise(aufbschuelername);spaltenweise(
+aufbrest);ausgfeld(1):=zeile.aufbschuelerklasse:IF klassegeaendertTHEN
+schuelerjgst+blank+schuelerzugELSE blankFI .aufbschuelername:IF
+schuelernamenszus=niltextTHEN schuelername+komma+blank+schuelerrufnameELSE
+schuelernamenszus+blank+schuelername+komma+blank+schuelerrufnameFI .aufbrest:
+IF elementsek1THEN ganzerrestsek1ELSE abmeldungsek2FI .ganzerrestsek1:blank+
+text(ortsteil,3)+blank+spaltentrenner+blank+text(religionsunt,2)+blank+
+spaltentrenner+blank+text(erstesprache,1)+blank+spaltentrenner+blank+text(
+kuodermu,2)+blank+spaltentrenner+abmeldungsek1.abmeldungsek1:IF (
+schuelerabdat=niltext)OR (schuelerabdat=nildatum)THEN text(blank,6)+
+spaltentrennerELSE abgemsek1+spaltentrenner+blank+mittestrichFI .
+abmeldungsek2:IF (schuelerabdat=niltext)OR (schuelerabdat=nildatum)THEN blank
+ELSE abgemsek2FI .END PROC schueleraufbereiten;BOOL PROC elementsek1:sek1COR
+int(startwertjgst)<11ENDPROC elementsek1;END PACKET versetzlisten;
+