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;