summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listen.klassen
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listen.klassen')
-rw-r--r--app/schulis/2.2.1/src/1.listen.klassen157
1 files changed, 157 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.listen.klassen b/app/schulis/2.2.1/src/1.listen.klassen
new file mode 100644
index 0000000..7b4d39b
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.listen.klassen
@@ -0,0 +1,157 @@
+PACKET klassenlistenDEFINES klalispezielleteile:LET niltext="",blank=" ",
+mittestrich="-",null=0,komma=",",stern="*",ueb1teil1="Klassenliste",ueb1teil2
+=" für Klasse ",ueb1teil3="Klassenlehrer: ",ueb2teil1="Tutorenkursliste",
+ueb2teil21=" für Jahrgangsstufe ",ueb2teil22=" für den Kurs ",ueb2teil3=
+"Tutor: ",ueb3="n der Jahrgangsstufe ",ueberschriftenzeilen=2,
+spalte1druckbreite=3,spalte2bildbreite=7,anzspaltentrenner=1,ausgkopflaenge=2
+,ausgfeldlaenge=1,AUSGFELDDRUCK =ROW ausgfeldlaengeTEXT ,AUSGFELDBILD =ROW
+ausgfeldlaengeTEXT ,AUSGKOPFDRUCK =ROW ausgkopflaengeTEXT ,AUSGKOPFBILD =ROW
+ausgkopflaengeTEXT ,klalieingangsmaske="ms liste klassen eingang",klalianfpos
+=2,nr="Nr.",name="Name, Rufname",sternvolljaehrig=
+" ( * entspricht volljährig )",klasse="Klasse",altervolljaehrig=18,
+mnrbearbeitetwird=100,mnrlistewirdgedruckt=58,mnrauswahlnichtsinnvoll=56;INT
+CONST spalte1bildbreite:=bildbreite-anzspaltentrenner-spalte2bildbreite;INT
+VAR spalte2druckbreite,druckzeilenzahlmax,druckzeilenzahl,bildanf,zaehler,
+vergldatum,aktuelleindexnr,eingabestatus;TEXT VAR klaliueberschrift,
+schuelername,schuelerrufname,schuelernamenszus,schuelergebdat,
+schuelernameaufber,zaehleraufber,ueberschrift1,ueberschrift2,lehrer,jahrgang,
+zug,startjgst,startzug,bearbeitetwird,listewirdgedruckt,auswahlnichtsinnvoll;
+TEXT VAR druckstrich;TEXT CONST bildstrich:=bildbreite*mittestrich;
+AUSGFELDDRUCK VAR ausgfelddruck;AUSGFELDBILD VAR ausgfeldbild;AUSGKOPFDRUCK
+VAR ausgkopfdruck;AUSGKOPFBILD VAR ausgkopfbild;BOOL VAR einjahrgang,alle,
+voll,neueklasse;BOOL PROC multistop:BOOL VAR b;IF startjgst<>""THEN IF
+einjahrgangTHEN b:=wert(fnrsusgrpjgst)=startjgst;ELSE b:=wert(fnrsusgrpjgst)=
+startjgstAND wert(fnrsusgrpzugtut)=startzug;FI ELSE b:=wert(fnrsustatuss)=
+"ls";FI ;bEND PROC multistop;BOOL PROC multistopsim:BOOL VAR b:=multistop;
+setzebestandende(NOT b);bENDPROC multistopsim;PROC klalispezielleteile(INT
+CONST nr):SELECT nrOF CASE 1:klalidialogvorbereitenCASE 2:
+klalieingabenrichtigCASE 3:klalilistenvorbereitenCASE 4:klalidruckvorbereiten
+CASE 5:klaliseitedruckenCASE 6:klalibildschirmvorbereitenCASE 7:
+klaliseitezeigenENDSELECT .END PROC klalispezielleteile;PROC
+klalidialogvorbereiten:klaliueberschrift:=text(vergleichsknoten);
+setzeanfangswerte(klalieingangsmaske,klalianfpos).END PROC
+klalidialogvorbereiten;PROC klalieingabenrichtig:LET fnrjgst=2,fnrzug=3,
+fnrvoll=4,fnrausgdrucker=5,fnrausgbild=6;alle:=FALSE ;einjahrgang:=FALSE ;
+voll:=FALSE ;standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext,
+eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest
+(FALSE )ELSE zug:=standardmaskenfeld(fnrzug);jahrgang:=standardmaskenfeld(
+fnrjgst);IF standardmaskenfeld(fnrjgst)=niltextTHEN IF zug=niltextTHEN alle:=
+TRUE ;voll:=(standardmaskenfeld(fnrvoll)<>niltext);setzeausgabedrucker(
+standardmaskenfeld(fnrausgbild)=niltext);setzeeingabetest(TRUE )ELSE
+meldefehler;infeld(fnrzug);setzeeingabetest(FALSE )FI ELSE standardpruefe(3,
+fnrjgst,5,13,niltext,eingabestatus);IF eingabestatus<>0THEN infeld(
+eingabestatus);setzeeingabetest(FALSE )ELSE jahrgang:=zweistellig(
+standardmaskenfeld(fnrjgst));einjahrgang:=(zug=niltext);voll:=(
+standardmaskenfeld(fnrvoll)<>niltext);setzeausgabedrucker(standardmaskenfeld(
+fnrausgbild)=niltext);setzeeingabetest(TRUE )FI FI FI .meldefehler:
+meldungstext(mnrauswahlnichtsinnvoll,auswahlnichtsinnvoll);standardmeldung(
+auswahlnichtsinnvoll,niltext).END PROC klalieingabenrichtig;PROC
+klalilistenvorbereiten:BOOL VAR b:=FALSE ;startjgst:=jahrgang;startzug:=zug;
+neueklasse:=FALSE ;aktuelleindexnr:=ixsustatjgstzug;inittupel(dnrschueler);
+initobli(17);parsenooffields(19);setzeidentiwert("");putwert(fnrsustatuss,
+"ls");putwert(fnrsusgrpjgst,startjgst);putwert(fnrsusgrpzugtut,startzug);
+vergldatum:=vergleichsdatum(altervolljaehrig);#objektlistestarten(
+aktuelleindexnr,"",fnrsustatuss,TRUE ,b);#objektlistestarten(aktuelleindexnr,
+"",staticfield,TRUE ,b);setzebestandende(NOT multistopCOR b).staticfield:IF
+startjgst=niltextTHEN fnrsusgrpjgstELSE IF startzug=niltextTHEN
+fnrsusgrpzugtutELSE dnrschueler+1FI FI .END PROC klalilistenvorbereiten;PROC
+klalibildschirmvorbereiten:LET fnrausganf=2;ueberschriftvorbereitenbild;
+standardkopfmaskeaktualisieren(ueberschrift1);initspalten;initausgabekopfbild
+;bildanf:=fnrausganf;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT
+ausgkopfbild(i)IN bildanf;bildanfINCR 1END REPEAT ;setzebildanfangsposition(
+bildanf).END PROC klalibildschirmvorbereiten;PROC ueberschriftvorbereitenbild
+:LET aufein="",aufaus=" ";IF alleTHEN ueberschrift1:=klaliueberschriftELSE
+IF einjahrgangTHEN IF int(jahrgang)<11THEN ueberschrift1:=ueb1teil1ELSE
+ueberschrift1:=ueb2teil1FI ;ueberschrift1:=ueberschrift1+ueb3+aufein+jahrgang
++aufausELSE IF int(jahrgang)<11THEN ueberschrift1:=ueb1teil1+ueb1teil2ELSE
+ueberschrift1:=ueb2teil1+ueb2teil22FI ;ueberschrift1:=ueberschrift1+aufein+
+jahrgang+blank+wert(fnrsusgrpzugtut)+aufausFI FI ;END PROC
+ueberschriftvorbereitenbild;PROC initausgabekopfbild:IF einjahrgangOR alle
+THEN hilfsfeldervorbelegen;ausgkopfbild(1):=zeileELSE ausgkopfbild(1):=text(
+name,bildbreite)FI ;ausgkopfbild(2):=bildstrich.hilfsfeldervorbelegen:
+setzespaltenbreite(spalte1bildbreite);setzespaltenbreite(spalte2bildbreite);
+IF vollTHEN spaltenweise(name+sternvolljaehrig)ELSE spaltenweise(name)FI ;
+spaltenweise(klasse).END PROC initausgabekopfbild;PROC klaliseitezeigen:
+blaettern(PROC (INT CONST )schuelerdatenzeigen,aktion,TRUE ,TRUE ,BOOL PROC
+multistop)END PROC klaliseitezeigen;PROC schuelerdatenzeigen(INT CONST x):
+schuelerdatenholen;schuelerdatenaufbereitenbild;schuelerdatenaufbildschirm.
+END PROC schuelerdatenzeigen;PROC schuelerdatenaufbereitenbild:
+schuelernameaufbereiten;IF alleOR einjahrgangTHEN schreibenamerufnameklasse
+ELSE schreibenamerufnameFI .schreibenamerufnameklasse:spaltenweise(
+schuelernameaufber);spaltenweise(jahrgang+blank+wert(fnrsusgrpzugtut));
+ausgfeldbild(1):=zeile.schreibenamerufname:ausgfeldbild(1):=text(
+schuelernameaufber,bildbreite).END PROC schuelerdatenaufbereitenbild;PROC
+schuelerdatenaufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT
+ausgfeldbild(i)IN ausgabepos;erhoeheausgabeposumeinsEND REPEAT .END PROC
+schuelerdatenaufbildschirm;PROC klalidruckvorbereiten:zaehler:=null;
+neueklasse:=TRUE ;druckvorbereiten;variablenfuerdrucksetzen;druckzeilenzahl:=
+druckzeilenzahlmax;IF vollTHEN druckzeilenzahl:=druckzeilenzahl-2FI ;
+holemeldung;inittupel(dnrschueler);putwert(fnrsusgrpjgst,startjgst);putwert(
+fnrsusgrpzugtut,startzug);putwert(fnrsustatuss,"ls");lesenvorbereitendruck(
+PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC multistopsim);
+ueberschriftvorbereitendruck;initdruckkopf(ueberschrift1,ueberschrift2);
+initspalten;initausgabekopfdruck.variablenfuerdrucksetzen:druckstrich:=
+druckbreite*mittestrich;spalte2druckbreite:=druckbreite-anzspaltentrenner-
+spalte1druckbreite;druckzeilenzahlmax:=drucklaenge(ueberschriftenzeilen)-
+ausgkopflaenge.holemeldung:meldungstext(mnrbearbeitetwird,bearbeitetwird).
+END PROC klalidruckvorbereiten;PROC ueberschriftvorbereitendruck:IF int(
+jahrgang)<11THEN ueberschrift1:=ueb1teil1+ueb1teil2+wert(fnrsusgrpjgst)+blank
++wert(fnrsusgrpzugtut);ueberschrift2:=ueb1teil3ELSE ueberschrift1:=ueb2teil1+
+ueb2teil21+jahrgang;ueberschrift2:=ueb2teil3FI ;klassenlehrer(lehrer,jahrgang
+,wert(fnrsusgrpzugtut));ueberschrift2:=ueberschrift2+lehrer;END PROC
+ueberschriftvorbereitendruck;PROC klassenlehrer(TEXT VAR lehrer,TEXT CONST
+jahrgang,TEXT CONST zug):putwert(fnrsgrpsj,schulkenndatum("Schuljahr"));
+putwert(fnrsgrphj,schulkenndatum("Schulhalbjahr"));putwert(fnrsgrpjgst,
+jahrgang);putwert(fnrsgrpkennung,zug);search(dnraktschuelergruppen,TRUE );IF
+dbstatus=okTHEN putwert(fnrlparaphe,wert(fnrsgrplehrer));search(dnrlehrer,
+TRUE );IF dbstatus=okTHEN lehrer:=wert(fnrlfamname)ELSE lehrer:=""FI ;ELSE
+lehrer:=""FI END PROC klassenlehrer;PROC initausgabekopfdruck:
+hilfsfeldervorbelegen;ausgkopfdruck(1):=zeile;ausgkopfdruck(2):=druckstrich.
+hilfsfeldervorbelegen:setzespaltenbreite(spalte1druckbreite);
+setzespaltenbreite(spalte2druckbreite);spaltenweise(nr);spaltenweise(name).
+END PROC initausgabekopfdruck;PROC klaliseitedrucken:LET kommentar=
+"* Schüler ist am Tag der Listenerstellung volljährig";
+klaliueberschriftdrucken;seitedrucken(PROC (INT VAR )schuelerdatendrucken,
+druckzeilenzahl,ausgfeldlaenge,PROC bestandendesimulierenbeiklassenwechsel,
+BOOL PROC multistopsim);ggflkommentarzeile;IF neueklasseTHEN
+simuliertesendezuruecknehmen;neuelistevorbereitenELSE seitenwechselFI .
+ggflkommentarzeile:IF vollTHEN kommentarzeiledruckenFI .kommentarzeiledrucken
+:ausgfelddruck(1):=text(niltext,druckbreite);druckzeileschreiben(
+ausgfelddruck(1));ausgfelddruck(1):=text(kommentar,druckbreite);
+druckzeileschreiben(ausgfelddruck(1)).simuliertesendezuruecknehmen:
+setzebestandende(FALSE ).neuelistevorbereiten:meldelistewirdgedruckt;
+drucknachbereiten;druckvorbereiten;zaehler:=null;schuelerdatenholen;
+ueberschriftvorbereitendruck;initdruckkopf(ueberschrift1,ueberschrift2).
+meldelistewirdgedruckt:meldungstext(mnrlistewirdgedruckt,listewirdgedruckt);
+standardmeldung(listewirdgedruckt,niltext).END PROC klaliseitedrucken;PROC
+klaliueberschriftdrucken:druckkopfschreiben;INT VAR i;FOR iFROM 1UPTO
+ausgkopflaengeREPEAT druckzeileschreiben(ausgkopfdruck(i))END REPEAT .END
+PROC klaliueberschriftdrucken;PROC schuelerdatendrucken(INT VAR zeilenzaehler
+):LET markiert="#";schuelerdatenholen;ggflmeldungklasse;zaehlerINCR 1;
+schuelerdatenaufbereitendruck;zeilenzaehlerINCR ausgfeldlaenge;
+schuelerdatenindruckdatei.ggflmeldungklasse:IF zaehler=nullTHEN
+standardmeldung(bearbeitetwird,jahrgang+blank+zug+markiert)FI .END PROC
+schuelerdatendrucken;PROC schuelerdatenaufbereitendruck:zaehleraufbereiten;
+schuelernameaufbereiten;schreibenrnamerufname.zaehleraufbereiten:IF zaehler<
+10THEN zaehleraufber:=blankELSE zaehleraufber:=niltextFI ;zaehleraufber:=
+zaehleraufber+text(zaehler).schreibenrnamerufname:spaltenweise(zaehleraufber)
+;spaltenweise(schuelernameaufber);ausgfelddruck(1):=zeile;END PROC
+schuelerdatenaufbereitendruck;PROC schuelerdatenindruckdatei:
+druckzeileschreiben(ausgfelddruck(1)).END PROC schuelerdatenindruckdatei;
+PROC bestandendesimulierenbeiklassenwechsel:IF bestandendeTHEN neueklasse:=
+FALSE ELSE nochklassezubearbeiten;IF neueklasseTHEN setzebestandende(TRUE )
+FI ;FI .nochklassezubearbeiten:neueklasse:=zug<>wert(fnrsusgrpzugtut);IF alle
+THEN neueklasse:=neueklasseOR (int(jahrgang)<>int(wert(fnrsusgrpjgst)))FI .
+END PROC bestandendesimulierenbeiklassenwechsel;PROC schuelernameaufbereiten:
+schuelernameaufber:=niltext;IF schuelernamenszus<>niltextTHEN
+schuelernameaufber:=schuelernamenszus+blankFI ;schuelernameaufber:=
+schuelernameaufber+schuelername+komma+blank+schuelerrufname;IF vollCAND (
+schuelergebdat<>niltext)CAND volljaehrig(datum(schuelergebdat))THEN
+schuelernameaufber:=schuelernameaufber+blank+sternFI ;END PROC
+schuelernameaufbereiten;BOOL PROC volljaehrig(INT CONST geburtstag):
+geburtstag<=vergldatumEND PROC volljaehrig;PROC schuelerdatenholen:
+schuelername:=wert(fnrsufamnames);schuelerrufname:=wert(fnrsurufnames);
+schuelernamenszus:=wert(fnrsunamenszusatzs);schuelergebdat:=wert(
+fnrsugebdatums);jahrgang:=wert(fnrsusgrpjgst);zug:=wert(fnrsusgrpzugtut).END
+PROC schuelerdatenholen;END PACKET klassenlisten;
+