PACKET lehrerparaphenlistenDEFINES parlispezielleteile:LET parlieingangsmaske ="ms liste lehrerparaphen eingang",spaltentrenner=" ",parlianfpos=2, spalte1breite=7,niltext="",blank=" ",komma=",",null=0,ueberschriftenzeilen=2, mnrauswahlnichtsinnvoll=56,mnrbearbeitetwerden=352,ausgkopflaenge=2, ausgfeldlaenge=1,anzahlderobjekteprobildschirm=19;TEXT VAR parliueberschrift :="Liste der Lehrerparaphen",lehrername,rufname,namenszusatz,amtsbez,anrede, geschlecht,paraphe,anfbuchstabe,neueranfbuchstabe:="",lehrernameaufbereitet, auswahlnichtsinnvoll,teiltextmeldung:= "die Paraphe mit dem Anfangsbuchstaben:";INT VAR aktuelleindexnr, eingabestatus,lesestart,bildanfang,spalte2druckbreite,druckzeilenzahl;INT CONST indexlehrername:=ixlfamruf,spalte2bildbreite:=bildbreite-spalte1breite- 1;BOOL VAR sortierungnachparaphen;LET AUSGFELD =ROW ausgfeldlaengeTEXT , AUSGKOPF =ROW ausgkopflaengeTEXT ;AUSGFELD VAR ausgfeld;AUSGKOPF VAR ausgkopf ;BOOL PROC multistop:TRUE END PROC multistop;PROC parlispezielleteile(INT CONST nr):SELECT nrOF CASE 1:parlidialogvorbereitenCASE 2: parlieingabenrichtigCASE 3:parlilistenvorbereitenCASE 4:parlidruckvorbereiten CASE 5:parliseitedruckenCASE 6:parlibildschirmvorbereitenCASE 7: parliseitezeigenENDSELECT .END PROC parlispezielleteile;PROC parlidialogvorbereiten:parliueberschrift:=text(vergleichsknoten); setzeanfangswerte(parlieingangsmaske,parlianfpos)END PROC parlidialogvorbereiten;PROC parlieingabenrichtig: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 parlieingabenrichtig;PROC parlilistenvorbereiten:BOOL VAR b;initspalten; setzespaltentrenner(spaltentrenner);IF sortierungnachparaphenTHEN aktuelleindexnr:=dnrlehrer;lesestart:=fnrlparapheELSE aktuelleindexnr:= indexlehrername;lesestart:=0;FI ;inittupel(dnrlehrer);setzeidentiwert(""); initobli(anzahlderobjekteprobildschirm);parsenooffields(6);objektlistestarten (aktuelleindexnr,"",lesestart,TRUE ,b);setzebestandende(NOT multistopCOR b); END PROC parlilistenvorbereiten;PROC parlibildschirmvorbereiten:LET fnrausganf=2;standardkopfmaskeaktualisieren(parliueberschrift);bildanfang:= fnrausganf;setzebildanfangsposition(bildanfang);setzespaltenbreite( spalte1breite);setzespaltenbreite(spalte2bildbreite);END PROC parlibildschirmvorbereiten;PROC parliseitezeigen:blaettern(PROC (INT CONST ) lehrerdatenzeigen,aktion,TRUE ,FALSE ,BOOL PROC multistop)END PROC parliseitezeigen;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);IF geschlecht="w"XOR geschlecht="W"THEN anrede:="Fr. "ELSE anrede:="Hr. "FI ; lehrernameaufbereitet:=(lehrername+komma+blank+anrede+amtsbezeichnung+rufname +blank+namenszusatz);.amtsbezeichnung:IF amtsbez<>niltextTHEN amtsbez+blank ELSE ""FI .END PROC lehrerdatenholen;PROC lehrerdatenaufbereitenbild: spaltenweise(paraphe);spaltenweise(lehrernameaufbereitet);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 parlidruckvorbereiten:setzebestandende(FALSE );anfbuchstabe:=" "; druckvorbereiten;variablenfuerdrucksetzen;spalte2druckbreite:=druckbreite-( spalte1breite+1);initdruckkopf(zentriert(parliueberschrift,druckbreite), zentriert(length(parliueberschrift)*"-",druckbreite));initspalten; setzespaltenbreite(spalte1breite);setzespaltenbreite(spalte2druckbreite); inittupel(dnrlehrer);lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC multistop);.variablenfuerdrucksetzen: druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-ausgkopflaenge.END PROC parlidruckvorbereiten;PROC parliseitedrucken:parliueberschriftdrucken; seitedrucken(PROC (INT VAR )lehrerdrucken,druckzeilenzahl,ausgfeldlaenge, BOOL PROC multistop);seitenwechsel.END PROC parliseitedrucken;PROC parliueberschriftdrucken:druckkopfschreiben.END PROC parliueberschriftdrucken ;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:spaltenweise(paraphe);spaltenweise( lehrernameaufbereitet);ausgfeld(1):=zeile;END PROC lehreraufbereitendruck; PROC lehrerindruckdatei:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP druckzeileschreiben(ausgfeld(1))PER .END PROC lehrerindruckdatei;END PACKET lehrerparaphenlisten;