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/3.listen.wochenstunden | 114 +++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 app/schulis/2.2.1/src/3.listen.wochenstunden (limited to 'app/schulis/2.2.1/src/3.listen.wochenstunden') diff --git a/app/schulis/2.2.1/src/3.listen.wochenstunden b/app/schulis/2.2.1/src/3.listen.wochenstunden new file mode 100644 index 0000000..a8cd29c --- /dev/null +++ b/app/schulis/2.2.1/src/3.listen.wochenstunden @@ -0,0 +1,114 @@ +PACKET wochenstundenlisteDEFINES wochenstdlispezielleteile:LET +wochenstdeingangsmaske="ms liste lehrerparaphen eingang", +anzahlderobjekteprobildschirm=17,ausgfeldlaenge=1,spalte1breite=5, +spalte2breite=30,spalte3breite=4,spalte4breite=31,spaltentrenner=" ", +wochenstdanfpos=2,ueberschriftenzeilen=2,niltext="",blank=" ",komma=",",null= +0,ausgkopflaenge=2,mittelstrich="-",mnrauswahlnichtsinnvoll=56, +mnrbearbeitetwerden=352;TEXT CONST blanknull:=" 0/",unterstreichung:= +bildbreite*mittelstrich,textueberschrift:=("Lehrer"+31*blank+ +"Soll Pfl. Ermäßigung/Grund");TEXT VAR wochenstdueberschrift:= +"Liste der Wochenstunden und Ermäßigungen",schraegstrich:="/",paraphe, +lehrername,rufname,namenszusatz,amtsbez,geschlecht,sollstdn,pflichtstdn, +ermaessigung1,ermaessigung2,ermaessigung3,ermaessigung4,ermgrund1,ermgrund2, +ermgrund3,ermgrund4,lehrernameaufbereitet,bearbeitetwerden,anfbuchstabe, +neueranfbuchstabe:="",auswahlnichtsinnvoll,teiltextmeldung:= +"die Paraphe mit dem Anfangsbuchstaben:";INT VAR aktuelleindexnr, +eingabestatus,lesestart,bildanfang,druckzeilenzahl;INT CONST indexlehrername +:=ixlfamruf;BOOL VAR sortierungnachparaphen;LET AUSGFELD =ROW ausgfeldlaenge +TEXT ,AUSGKOPF =ROW ausgkopflaengeTEXT ,AUSGKOPFDRUCK =ROW ausgkopflaenge +TEXT ;AUSGFELD VAR ausgfeld;AUSGKOPF VAR ausgkopf;AUSGKOPFDRUCK VAR +ausgkopfdruck;BOOL PROC multistop:TRUE END PROC multistop;PROC +wochenstdlispezielleteile(INT CONST nr):SELECT nrOF CASE 1: +wochenstddialogvorbereitenCASE 2:wochenstdeingabenrichtigCASE 3: +wochenstdlistenvorbereitenCASE 4:wochenstddruckvorbereitenCASE 5: +wochenstdseitedruckenCASE 6:wochenstdbildschirmvorbereitenCASE 7: +wochenstdseitezeigenENDSELECT .END PROC wochenstdlispezielleteile;PROC +wochenstddialogvorbereiten:wochenstdueberschrift:=text(vergleichsknoten); +setzeanfangswerte(wochenstdeingangsmaske,wochenstdanfpos)END PROC +wochenstddialogvorbereiten;PROC wochenstdeingabenrichtig:LET fnrsortparaphen= +2,fnrsortlehrernamen=3,fnrausgdrucker=4,fnrausgbild=5;standardpruefe(5, +fnrausgdrucker,fnrausgbild,null,niltext,eingabestatus);IF eingabestatus=0 +THEN standardpruefe(5,fnrsortparaphen,fnrsortlehrernamen,null,niltext, +eingabestatus);IF eingabestatus=0THEN sortierartmerken;setzeeingabetest(TRUE +);setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=niltext);ELSE +meldefehler;setzeeingabetest(FALSE )FI ;ELSE meldefehler;setzeeingabetest( +FALSE )FI .sortierartmerken:sortierungnachparaphen:=standardmaskenfeld( +fnrsortparaphen)<>niltext;.meldefehler:standardmeldung( +mnrauswahlnichtsinnvoll,niltext).END PROC wochenstdeingabenrichtig;PROC +wochenstdlistenvorbereiten:BOOL VAR b;initspalten;setzespaltentrenner( +spaltentrenner);IF sortierungnachparaphenTHEN aktuelleindexnr:=dnrlehrer; +lesestart:=fnrlparapheELSE aktuelleindexnr:=indexlehrername;lesestart:=0;FI ; +inittupel(dnrlehrer);setzeidentiwert("");initobli( +anzahlderobjekteprobildschirm);parsenooffields(16);objektlistestarten( +aktuelleindexnr,"",lesestart,TRUE ,b);setzebestandende(b);END PROC +wochenstdlistenvorbereiten;PROC wochenstdbildschirmvorbereiten:LET fnrausganf +=2;standardkopfmaskeaktualisieren(wochenstdueberschrift);bildanfang:= +fnrausganf;setzebildanfangsposition(bildanfang);INT VAR i;setzespaltenbreite( +bildbreite);spaltenweise(textueberschrift);ausgfeld(1):=zeile;ausgfeld(1)IN +ausgabepos;erhoeheausgabeposumeins;spaltenweise(unterstreichung);ausgfeld(1) +:=zeile;ausgfeld(1)IN ausgabepos;erhoeheausgabeposumeins; +setzebildanfangsposition(4);initspalten;setzespaltenbreite(spalte1breite); +setzespaltenbreite(spalte2breite);setzespaltenbreite(spalte3breite); +setzespaltenbreite(spalte3breite);setzespaltenbreite(spalte4breite);END PROC +wochenstdbildschirmvorbereiten;PROC wochenstdseitezeigen:blaettern(PROC (INT +CONST )stundendatenzeigen,aktion,TRUE ,FALSE ,BOOL PROC multistop)END PROC +wochenstdseitezeigen;PROC stundendatenzeigen(INT CONST x):stundendatenholen; +stundendatenaufbereitenbild;stundendatenaufbildschirm.END PROC +stundendatenzeigen;PROC stundendatenaufbereitenbild:TEXT VAR ermaessigungen:= +niltext;spaltenweise(paraphe);spaltenweise(lehrernameaufbereitet); +spaltenweise(2*blank+sollstdn);spaltenweise(2*blank+pflichtstdn);IF +ermaessigung1=blanknullTHEN ermaessigung1:=3*blankELSE ermaessigungen:=2* +blank+ermaessigung1+ermgrund1FI ;IF ermaessigung2=blanknullTHEN ermaessigung2 +:=3*blankELSE ermaessigungenCAT 3*blank+ermaessigung2+ermgrund2FI ;IF +ermaessigung3=blanknullTHEN ermaessigung3:=3*blankELSE ermaessigungenCAT 3* +blank+ermaessigung3+ermgrund3FI ;IF ermaessigung4=blanknullTHEN ermaessigung4 +:=blankELSE ermaessigungenCAT 3*blank+ermaessigung4+ermgrund4FI ;spaltenweise +(ermaessigungen);END PROC stundendatenaufbereitenbild;PROC +stundendatenaufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP +ausgfeld(i):=zeile;ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeins;PER ;END +PROC stundendatenaufbildschirm;PROC wochenstddruckvorbereiten: +setzebestandende(FALSE );anfbuchstabe:=" ";druckvorbereiten; +variablenfuerdrucksetzen;initdruckkopf(zentriert(wochenstdueberschrift, +druckbreite),zentriert(length(wochenstdueberschrift)*"-",druckbreite)); +initspalten;setzespaltenbreite(spalte1breite);setzespaltenbreite( +spalte2breite);setzespaltenbreite(spalte3breite);setzespaltenbreite( +spalte3breite);setzespaltenbreite(spalte4breite);holemeldung;inittupel( +dnrlehrer);initausgabekopfdruck;lesenvorbereitendruck(PROC (INT CONST ,BOOL +PROC ,INT VAR )scanforward,BOOL PROC multistop);.holemeldung:meldungstext( +mnrbearbeitetwerden,bearbeitetwerden).variablenfuerdrucksetzen: +druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-ausgkopflaenge.END PROC +wochenstddruckvorbereiten;PROC initausgabekopfdruck:ausgkopfdruck(1):= +textueberschrift;ausgkopfdruck(2):=unterstreichungEND PROC +initausgabekopfdruck;PROC wochenstdseitedrucken:wochenstdueberschriftdrucken; +seitedrucken(PROC (INT VAR )wochenstdndrucken,druckzeilenzahl,ausgfeldlaenge, +BOOL PROC multistop);seitenwechsel.END PROC wochenstdseitedrucken;PROC +wochenstdueberschriftdrucken:INT VAR i;druckkopfschreiben;FOR iFROM 1UPTO +ausgkopflaengeREP druckzeileschreiben(ausgkopfdruck(i))PER END PROC +wochenstdueberschriftdrucken;PROC wochenstdndrucken(INT VAR zeilenzaehler): +LET markiert="#";stundendatenholen;ggflmeldunganfbuchstabe; +lehrerstundendatenaufbereitendruck;zeilenzaehlerINCR ausgfeldlaenge; +lehrerstundendatenindruckdatei.ggflmeldunganfbuchstabe:IF +anfbuchstabegeaendertTHEN meldunganfbuchstabeFI .anfbuchstabegeaendert:IF +sortierungnachparaphenTHEN neueranfbuchstabe:=lehrernameSUB 1;ELSE +neueranfbuchstabe:=parapheSUB 1;FI ;anfbuchstabe<>neueranfbuchstabe. +meldunganfbuchstabe:standardmeldung(mnrbearbeitetwerden,teiltextmeldung+ +neueranfbuchstabe+markiert);anfbuchstabe:=neueranfbuchstabe.END PROC +wochenstdndrucken;PROC lehrerstundendatenaufbereitendruck:setzespaltentrenner +(spaltentrenner);stundendatenaufbereitenbild;ausgfeld(1):=zeile;END PROC +lehrerstundendatenaufbereitendruck;PROC lehrerstundendatenindruckdatei:INT +VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP druckzeileschreiben(ausgfeld(1))PER +END PROC lehrerstundendatenindruckdatei;PROC stundendatenholen:paraphe:=wert( +fnrlparaphe);lehrername:=wert(fnrlfamname);rufname:=wert(fnrlrufname); +namenszusatz:=wert(fnrlzusatz);amtsbez:=wert(fnrlamtsbeztitel);geschlecht:= +wert(fnrlgeschlecht);sollstdn:=text(intwert(fnrlsollstd),2);pflichtstdn:=text +(intwert(fnrlpflichtstd),2);ermaessigung1:=text(intwert(fnrlerm1),2)+ +schraegstrich;ermgrund1:=text(wert(fnrlermgrund1),2);ermaessigung2:=text( +intwert(fnrlerm2),2)+schraegstrich;ermgrund2:=text(wert(fnrlermgrund2),2); +ermaessigung3:=text(intwert(fnrlerm3),2)+schraegstrich;ermgrund3:=text(wert( +fnrlermgrund3),2);ermaessigung4:=text(intwert(fnrlerm4),2)+schraegstrich; +ermgrund4:=text(wert(fnrlermgrund4),2);IF geschlecht="w"XOR geschlecht="W" +THEN geschlecht:="Fr. "ELSE geschlecht:="Hr. "FI ;lehrernameaufbereitet:=( +lehrername+komma+blank+geschlecht+amtsbezeichnung+rufname+blank+namenszusatz) +;.amtsbezeichnung:IF amtsbez<>niltextTHEN amtsbez+blankELSE ""FI .END PROC +stundendatenholen;END PACKET wochenstundenliste; + -- cgit v1.2.3