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

Raw file
Back to index

PACKET listensteuerungDEFINES eingangsmaskezeigenundparameterlesen,
listedruckenoderzeigenggflweitereaktionlesen,weitereaktionlesen,
aufbildschirmblaettern,druckbearbeitung,setzeanfangswerte,setzeausgabedrucker
,ausgabedrucker,setzeeingabetest,setzebildanfangsposition,ausgabepos,
erhoeheausgabeposumeins,seitenzaehler,erhoeheseitenzaehlerumeins,aktion,
bildbreite,bildlaenge:LET namebildausgabemaske="mu liste bildausgabe",
datenexistierennicht=59,warteaufforderung=69,listewirdgedruckt=58,
zurnachprozedur=1,niltext="",blank=" ";INT VAR bildanfangsposition,
aktuelleposition,zeiger,richtung,seite;TEXT VAR nameauswahlmaske;BOOL VAR 
eingabenrichtig,ausgdrucker;TEXT CONST leerzeilebild:=bildbreite*blank;PROC 
eingangsmaskezeigenundparameterlesen(PROC (INT CONST )spezielleteile):
enablestop;dialogvorbereiten;dialogstarten.dialogvorbereiten:spezielleteile(1
);standardstartproc(nameauswahlmaske).dialogstarten:infeld(aktuelleposition);
standardnproc.END PROC eingangsmaskezeigenundparameterlesen;PROC 
listedruckenoderzeigenggflweitereaktionlesen(PROC (INT CONST )spezielleteile)
:eingabenueberpruefen;IF eingabenrichtigTHEN werteauswahlausundgibausELSE 
wiederholeauswahlFI .eingabenueberpruefen:spezielleteile(2).
werteauswahlausundgibaus:meldewarten;vorbereitungenliste;IF bestandendeTHEN 
meldekeinbestand;zurueckzumdialogELIF ausgdruckerTHEN druckbearbeitung(
zurnachprozedur,PROC spezielleteile)ELSE 
bildschirmvorbereitenundersteseitezeigen(PROC spezielleteile)FI .
vorbereitungenliste:spezielleteile(3).meldewarten:standardmeldung(
warteaufforderung,niltext).meldekeinbestand:standardmeldung(
datenexistierennicht,niltext).wiederholeauswahl:zurueckzumdialog.
zurueckzumdialog:return(1).END PROC 
listedruckenoderzeigenggflweitereaktionlesen;PROC druckbearbeitung(INT CONST 
ruecksprung,PROC (INT CONST )spezielleteile):IF NOT (ruecksprung=
zurnachprozedur)THEN setzeausgabedrucker(TRUE )FI ;seite:=1;
ausgebenaufdrucker(PROC spezielleteile);zurueckzumdialog.zurueckzumdialog:IF 
ruecksprung=zurnachprozedurTHEN return(ruecksprung)ELSE enter(ruecksprung)FI 
.END PROC druckbearbeitung;PROC ausgebenaufdrucker(PROC (INT CONST )
spezielleteile):setzemitseitennummern(TRUE );druckvorbereiten;druckeeineseite
;WHILE NOT bestandendeREP nimmnaechsteseite;druckeeineseitePER ;
meldelistewirdgedruckt;drucknachbereiten.druckvorbereiten:spezielleteile(4).
druckeeineseite:spezielleteile(5).nimmnaechsteseite:seiteINCR 1.
meldelistewirdgedruckt:standardmeldung(listewirdgedruckt,niltext).END PROC 
ausgebenaufdrucker;PROC bildschirmvorbereitenundersteseitezeigen(PROC (INT 
CONST )spezielleteile):standardstartproc(namebildausgabemaske);spezielleteile
(6);richtung:=#1;#3;seitezeigen(PROC spezielleteile);dialogstarten.
dialogstarten:weitereaktionlesen.END PROC 
bildschirmvorbereitenundersteseitezeigen;PROC weitereaktionlesen:maskendialog
.maskendialog:aktuelleposition:=21;infeld(aktuelleposition);standardnproc.
END PROC weitereaktionlesen;PROC aufbildschirmblaettern(INT CONST was,PROC (
INT CONST )spezielleteile):richtung:=was;standardkopfmaskeaktualisieren;
seitezeigen(PROC spezielleteile);zurueckzumdialog.zurueckzumdialog:return(1).
END PROC aufbildschirmblaettern;PROC setzeanfangswerte(TEXT CONST 
eingangsmaske,INT CONST anfpos):nameauswahlmaske:=eingangsmaske;
aktuelleposition:=anfpos;END PROC setzeanfangswerte;PROC seitezeigen(PROC (
INT CONST )spezielleteile):LET fnrausgende=20;aktuelleposition:=
bildanfangsposition;spezielleteile(7);ggfrestbildloeschen.ggfrestbildloeschen
:IF neuesbildangefangenTHEN restbildloeschenFI .neuesbildangefangen:
aktuelleposition>bildanfangsposition.restbildloeschen:FOR zeigerFROM 
aktuellepositionUPTO fnrausgendeREP leerzeilebildIN zeigerPER .END PROC 
seitezeigen;PROC setzeausgabedrucker(BOOL CONST b):ausgdrucker:=bEND PROC 
setzeausgabedrucker;BOOL PROC ausgabedrucker:ausgdruckerEND PROC 
ausgabedrucker;PROC setzeeingabetest(BOOL CONST b):eingabenrichtig:=bEND 
PROC setzeeingabetest;PROC setzebildanfangsposition(INT CONST anfangsposition
):bildanfangsposition:=anfangspositionEND PROC setzebildanfangsposition;INT 
PROC ausgabepos:aktuellepositionEND PROC ausgabepos;PROC 
erhoeheausgabeposumeins:aktuellepositionINCR 1END PROC 
erhoeheausgabeposumeins;INT PROC seitenzaehler:seiteEND PROC seitenzaehler;
PROC erhoeheseitenzaehlerumeins:seiteINCR 1END PROC 
erhoeheseitenzaehlerumeins;INT PROC aktion:richtungEND PROC aktion;LET 
bildzeilenbreite=78,bildseitenlaenge=23,bildkopflaenge=4;INT CONST bildbreite
:=bildzeilenbreite,bildlaenge:=bildseitenlaenge-bildkopflaenge;END PACKET 
listensteuerung;