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