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.klassen | 157 +++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 app/schulis/2.2.1/src/1.listen.klassen (limited to 'app/schulis/2.2.1/src/1.listen.klassen') 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; + -- cgit v1.2.3