summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/4.zeitwuensche drucken
blob: 521ab2be97719e156b0d74a61cd21eba4b473fee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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