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
130
131
132
133
134
135
136
137
|
PACKET anschrunterrichtsvertlgfuerlehrerDEFINES
unterrichtsvertlgfuerlehrereingang,unterrichtsvertlgfuerlehrerstarten,
unterrichtsvertlgfuerlehrersonderwerte,unterrichtsvertlgfuerlehrermultistop,
unterrichtsvertlgfuerlehrerdruckdateibauen:LET maske=
"ms unterrichtsverteilung fuer lehrer drucken",fnrparaphe=2,fnrzeitwuensche=3
,fnraktsj=4,fnrbsausgabe=5,fnrdrausgabe=6,mnrbittewarten=69,
mnrkeinegueltigeparaphe=344,mnrlistewirdaufbereitet=190,trenner="/",blank=" "
,niltext="";TEXT CONST v1datlehrer:="vordruck1 unterrichtsvertlg fuer lehrer"
,v2datlehrveranstgn:="vordruck2 unterrichtsvertlg fuer lehrer",
v3dataktschuelergr:="vordruck4 auskunft lehrer",v4datzeitwuensche:=
"vordruck5 auskunft lehrer",bestandnamepersoenlermaessigung:=
"c02 persoenl ermaess";LET swsj=520,swhj=521,swanrede=522,
swermaessgrund1langtext=530,swermaessgrund2langtext=531,
swermaessgrund3langtext=532,swermaessgrund4langtext=533,swfach=534,swkennung=
535,swwstd=536,swdummy=526,ganztage=520,ganzgew=521,vormtage=522,vormgew=523,
nachtage=524,nachgew=525;BOOL VAR bildschirmausgabe,mitzeitwuenschen,
einzelbearbeitung,aktsj;TEXT VAR angegebeneparaphe:="",aktparaphe,halbjahr,
schuljahr,wochstdn,fachkennung;INT VAR gemerkterdbstatus,status,sollstdn,
differenz,summewochstdn:=0,zeilenhilfszahl,zeilenzahl,zusatzzeilen,
swaktklassenleiter,swaktstellvertreter;BOOL PROC paraphevorhanden:putwert(
fnrlparaphe,angegebeneparaphe);search(dnrlehrer,TRUE );IF dbstatus=0THEN
TRUE ELSE FALSE FI END PROC paraphevorhanden;PROC
unterrichtsvertlgfuerlehrereingang:standardvproc(maske)END PROC
unterrichtsvertlgfuerlehrereingang;PROC unterrichtsvertlgfuerlehrerstarten:
standardpruefe(5,fnrbsausgabe,fnrdrausgabe,0,"",status);IF status<>0THEN
infeld(status);return(1);ELSE angegebeneparaphe:=standardmaskenfeld(
fnrparaphe);IF angegebeneparaphe=niltextCOR paraphevorhandenTHEN
bildschirmausgabe:=standardmaskenfeld(fnrbsausgabe)<>niltext;
einzelbearbeitung:=standardmaskenfeld(fnrparaphe)<>niltext;mitzeitwuenschen:=
standardmaskenfeld(fnrzeitwuensche)<>niltext;aktsj:=standardmaskenfeld(
fnraktsj)<>niltext;aktparaphe:=angegebeneparaphe;startenausfuehrenELSE
standardmeldung(mnrkeinegueltigeparaphe,niltext);return(1)FI ;FI .
startenausfuehren:halbjahr:=schulkenndatum("Schulhalbjahr");schuljahr:=
schulkenndatum("Schuljahr");IF NOT (aktsj)THEN geplanteshjundsjberechnen(
halbjahr,schuljahr);FI ;setzesonderwerteschulkenndaten;setzewerte;
standardmeldung(mnrbittewarten,niltext);zusammengesetztesanschreiben(
dnrlehrer,bildschirmausgabe,einzelbearbeitung,BOOL PROC
unterrichtsvertlgfuerlehrersonderwerte,BOOL PROC
unterrichtsvertlgfuerlehrermultistop,TEXT PROC
unterrichtsvertlgfuerlehrerdruckdateibauen).setzewerte:putwert(fnrlparaphe,
aktparaphe)END PROC unterrichtsvertlgfuerlehrerstarten;BOOL PROC
unterrichtsvertlgfuerlehrermultistop:BOOL VAR ok;IF einzelbearbeitungTHEN ok
:=angegebeneparaphe=wert(fnrlparaphe)AND dbstatus=0ELSE ok:=dbstatus=0FI ;ok
END PROC unterrichtsvertlgfuerlehrermultistop;BOOL PROC
unterrichtsvertlgfuerlehrersonderwerte:TEXT VAR grund1,grund2,grund3,grund4;
initialisieresonderwerte;aktparaphe:=wert(fnrlparaphe);adressat(aktparaphe);
gemerkterdbstatus:=dbstatus;setzesonderwert(swsj,subtext(schuljahr,1,2)+
trenner+subtext(schuljahr,3,4));setzesonderwert(swhj,halbjahr);TEXT VAR
anredetext;IF wert(fnrlgeschlecht)="m"THEN anredetext:="Herrn"ELSE anredetext
:="Frau";FI ;setzesonderwert(swanrede,anredetext);grund1:=wert(fnrlermgrund1)
;grund2:=wert(fnrlermgrund2);grund3:=wert(fnrlermgrund3);grund4:=wert(
fnrlermgrund4);sollstdn:=intwert(fnrlsollstd);inittupel(dnrschluessel);
putwert(fnrschlsachgebiet,bestandnamepersoenlermaessigung);putwert(
fnrschlschluessel,grund1);search(dnrschluessel,TRUE );IF dbstatus=0THEN
setzesonderwert(swermaessgrund1langtext,wert(fnrschllangtext))ELSE
setzesonderwert(swermaessgrund1langtext,blank)FI ;putwert(fnrschlschluessel,
grund2);search(dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(
swermaessgrund2langtext,wert(fnrschllangtext));ELSE setzesonderwert(
swermaessgrund2langtext,blank);FI ;putwert(fnrschlschluessel,grund3);search(
dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(
swermaessgrund3langtext,wert(fnrschllangtext))ELSE setzesonderwert(
swermaessgrund3langtext,blank)FI ;putwert(fnrschlschluessel,grund4);search(
dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(
swermaessgrund4langtext,wert(fnrschllangtext))ELSE setzesonderwert(
swermaessgrund4langtext,blank)FI ;inittupel(dnrlehrveranstaltungen);putwert(
fnrlvsj,schuljahr);putwert(fnrlvhj,halbjahr);putwert(fnrlvparaphe,aktparaphe)
;search(ixlvsjhjpar,TRUE );IF dbstatus=0THEN fachkennung:=wert(
fnrlvfachkennung);wochstdn:=wert(fnrlvwochenstd);setzesonderwert(swfach,
subtext(fachkennung,1,2));setzesonderwert(swkennung,subtext(fachkennung,3,6))
;setzesonderwert(swwstd,wochstdn);summewochstdn:=int(wochstdn);ELSE
setzesonderwert(swfach,blank);setzesonderwert(swkennung,blank);
setzesonderwert(swwstd,blank);summewochstdn:=0;FI ;dbstatus(gemerkterdbstatus
);TRUE END PROC unterrichtsvertlgfuerlehrersonderwerte;TEXT PROC
unterrichtsvertlgfuerlehrerdruckdateibauen:LET druckdatei="liste.1",
hilfsdatei="hilfsdatei";TEXT VAR zeile;zeilenzahl:=0;zusatzzeilen:=0;
vordruckeholen;setzemitseitennummern(TRUE );druckvorbereiten;standardmeldung(
mnrlistewirdaufbereitet,niltext);briefalternative(v1datlehrer,hilfsdatei);
hilfsdateiindruckdatei(hilfsdatei);vordruck2ggfxmalindruckdatei;zeile:=blank;
druckzeileschreiben(zeile);zeilenzahlINCR 1;zeile:=42*blank+"Wstd. Summe: "+
text(summewochstdn,2);druckzeileschreiben(zeile);zeilenzahlINCR 1;IF sollstdn
<>summewochstdnTHEN differenz:=sollstdn-summewochstdn;IF differenz<0THEN
zeile:=43*blank+"Mehrarbeit: "+text(-differenz,2)+" Std.";ELSE zeile:=24*
blank+"Sollstunden unterschritten um: "+text(differenz,2)+" Std.";FI ;
druckzeileschreiben(zeile);zeilenzahlINCR 1;FI ;zeilenzahl:=5;
vordruck3ggfindruckdatei;IF mitzeitwuenschenTHEN zeilenzahl:=17;
vordruck4ggfindruckdatei;FI ;drucknachbereitenohneausdrucken;
vordruckeloeschen;druckdatei.vordruckeholen:fetch(v1datlehrer,/
"anschreiben server");fetch(v2datlehrveranstgn,/"anschreiben server");fetch(
v3dataktschuelergr,/"anschreiben server");fetch(v4datzeitwuensche,/
"anschreiben server");.vordruckeloeschen:forget(v1datlehrer,quiet);forget(
v2datlehrveranstgn,quiet);forget(v3dataktschuelergr,quiet);forget(
v4datzeitwuensche,quiet);END PROC unterrichtsvertlgfuerlehrerdruckdateibauen;
PROC vordruck2ggfxmalindruckdatei:TEXT VAR hilfsdatei:="hilfsdatei";BOOL VAR
hilfsdateida:=FALSE ;succ(ixlvsjhjpar);WHILE dbstatus=0AND wert(fnrlvparaphe)
=aktparapheREP fachkennung:=wert(fnrlvfachkennung);wochstdn:=subtext(wert(
fnrlvwochenstd),1,2);setzesonderwert(swfach,subtext(fachkennung,1,2));
setzesonderwert(swkennung,subtext(fachkennung,3,6));setzesonderwert(swwstd,
wochstdn);summewochstdnINCR int(wochstdn);briefalternative(v2datlehrveranstgn
,hilfsdatei);succ(ixlvsjhjpar);hilfsdateida:=TRUE ;PER ;IF hilfsdateidaTHEN
hilfsdateiindruckdatei(hilfsdatei)FI ;END PROC vordruck2ggfxmalindruckdatei;
PROC vordruck3ggfindruckdatei:LET hilfsdatei="hilfsdatei";TEXT VAR aufberwert
:=niltext;BOOL VAR hilfsdateiangelegt:=FALSE ;setzesonderwert(swdummy,blank);
swaktklassenleiter:=580;swaktstellvertreter:=581;gemerkterdbstatus:=dbstatus;
inittupel(dnraktschuelergruppen);putwert(fnrsgrpsj,schuljahr);putwert(
fnrsgrphj,halbjahr);search(dnraktschuelergruppen,FALSE );WHILE dbstatus=0AND
wert(fnrsgrphj)=halbjahrREP IF wert(fnrsgrplehrer)=aktparapheAND
swaktklassenleiter<590THEN aufberwert:=wert(fnrsgrpjgst);aufberwertCAT wert(
fnrsgrpkennung);setzesonderwert(swaktklassenleiter,aufberwert);
swaktklassenleiterINCR 2;hilfsdateiangelegt:=TRUE ;ELSE IF wert(
fnrsgrpstellvlehrer)=aktparapheAND swaktstellvertreter<591THEN aufberwert:=
wert(fnrsgrpjgst);aufberwertCAT wert(fnrsgrpkennung);setzesonderwert(
swaktstellvertreter,aufberwert);swaktstellvertreterINCR 2;hilfsdateiangelegt
:=TRUE ;FI ;FI ;succ(dnraktschuelergruppen)PER ;IF hilfsdateiangelegtTHEN
briefalternative(v3dataktschuelergr,hilfsdatei);hilfsdateiindruckdatei(
hilfsdatei);FI ;dbstatus(gemerkterdbstatus)END PROC vordruck3ggfindruckdatei;
PROC vordruck4ggfindruckdatei:gemerkterdbstatus:=dbstatus;LET hilfsdatei=
"hilfsdatei";TEXT VAR zeitwuensche;initialisieresonderwerte;INT VAR
aktswzeitwunsch:=531,position:=1,i;setzesonderwert(swdummy,blank);inittupel(
dnrzeitwuensche);putwert(fnrzwsj,schuljahr);putwert(fnrzwhj,halbjahr);putwert
(fnrzwbezug,"P");putwert(fnrzwbezugsobjekt,aktparaphe);search(dnrzeitwuensche
,TRUE );IF dbstatus=0THEN zeitwuensche:=wert(fnrzwunbestimmtewuensche);
setzesonderwert(ganztage,zeitwuenscheSUB 1);setzesonderwert(ganzgew,
zeitwuenscheSUB 3);setzesonderwert(vormtage,zeitwuenscheSUB 4);
setzesonderwert(vormgew,zeitwuenscheSUB 6);setzesonderwert(nachtage,
zeitwuenscheSUB 7);setzesonderwert(nachgew,zeitwuenscheSUB 9);zeitwuensche:=
wert(fnrzwbestimmtewuensche);FOR iFROM 1UPTO 66REP setzesonderwert(
aktswzeitwunsch,subtext(zeitwuensche,position,position+1));aktswzeitwunsch
INCR 1;positionINCR 2PER ;briefalternative(v4datzeitwuensche,hilfsdatei);
hilfsdateiindruckdatei(hilfsdatei);FI ;dbstatus(gemerkterdbstatus)END PROC
vordruck4ggfindruckdatei;PROC hilfsdateiindruckdatei(TEXT CONST hilfsdatei):
FILE VAR f;INT VAR i;TEXT VAR zeile;f:=sequentialfile(input,hilfsdatei);
zeilenhilfszahl:=lines(f);IF zeilenzahl+zeilenhilfszahl+zusatzzeilen>=
drucklaengeTHEN seitenwechsel;zeilenzahl:=0;FI ;FOR iFROM 1UPTO
zeilenhilfszahlREP getline(f,zeile);druckzeileschreiben(zeile)PER ;forget(
hilfsdatei,quiet);zeilenzahlINCR zeilenhilfszahlEND PROC
hilfsdateiindruckdatei;END PACKET anschrunterrichtsvertlgfuerlehrer
|