PACKET lehrbefaehigungenfaecherweiselisteDEFINES
faecherwlehrbeflispezielleteile:LET lehrbefaehigungeingangsmaske=
"ms liste lehrbefaehigungen faecherweise eingang",
anzahlderobjekteprobildschirm=17,ausgfeldlaenge=1,lehrbefaehigunganfpos=2,
spaltenbreite1fach=12,spaltenbreite2art=6,spaltenbreite3paraphe=4,
spaltentrenner=" ",wochenstdanfpos=2,ueberschriftenzeilen=2,ausgkopflaenge=2,
strich="-",blank=" ",null=0,niltext="",mnrauswahlnichtsinnvoll=56,
mnrbearbeitetwerden=352;TEXT CONST spaltentext:=("Fach"+9*blank+"Art"+3*blank
+"Lehrer"),spaltenstrich:=length(spaltentext)*strich;TEXT VAR
lehrbefaehigungueberschriftbs:="Liste der Lehrbefähigungen",
lehrbefaehigungueberschriftdr:="Liste der Lehrbefähigungen",alteparahpe:="",
paraphe:="",alteart:="",art:="",altesfach:="",fach:="",teiltextmeldung:=
"Fächer mit den Anfangsbuchstaben:",anfbuchstabe:="",neueranfbuchstabe:="";
INT VAR eingabestatus,bildanfang,druckzeilenzahl;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 faecherwlehrbeflispezielleteile(INT CONST nr):SELECT nrOF CASE 1:
faecherwlehrbefaehigungdialogvorbereitenCASE 2:
faecherwlehrbefaehigungeingabenrichtigCASE 3:
faecherwlehrbefaehigunglistenvorbereitenCASE 4:
faecherwlehrbefaehigungdruckvorbereitenCASE 5:
faecherwlehrbefaehigungseitedruckenCASE 6:
faecherwlehrbefaehigungbildschirmvorbereitenCASE 7:
faecherwlehrbefaehigungseitezeigenENDSELECT .END PROC
faecherwlehrbeflispezielleteile;PROC faecherwlehrbefaehigungdialogvorbereiten
:lehrbefaehigungueberschriftbs:=text(vergleichsknoten);setzeanfangswerte(
lehrbefaehigungeingangsmaske,lehrbefaehigunganfpos)END PROC
faecherwlehrbefaehigungdialogvorbereiten;PROC
faecherwlehrbefaehigungeingabenrichtig:LET fnrausgdrucker=2,fnrausgbild=3;
standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext,eingabestatus);IF
eingabestatus=0THEN setzeeingabetest(TRUE );setzeausgabedrucker(
standardmaskenfeld(fnrausgbild)=niltext);ELSE meldefehler;setzeeingabetest(
FALSE )FI ;.meldefehler:standardmeldung(mnrauswahlnichtsinnvoll,niltext).END
PROC faecherwlehrbefaehigungeingabenrichtig;PROC
faecherwlehrbefaehigunglistenvorbereiten:BOOL VAR b;initspalten;
setzespaltentrenner(spaltentrenner);inittupel(dnrlehrbefaehigungen);
setzeidentiwert("");initobli(anzahlderobjekteprobildschirm);
objektlistestarten(ixlbart,"",0,TRUE ,b);setzebestandende(b);END PROC
faecherwlehrbefaehigunglistenvorbereiten;PROC
faecherwlehrbefaehigungbildschirmvorbereiten:LET fnrausganf=2;
standardkopfmaskeaktualisieren(lehrbefaehigungueberschriftbs);bildanfang:=
fnrausganf;setzebildanfangsposition(bildanfang);setzespaltenbreite(bildbreite
);spaltenweise(spaltentext);ausgfeld(1):=zeile;ausgfeld(1)IN ausgabepos;
erhoeheausgabeposumeins;spaltenweise(spaltenstrich);ausgfeld(1):=zeile;
ausgfeld(1)IN ausgabepos;erhoeheausgabeposumeins;setzebildanfangsposition(4);
spaltenbreitensetzenEND PROC faecherwlehrbefaehigungbildschirmvorbereiten;
PROC faecherwlehrbefaehigungseitezeigen:altesfach:=niltext;alteart:=niltext;
blaettern(PROC (INT CONST )lehrbefdatenfachweisezeigen,aktion,TRUE ,FALSE ,
BOOL PROC multistop)END PROC faecherwlehrbefaehigungseitezeigen;PROC
lehrbefdatenfachweisezeigen(INT CONST x):
datenausdateilehrbefaehigungenfachweiseholen;
datenausdateilehrbefaehigungenfachweiseaufbereitenbild;
datenfachweiseaufbildschirmausgebenEND PROC lehrbefdatenfachweisezeigen;PROC
datenausdateilehrbefaehigungenfachweiseholen:fach:=wert(fnrlbfach);art:=wert(
fnrlbart);paraphe:=wert(fnrlbparaphe)END PROC
datenausdateilehrbefaehigungenfachweiseholen;PROC
datenausdateilehrbefaehigungenfachweiseaufbereitenbild:IF fach<>altesfach
THEN spaltenweise(fach);spaltenweise(art)ELSE spaltenweise(blank);IF art<>
alteartTHEN spaltenweise(art)ELSE spaltenweise(blank)FI ;FI ;spaltenweise(
paraphe);alteparahpe:=paraphe;altesfach:=fach;alteart:=art;END PROC
datenausdateilehrbefaehigungenfachweiseaufbereitenbild;PROC
datenfachweiseaufbildschirmausgeben:INT VAR i;FOR iFROM 1UPTO ausgfeldlaenge
REP ausgfeld(i):=zeile;ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeins;PER ;
END PROC datenfachweiseaufbildschirmausgeben;PROC
faecherwlehrbefaehigungdruckvorbereiten:setzebestandende(FALSE );anfbuchstabe
:=" ";druckvorbereiten;variablenfuerdrucksetzen;lehrbefaehigungueberschriftdr
CAT " fachweise";initdruckkopf(zentriert(lehrbefaehigungueberschriftdr,
druckbreite),zentriert(length(lehrbefaehigungueberschriftdr)*"-",druckbreite)
);spaltenbreitensetzen;initausgabekopfdruck;inittupel(dnrlehrbefaehigungen);
lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL
PROC multistop);.variablenfuerdrucksetzen:druckzeilenzahl:=drucklaenge(
ueberschriftenzeilen)-ausgkopflaenge.END PROC
faecherwlehrbefaehigungdruckvorbereiten;PROC initausgabekopfdruck:
ausgkopfdruck(1):=spaltentext;ausgkopfdruck(2):=spaltenstrichEND PROC
initausgabekopfdruck;PROC faecherwlehrbefaehigungseitedrucken:
lehrbefaehigungueberschriftdrucken;altesfach:=niltext;alteart:=niltext;
seitedrucken(PROC (INT VAR )lehrbefaehigungdrucken,druckzeilenzahl,
ausgfeldlaenge,BOOL PROC multistop);seitenwechselEND PROC
faecherwlehrbefaehigungseitedrucken;PROC lehrbefaehigungueberschriftdrucken:
INT VAR i;druckkopfschreiben;FOR iFROM 1UPTO ausgkopflaengeREP
druckzeileschreiben(ausgkopfdruck(i))PER END PROC
lehrbefaehigungueberschriftdrucken;PROC lehrbefaehigungdrucken(INT VAR
zeilenzaehler):LET markiert="#";datenausdateilehrbefaehigungenfachweiseholen;
ggflmeldunganfbuchstabe;IF fach<>altesfachTHEN spaltenweise(blank);
spaltenweise(blank);spaltenweise(blank);ausgfeld(1):=zeile;zeilenzaehlerINCR
ausgfeldlaenge;lehrerstundendatenindruckdateiFI ;
lehrerstundendatenaufbereitendruck;zeilenzaehlerINCR ausgfeldlaenge;
lehrerstundendatenindruckdatei.ggflmeldunganfbuchstabe:IF
anfbuchstabegeaendertTHEN meldunganfbuchstabeFI .anfbuchstabegeaendert:
neueranfbuchstabe:=fachSUB 1;anfbuchstabe<>neueranfbuchstabe.
meldunganfbuchstabe:standardmeldung(mnrbearbeitetwerden,teiltextmeldung+
neueranfbuchstabe+markiert);anfbuchstabe:=neueranfbuchstabe.END PROC
lehrbefaehigungdrucken;PROC lehrerstundendatenaufbereitendruck:
setzespaltentrenner(spaltentrenner);
datenausdateilehrbefaehigungenfachweiseaufbereitenbild;ausgfeld(1):=zeile;
END PROC lehrerstundendatenaufbereitendruck;PROC
lehrerstundendatenindruckdatei:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP
druckzeileschreiben(ausgfeld(1))PER END PROC lehrerstundendatenindruckdatei;
PROC spaltenbreitensetzen:initspalten;setzespaltenbreite(spaltenbreite1fach);
setzespaltenbreite(spaltenbreite2art);setzespaltenbreite(
spaltenbreite3paraphe);END PROC spaltenbreitensetzen;END PACKET
lehrbefaehigungenfaecherweiseliste;