app/schulis/2.2.1/src/0.listen.faecher

Raw file
Back to index

PACKET faecherlistenDEFINES faecherlispezielleteile:LET faechereingangsmaske=
"mu liste einfach eingang",spaltentrenner=" ",faecheranfpos=2,spalte1breite=5
,spalte2breite=35,spalte3breite=10,spalte4breite=11,niltext="",blank=" ",null
=0,strich="-",ueberschriftenzeilen=2,mnrauswahlnichtsinnvoll=56,
mnrbearbeitetwerden=109,ausgkopflaenge=2,ausgfeldlaenge=1,
anzahlderobjekteprobildschirm=17;TEXT VAR faecherueberschrift:=
"Liste der Fächer",fach,fachbezeichnung,fachgruppe,fachbereich,anfbuchstabe,
neueranfbuchstabe:="",auswahlnichtsinnvoll,bearbeitetwerden;TEXT CONST 
leerzeile:=bildbreite*blank,textueberschrift:=("Fach"+2*blank+
"Fachbezeichnung"+21*blank+"Fachgruppe"+blank+"Fachbereich");INT VAR 
eingabestatus,lesestart,bildanfang,spalte2druckbreite,druckzeilenzahl;INT 
CONST aktuelleindexnr:=dnrfaecher,fnrfach:=fnrffach,fnrfachbezeichnung:=
fnrffachbez,fnrfachgruppe:=fnrffachgrp,fnrfachbereich:=fnrffachbereich;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 faecherlispezielleteile(INT CONST nr):SELECT nrOF CASE 1:
faecherdialogvorbereitenCASE 2:faechereingabenrichtigCASE 3:
faecherlistenvorbereitenCASE 4:faecherdruckvorbereitenCASE 5:
faecherseitedruckenCASE 6:faecherbildschirmvorbereitenCASE 7:
faecherseitezeigenENDSELECT .END PROC faecherlispezielleteile;PROC 
faecherdialogvorbereiten:faecherueberschrift:=text(vergleichsknoten);
setzeanfangswerte(faechereingangsmaske,faecheranfpos)END PROC 
faecherdialogvorbereiten;PROC faechereingabenrichtig: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:meldungstext(mnrauswahlnichtsinnvoll,
auswahlnichtsinnvoll);standardmeldung(auswahlnichtsinnvoll,niltext).END PROC 
faechereingabenrichtig;PROC faecherlistenvorbereiten:BOOL VAR b;initspalten;
setzespaltentrenner(spaltentrenner);lesestart:=fnrfach;inittupel(dnrfaecher);
setzeidentiwert("");initobli(anzahlderobjekteprobildschirm);
objektlistestarten(aktuelleindexnr,"",lesestart,TRUE ,b);setzebestandende(
NOT multistopCOR b);END PROC faecherlistenvorbereiten;PROC 
faecherbildschirmvorbereiten:LET fnrausganf=2;standardkopfmaskeaktualisieren(
faecherueberschrift);bildanfang:=fnrausganf;setzebildanfangsposition(
bildanfang);INT VAR i;setzespaltenbreite(bildbreite);spaltenweise(
textueberschrift);ausgfeld(1):=zeile;ausgfeld(1)IN ausgabepos;
erhoeheausgabeposumeins;spaltenweise(leerzeile);ausgfeld(1):=zeile;ausgfeld(1
)IN ausgabepos;erhoeheausgabeposumeins;setzebildanfangsposition(4);
initspalten;setzespaltentrenner(spaltentrenner);setzespaltenbreite(
spalte1breite);setzespaltenbreite(spalte2breite);setzespaltenbreite(
spalte3breite);setzespaltenbreite(spalte4breite);END PROC 
faecherbildschirmvorbereiten;PROC faecherseitezeigen:blaettern(PROC (INT 
CONST )faecherdatenzeigen,aktion,TRUE ,FALSE ,BOOL PROC multistop)END PROC 
faecherseitezeigen;PROC faecherdatenzeigen(INT CONST x):faecherdatenholen;
faecherdatenaufbereitenbild;faecherdatenaufbildschirm.END PROC 
faecherdatenzeigen;PROC faecherdatenholen:fach:=wert(fnrfach);fachbezeichnung
:=wert(fnrfachbezeichnung);IF wert(fnrfachgruppe)=text(null)THEN fachgruppe:=
strichELSE fachgruppe:=wert(fnrfachgruppe);FI ;IF wert(fnrfachbereich)=
niltextTHEN fachbereich:=strichELSE fachbereich:=wert(fnrfachbereich)FI ;END 
PROC faecherdatenholen;PROC faecherdatenaufbereitenbild:spaltenweise(fach);
spaltenweise(fachbezeichnung);spaltenweise(fachgruppe);spaltenweise(
fachbereich);END PROC faecherdatenaufbereitenbild;PROC 
faecherdatenaufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP 
ausgfeld(i):=zeile;ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeins;PER ;END 
PROC faecherdatenaufbildschirm;PROC faecherdruckvorbereiten:setzebestandende(
FALSE );anfbuchstabe:=" ";druckvorbereiten;variablenfuerdrucksetzen;
initdruckkopf(zentriert(faecherueberschrift,druckbreite),zentriert(length(
faecherueberschrift)*"-",druckbreite));initspalten;setzespaltenbreite(
spalte1breite);setzespaltenbreite(spalte2breite);setzespaltenbreite(
spalte3breite);setzespaltenbreite(spalte4breite);holemeldung;inittupel(
dnrfaecher);initausgabekopfdruck;lesenvorbereitendruck(PROC (INT CONST ,BOOL 
PROC ,INT VAR )scanforward,BOOL PROC multistop);.holemeldung:meldungstext(
mnrbearbeitetwerden,bearbeitetwerden).variablenfuerdrucksetzen:
druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-ausgkopflaenge.END PROC 
faecherdruckvorbereiten;PROC initausgabekopfdruck:ausgkopfdruck(1):=
textueberschrift;ausgkopfdruck(2):=leerzeile;END PROC initausgabekopfdruck;
PROC faecherseitedrucken:faecherueberschriftdrucken;seitedrucken(PROC (INT 
VAR )lehrerdrucken,druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistop);
seitenwechsel.END PROC faecherseitedrucken;PROC faecherueberschriftdrucken:
INT VAR i;druckkopfschreiben;FOR iFROM 1UPTO ausgkopflaengeREP 
druckzeileschreiben(ausgkopfdruck(i))PER END PROC faecherueberschriftdrucken;
PROC lehrerdrucken(INT VAR zeilenzaehler):LET markiert="#";faecherdatenholen;
ggflmeldunganfbuchstabe;faecheraufbereitendruck;zeilenzaehlerINCR 
ausgfeldlaenge;faecherindruckdatei.ggflmeldunganfbuchstabe:IF 
anfbuchstabegeaendertTHEN meldunganfbuchstabeFI .anfbuchstabegeaendert:
neueranfbuchstabe:=fachSUB 1;anfbuchstabe<>neueranfbuchstabe.
meldunganfbuchstabe:standardmeldung(mnrbearbeitetwerden,neueranfbuchstabe+
markiert);anfbuchstabe:=neueranfbuchstabe.END PROC lehrerdrucken;PROC 
faecheraufbereitendruck:spaltenweise(fach);spaltenweise(fachbezeichnung);
spaltenweise(fachgruppe);spaltenweise(fachbereich);ausgfeld(1):=zeile;END 
PROC faecheraufbereitendruck;PROC faecherindruckdatei:INT VAR i;FOR iFROM 1
UPTO ausgfeldlaengeREP druckzeileschreiben(ausgfeld(1))PER .END PROC 
faecherindruckdatei;END PACKET faecherlisten