app/schulis/2.2.1/src/4.zeitwuensche drucken

Raw file
Back to index

PACKET zeitwuenschedruckenDEFINES zeitwuenschespezielleteile:LET AUSGFELD =
ROW ausgfeldlaengeTEXT ,ausgfeldlaenge=18,zeilenbreite=60,zeilenanzahl=1,sj=
"Schuljahr",hj="Schulhalbjahr",ueberschrzeilen=0,ausgabeparam="#",eingmaske=
"ms liste zeitwuensche",meldungbearb=352,meldungpraez=129,fldsortlehrer=2,
fldsortsugrup=3,fldsortraeume=4,fldsortfaecher=5,fldsortkopplg=6,fldakthj=7,
fldaufdr=9,fldaufbs=8,posanzut=1,posgewut=3,posanzvm=4,posgewvm=6,posanznm=7,
posgewnm=9,ausganzpos=11,ausggewpos=18,minus="-",plus="+",leerzeile=" ",
kennzlehrer="P",kennzsugrup="S",kennzraeume="R",kennzfaecher="F",kennzkoppl=
"K",moeintrag="Mo  ",dieintrag="Di  ",mieintrag="Mi  ",doeintrag="Do  ",
freintrag="Fr  ",saeintrag="Sa  ",anhangl="Lehrer ",anhangs="Schülergruppen "
,anhangr="Räume ",anhangf="Fächer ",anhangk="Kopplungen ",ueberschrift=
"Liste der Zeitwünsche für ",leererunbestwunsch="         ";AUSGFELD VAR 
ausgfeld;INT VAR i,status,druckzeilenzahl,fall;TEXT VAR bezug,objekt,
objektbez,druckstrich;TEXT VAR sjahr,hjahr;INT VAR schj,schhj:=0;TEXT VAR 
bestwunsch,unbestwunsch,zeitwuenscheueberschrift:="";TEXT VAR bestwzeile,
unbestwtage,unbestwvorm,unbestwnachm,bestwurzeile:=
" _   _   _   _   _   _   _   _   _   _   _   _   _   _   _   _   _"+
"   _   _   _   _   _   _   _   _   _   _   _   _   _   _   _   _   _  "+
" _   _   _   _   _   _   _   _   _   _   _   _   _   _   _   _   _   "+
"_   _   _   _   _   _   _   _   _   _   _   _   _   _   _ ";TEXT VAR 
moobjeintrag,diobjeintrag,miobjeintrag,doobjeintrag,frobjeintrag,saobjeintrag
;BOOL PROC multistop:dbstatus=okCAND wert(fnrzwbezug)=bezugCAND intwert(
fnrzwhj)=schhjCAND intwert(fnrzwsj)=schjEND PROC multistop;BOOL PROC 
multistopsim:IF dbstatus=okTHEN IF intwert(fnrzwhj)=schhjCAND intwert(fnrzwsj
)=schjCAND wert(fnrzwbezug)=bezugTHEN LEAVE multistopsimWITH TRUE ELSE 
setzebestandende(TRUE );LEAVE multistopsimWITH FALSE FI ELSE setzebestandende
(TRUE )FI ;FALSE END PROC multistopsim;PROC holeakthj:holakthj;holaktj;IF 
standardmaskenfeld(fldakthj)=""THEN bergeplhjujFI .holakthj:hjahr:=
schulkenndatum(hj);schhj:=int(hjahr).holaktj:sjahr:=schulkenndatum(sj);schj:=
int(sjahr).bergeplhjuj:geplanteshjundsjberechnen(hjahr,sjahr);schj:=int(sjahr
);schhj:=int(hjahr).END PROC holeakthj;PROC zeitwuenschespezielleteile(INT 
CONST anwahl):SELECT anwahlOF CASE 1:zeitwuenschedialogvorbereitenCASE 2:
zeitwuenscherichtigCASE 3:zeitwuenschelistenvorbereitenCASE 4:
zeitwuenschedruckvorbereitenCASE 5:zeitwuenscheseitedruckenCASE 6:
zeitwuenschebsvorbereitenCASE 7:zeitwuenscheseitezeigenEND SELECT .END PROC 
zeitwuenschespezielleteile;PROC zeitwuenschedialogvorbereiten:
setzeanfangswerte(eingmaske,fldsortlehrer)END PROC 
zeitwuenschedialogvorbereiten;PROC zeitwuenscherichtig:IF standardmaskenfeld(
fldsortlehrer)=""CAND standardmaskenfeld(fldsortsugrup)=""CAND 
standardmaskenfeld(fldsortraeume)=""CAND standardmaskenfeld(fldsortfaecher)=
""CAND standardmaskenfeld(fldsortkopplg)=""THEN standardmeldung(meldungpraez,
"");setzeeingabetest(FALSE );infeld(fldsortlehrer);LEAVE zeitwuenscherichtig
ELIF standardmaskenfeld(fldaufdr)=""CAND standardmaskenfeld(fldaufbs)=""THEN 
standardmeldung(meldungpraez,"");setzeeingabetest(FALSE );infeld(
fldsortlehrer);LEAVE zeitwuenscherichtigFI ;standardpruefe(5,fldsortlehrer,
fldsortkopplg,0,"",status);IF status<>0THEN infeld(status);setzeeingabetest(
FALSE )ELSE standardpruefe(5,fldaufdr,fldaufbs,0,"",status);IF status<>0THEN 
infeld(status);setzeeingabetest(FALSE )ELSE IF standardmaskenfeld(
fldsortlehrer)<>""THEN fall:=fldsortlehrer;objektbez:=anhangl;bezug:=
kennzlehrerELIF standardmaskenfeld(fldsortsugrup)<>""THEN fall:=fldsortsugrup
;objektbez:=anhangs;bezug:=kennzsugrupELIF standardmaskenfeld(fldsortraeume)
<>""THEN fall:=fldsortraeume;objektbez:=anhangr;bezug:=kennzraeumeELIF 
standardmaskenfeld(fldsortfaecher)<>""THEN fall:=fldsortfaecher;objektbez:=
anhangf;bezug:=kennzfaecherELIF standardmaskenfeld(fldsortkopplg)<>""THEN 
fall:=fldsortkopplg;objektbez:=anhangk;bezug:=kennzkopplFI ;
setzeausgabedrucker(standardmaskenfeld(fldaufdr)<>"");setzeeingabetest(TRUE )
;holeakthj;zeitwuenscheueberschrift:=ueberschrift+objektbez+hjahr+". "+text(
sjahr,2)+"/"+subtext(sjahr,3)FI ;FI END PROC zeitwuenscherichtig;PROC 
zeitwuenschelistenvorbereiten:BOOL VAR b;inittupel(dnrzeitwuensche);initobli(
zeilenanzahl);setzeidentiwert("");setzewerte;objektlistestarten(
dnrzeitwuensche,sjahr,fnrzwbezugsobjekt,TRUE ,b);setzebestandende(NOT 
multistopCOR b).setzewerte:putintwert(fnrzwsj,schj);putintwert(fnrzwhj,schhj)
;putwert(fnrzwbezug,bezug).END PROC zeitwuenschelistenvorbereiten;PROC 
zeitwuenschebsvorbereiten:standardkopfmaskeaktualisieren(zentriert(
zeitwuenscheueberschrift,51));setzebildanfangsposition(3)END PROC 
zeitwuenschebsvorbereiten;PROC zeitwuenscheseitezeigen:blaettern(PROC (INT 
CONST )zeitwuenschezeigen,aktion,TRUE ,TRUE ,BOOL PROC multistop);END PROC 
zeitwuenscheseitezeigen;PROC zeitwuenschezeigen(INT CONST procparameter):
zeitwuenscheholen;zeitwuenscheaufbereiten;zeitwuenscheaufbs;END PROC 
zeitwuenschezeigen;PROC zeitwuenscheholen:objekt:=wert(fnrzwbezugsobjekt);
bestwunsch:=wert(fnrzwbestimmtewuensche);unbestwunsch:=wert(
fnrzwunbestimmtewuensche);IF NOT multistopTHEN setzebestandende(TRUE )FI .
END PROC zeitwuenscheholen;PROC zeitwuenscheaufbereiten:bereiteobjektauf(
objekt)END PROC zeitwuenscheaufbereiten;PROC zeitwuenscheaufbs:FOR iFROM 1
UPTO ausgfeldlaengeREP ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeinsPER 
END PROC zeitwuenscheaufbs;PROC zeitwuenschedruckvorbereiten:druckvorbereiten
;variablensetzen;initdruckkopf(zentriert(zeitwuenscheueberschrift,druckbreite
));inittupel(dnrzeitwuensche);setzebestandende(FALSE );setzewerte;
lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL 
PROC multistopsim).variablensetzen:druckstrich:=druckbreite*"-";
druckzeilenzahl:=drucklaenge(ueberschrzeilen).setzewerte:putintwert(fnrzwsj,
schj);putintwert(fnrzwhj,schhj);putwert(fnrzwbezug,bezug).END PROC 
zeitwuenschedruckvorbereiten;PROC zeitwuenscheseitedrucken:
zeitwuenscheueberschriftdrucken;seitedrucken(PROC (INT VAR )
zeitwuenschedrucken,druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopsim);
seitenwechselEND PROC zeitwuenscheseitedrucken;PROC 
zeitwuenscheueberschriftdrucken:druckkopfschreibenEND PROC 
zeitwuenscheueberschriftdrucken;PROC zeitwuenschedrucken(INT VAR zz):
zeitwuenscheholen;standardmeldung(meldungbearb,objektbez+objekt+ausgabeparam)
;zeitwuenscheaufbereiten(zz);zeitwuenscheindruckdatei(zz)END PROC 
zeitwuenschedrucken;PROC zeitwuenscheaufbereiten(INT VAR zz):bereiteobjektauf
(objekt)END PROC zeitwuenscheaufbereiten;PROC zeitwuenscheindruckdatei(INT 
VAR zz):FOR iFROM 1UPTO ausgfeldlaengeREP druckzeileschreiben(ausgfeld(i));zz
INCR 1PER ;druckzeileschreiben(leerzeile);zzINCR 1;druckzeileschreiben(
leerzeile);zzINCR 1END PROC zeitwuenscheindruckdatei;PROC bereiteobjektauf(
TEXT CONST objekt):INT VAR suchpos:=1;TEXT VAR wunsch:="";moobjeintrag:=
moeintrag;diobjeintrag:=dieintrag;miobjeintrag:=mieintrag;doobjeintrag:=
doeintrag;frobjeintrag:=freintrag;saobjeintrag:=saeintrag;uebertragwuensche;
ausgfeld(1):=(objekt+":");ausgfeld(2):=leerzeile;ausgfeld(3):=(
"Wünsche zu festen Zeiten:");ausgfeld(4):=(leerzeile);ausgfeld(5):=(
"     1   2   3   4   5   6   7   8   9  10  11  12");ausgfeld(6):=(
moobjeintrag+text(bestwzeile,48));ausgfeld(7):=(diobjeintrag+subtext(
bestwzeile,49,96));ausgfeld(8):=(miobjeintrag+subtext(bestwzeile,97,144));
ausgfeld(9):=(doobjeintrag+subtext(bestwzeile,145,192));ausgfeld(10):=(
frobjeintrag+subtext(bestwzeile,193,240));ausgfeld(11):=(saobjeintrag+subtext
(bestwzeile,241));ausgfeld(12):=(leerzeile);ausgfeld(13):=(
"                         allgemeine Wünsche:");ausgfeld(14):=(
"                         Anzahl/Gewicht ");ausgfeld(15):=("ganze Tage      "
+unbestwtage);ausgfeld(16):=("zusätzl. Vorm.  "+unbestwvorm);ausgfeld(17):=(
"zusätzl. Nachm. "+unbestwnachm);ausgfeld(18):=(leerzeile).uebertragwuensche:
bestwzeile:=bestwurzeile;unbestwtage:="          _      _ ";unbestwvorm:=
"          _      _ ";unbestwnachm:="          _      _ ";tragbestwuenscheein
;tragunbestwuenscheein.tragbestwuenscheein:suchpos:=1;WHILE suchpos<>0REP 
suchpos:=pos(bestwunsch,minus,suchpos);IF suchpos<>0THEN wunsch:=subtext(
bestwunsch,suchpos,suchpos+1);replace(bestwzeile,suchpos*2-1,wunsch);suchpos
INCR 1FI ;PER ;suchpos:=1;WHILE suchpos<>0REP suchpos:=pos(bestwunsch,plus,
suchpos);IF suchpos<>0THEN wunsch:=subtext(bestwunsch,suchpos,suchpos+1);
replace(bestwzeile,suchpos*2-1,wunsch);suchposINCR 1FI ;PER .
tragunbestwuenscheein:IF unbestwunsch<>leererunbestwunschTHEN wunsch:=
unbestwunschSUB posanzut;IF wunsch<>" "THEN replace(unbestwtage,ausganzpos,
wunsch)FI ;wunsch:=unbestwunschSUB posgewut;IF wunsch<>" "THEN replace(
unbestwtage,ausggewpos,wunsch)FI ;wunsch:=unbestwunschSUB posanzvm;IF wunsch
<>" "THEN replace(unbestwvorm,ausganzpos,wunsch)FI ;wunsch:=unbestwunschSUB 
posgewvm;IF wunsch<>" "THEN replace(unbestwvorm,ausggewpos,wunsch)FI ;wunsch
:=unbestwunschSUB posanznm;IF wunsch<>" "THEN replace(unbestwnachm,ausganzpos
,wunsch)FI ;wunsch:=unbestwunschSUB posgewnm;IF wunsch<>" "THEN replace(
unbestwnachm,ausggewpos,wunsch)FI FI .END PROC bereiteobjektauf;END PACKET 
zeitwuenschedrucken