app/schulis/2.2.1/src/3.listen.sprechzeiten

Raw file
Back to index

PACKET lehrersprechzeitenlisteDEFINES sprechzeitlispezielleteile:LET 
sprechzeingangsmaske="ms liste lehrerparaphen eingang",
anzahlderobjekteprobildschirm=17,ausgfeldlaenge=1,spalte1breite=46,
spalte2breite=25,spaltentrenner=": ",sprechzanfpos=2,ueberschriftenzeilen=2,
strich="-",niltext="",blank=" ",komma=",",null=0,ausgkopflaenge=2,
mittelstrich="-",teilueb1="Lehrer",teilueb2="Sprechzeiten",
mnrauswahlnichtsinnvoll=56,mnrbearbeitetwerden=352;TEXT VAR 
sprechzueberschrift:="Liste der Lehrersprechzeiten",paraphe,lehrername,
lehrernameaufbereitet,lehrernameaufbereitetmitparaphe,rufname,namenszusatz,
amtsbez,geschlecht,sprechzeit,druckstrich,textueberschrift,teiltextmeldung:=
"die Lehrer mit den Anfangsbuchstaben:",anfbuchstabe,neueranfbuchstabe:="",
auswahlnichtsinnvoll;INT VAR aktuelleindexnr,eingabestatus,lesestart,
bildanfang,druckzeilenzahl;INT CONST indexlehrername:=ixlfamruf,
maxspaltenlaengepara:=5;BOOL VAR sortierungnachparaphen;LET AUSGFELD =ROW 
ausgfeldlaengeTEXT ,AUSGKOPF =ROW ausgkopflaengeTEXT ,AUSGKOPFDRUCK =ROW 
ausgkopflaengeTEXT ;AUSGFELD VAR ausgfeld;AUSGKOPF VAR ausgkopf;
AUSGKOPFDRUCK VAR ausgkopfdruck;BOOL PROC multistop:TRUE END PROC multistop;
PROC sprechzeitlispezielleteile(INT CONST nr):SELECT nrOF CASE 1:
sprechzdialogvorbereitenCASE 2:sprechzeingabenrichtigCASE 3:
sprechzlistenvorbereitenCASE 4:sprechzdruckvorbereitenCASE 5:
sprechzseitedruckenCASE 6:sprechzbildschirmvorbereitenCASE 7:
sprechzseitezeigenENDSELECT .END PROC sprechzeitlispezielleteile;PROC 
sprechzdialogvorbereiten:sprechzueberschrift:=text(vergleichsknoten);
setzeanfangswerte(sprechzeingangsmaske,sprechzanfpos)END PROC 
sprechzdialogvorbereiten;PROC sprechzeingabenrichtig: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:meldungstext(mnrauswahlnichtsinnvoll,
auswahlnichtsinnvoll);standardmeldung(auswahlnichtsinnvoll,niltext).END PROC 
sprechzeingabenrichtig;PROC sprechzlistenvorbereiten:BOOL VAR b;initspalten;
setzespaltentrenner(spaltentrenner);IF sortierungnachparaphenTHEN 
aktuelleindexnr:=dnrlehrer;lesestart:=fnrlparapheELSE aktuelleindexnr:=
indexlehrername;lesestart:=0;FI ;inittupel(dnrlehrer);setzeidentiwert("");
initobli(anzahlderobjekteprobildschirm);parsenooffields(17);
objektlistestarten(aktuelleindexnr,"",lesestart,TRUE ,b);setzebestandende(b);
END PROC sprechzlistenvorbereiten;PROC sprechzbildschirmvorbereiten:LET 
fnrausganf=2;standardkopfmaskeaktualisieren(sprechzueberschrift);bildanfang:=
fnrausganf;setzebildanfangsposition(bildanfang);INT VAR i;setzespaltenbreite(
bildbreite);textueberschrift:=teilueb1+((spalte1breite+1)-(length(teilueb1)))
*blank+teilueb2;spaltenweise(textueberschrift);ausgfeld(1):=zeile;ausgfeld(1)
IN ausgabepos;erhoeheausgabeposumeins;spaltenweise(bildbreite*strich);
ausgfeld(1):=zeile;ausgfeld(1)IN ausgabepos;erhoeheausgabeposumeins;
setzebildanfangsposition(4);initspalten;setzespaltenbreite(spalte1breite);
setzespaltenbreite(spalte2breite);END PROC sprechzbildschirmvorbereiten;PROC 
sprechzseitezeigen:blaettern(PROC (INT CONST )lehrerdatenzeigen,aktion,TRUE ,
FALSE ,BOOL PROC multistop)END PROC sprechzseitezeigen;PROC lehrerdatenzeigen
(INT CONST x):lehrerdatenholen;lehrerdatenaufbereitenbild;
lehrerdatenaufbildschirm.END PROC lehrerdatenzeigen;PROC lehrerdatenholen:
paraphe:=wert(fnrlparaphe);lehrername:=wert(fnrlfamname);rufname:=wert(
fnrlrufname);namenszusatz:=wert(fnrlzusatz);amtsbez:=wert(fnrlamtsbeztitel);
geschlecht:=wert(fnrlgeschlecht);sprechzeit:=wert(fnrlsprechzeit);IF 
geschlecht="w"XOR geschlecht="W"THEN geschlecht:="Fr. "ELSE geschlecht:=
"Hr. "FI ;lehrernameaufbereitet:=(lehrername+komma+blank+geschlecht+
amtsbezeichnung+rufname+blank+namenszusatz);IF sortierungnachparaphenTHEN 
lehrernameaufbereitetmitparaphe:=paraphe+(maxspaltenlaengepara-length(paraphe
))*blank+lehrernameaufbereitetFI .amtsbezeichnung:IF amtsbez<>niltextTHEN 
amtsbez+blankELSE ""FI .END PROC lehrerdatenholen;PROC 
lehrerdatenaufbereitenbild:IF sortierungnachparaphenTHEN spaltenweise(
lehrernameaufbereitetmitparaphe)ELSE spaltenweise(lehrernameaufbereitet)FI ;
spaltenweise(sprechzeit);END PROC lehrerdatenaufbereitenbild;PROC 
lehrerdatenaufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP ausgfeld
(i):=zeile;ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeins;PER ;END PROC 
lehrerdatenaufbildschirm;PROC sprechzdruckvorbereiten:setzebestandende(FALSE 
);anfbuchstabe:=" ";druckvorbereiten;variablenfuerdrucksetzen;initdruckkopf(
zentriert(sprechzueberschrift,druckbreite),zentriert(length(
sprechzueberschrift)*"-",druckbreite));initspalten;setzespaltenbreite(
spalte1breite);setzespaltenbreite(spalte2breite);inittupel(dnrlehrer);
initausgabekopfdruck;lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT 
VAR )scanforward,BOOL PROC multistop);.variablenfuerdrucksetzen:
druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-ausgkopflaenge.END PROC 
sprechzdruckvorbereiten;PROC initausgabekopfdruck:druckstrich:=(spalte1breite
*mittelstrich)+(spaltentrennerSUB 1)+(spalte2breite+1)*mittelstrich;
textueberschrift:=teilueb1+(spalte1breite-(length(teilueb1)))*blank+
spaltentrenner+teilueb2;ausgkopfdruck(1):=textueberschrift;ausgkopfdruck(2):=
druckstrich;END PROC initausgabekopfdruck;PROC sprechzseitedrucken:
sprechzueberschriftdrucken;seitedrucken(PROC (INT VAR )lehrerdrucken,
druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistop);seitenwechsel.END PROC 
sprechzseitedrucken;PROC sprechzueberschriftdrucken:INT VAR i;
druckkopfschreiben;FOR iFROM 1UPTO ausgkopflaengeREP druckzeileschreiben(
ausgkopfdruck(i))PER END PROC sprechzueberschriftdrucken;PROC lehrerdrucken(
INT VAR zeilenzaehler):LET markiert="#";lehrerdatenholen;
ggflmeldunganfbuchstabe;lehreraufbereitendruck;zeilenzaehlerINCR 
ausgfeldlaenge;lehrerindruckdatei.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 
lehrerdrucken;PROC lehreraufbereitendruck:setzespaltentrenner(spaltentrenner)
;lehrerdatenaufbereitenbild;ausgfeld(1):=zeile;END PROC 
lehreraufbereitendruck;PROC lehrerindruckdatei:INT VAR i;FOR iFROM 1UPTO 
ausgfeldlaengeREP druckzeileschreiben(ausgfeld(1))PER END PROC 
lehrerindruckdatei;END PACKET lehrersprechzeitenliste;