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
|