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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
|
PACKET anschrmitteilungenneuangemeldeteundabgemeldeteDEFINES
mitteilungeingang,mitteilungende,mitteilungneuangstarten,
mitteilungabmeldungstarten,sonderwertemitteilungabmeldung,
sonderwertemitteilungneuangmithjd,sonderwertemitteilungneuangmitdiffd,
dummystop:LET laufenderbestand="ls";LET bestandfuerabgang="c02 abgang",
bestandfuerabschluss="c02 abschluss";LET swaktuelleshalbjahr=509,
sweintrittsdatum=512,swabgangsdatum=512,swschuelername=513,swgeburtsdatum=514
,swabgangsgrund=515,swstrhausnr=516,swerreichterabschluss=516,swplzort=517,
swtelephonnr=518,swaktjgst=519,swklassenlehrer=520,#swbafoeg=521,dr05.03.88#
swkursanfang=530,swfelderunterschrnoteentlbuecher=591,swmatrixfeld=590;INT
VAR swkurse,eingabestatus;TEXT VAR aktuellejgst,tutorlehrer,abglangtext,
abslangtext;TEXT VAR aktuelleshalbjahr:="",aktuellesschuljahr:="",
schuljahranfang:="",schuljahrende:="";LET textschulhalbjahr="Schulhalbjahr",
textschuljahr="Schuljahr",textschuljahranfang="Anfang Schulhalbjahr",
textschuljahrende="Ende Schulhalbjahr";BOOL VAR hjdvorhanden,abmeldung:=
FALSE ,schuelergefunden;LET jgst09="09",jgst10="10";LET maske="ms mitteilung"
;LET namefeldnr=2,rufnamefeldnr=3,geburtsdatumfeldnr=4,bildschirmfeldnr=5,
druckerfeldnr=6;LET father=1;LET wartemeldnr=69,existiertnichtmeldnr=126,
falschesdatum=192,datumfehler=157,fehlermeldnr=56;TEXT VAR familienname,
rufname,geburtsdatum;BOOL VAR zeigen;BOOL VAR erstemitteilung:=TRUE ;LET
vordruckmithjd="vordruck mitteilung ueber eine anmeldung mit hjd",
vordruckmitdiffd="vordruck mitteilung ueber eine anmeldung mit diffd",
vordruckabmeldung="vordruck mitteilung ueber eine abmeldung";LET
maxanzahlbelegtekurse=15,anzahlkurskomponenten=4;ROW maxanzahlbelegtekurse
ROW anzahlkurskomponentenTEXT VAR kursdaten;LET lerngruppenindex=1,
fachlangtextindex=2,lehrerindex=3,fachschluesselindex=4;LET
indexdiffdatenbeschreibung=1,indexdiffdatenschluessel=2;INT VAR
anzahlderfaecher:=1,anzahlderbelegtenkurse:=0,anzahlderdiffdaten:=0;INT VAR
zaehler,zaehler1,zaehler2;TEXT VAR fachkuerzel;LET weiblich="w",maennlich="m"
,anredeweibl="Fr.",anredemaennl="Hr.",erstehalbj="1",auszufuellendesfeld=
"___________________________",trennsymbol=" ",punkt=".",niltext="",nildatum=
"01.01.00",textwahlpflichtfach="Wahlpflichtf. ";TEXT CONST
auszufuellendefelderunterschrnoteentlbuecher:="__________ ____ ________";
TEXT CONST auszufuellendesfeldlehrer:="____________________________________ "
;TEXT CONST matrixfeld:="_______ "+auszufuellendesfeldlehrer+
auszufuellendefelderunterschrnoteentlbuecher;LET maxanzahlderfaecher=100;ROW
maxanzahlderfaecherROW 2TEXT VAR faecherkartei;LET karteifachschluesselindex=
1,karteifachlangtext=2;LET anzstacktupel=25;PROC initialisierekursdaten:FOR
zaehler1FROM 1UPTO maxanzahlbelegtekurseREP FOR zaehler2FROM 1UPTO
anzahlkurskomponentenREP kursdaten(zaehler1)(zaehler2):=niltextPER PER END
PROC initialisierekursdaten;PROC holekursdaten:INT VAR i;
anzahlderbelegtenkurse:=length(wert(fnrhjdfach))DIV 2;FOR iFROM 1UPTO
anzahlderbelegtenkurseREP fachkuerzel:=subtext(wert(fnrhjdfach),i*2-1,i*2);
kursdaten(i)(fachschluesselindex):=compress(fachkuerzel);kursdaten(i)(
lerngruppenindex):=fachkuerzel+trennsymbol+subtext(wert(fnrhjdlerngrpkenn),i*
4-3,i*4);PER ;END PROC holekursdaten;PROC suchelangtextzufachschluessel(INT
VAR anzahlderschluessel):INT VAR i;FOR iFROM 1UPTO anzahlderschluesselREP
zaehler:=0;REP zaehlerINCR 1UNTIL zaehler>anzahlderfaecherCOR faecherkartei(
zaehler)(karteifachschluesselindex)=kursdaten(i)(fachschluesselindex)PER ;IF
faecherkartei(zaehler)(karteifachschluesselindex)=kursdaten(i)(
fachschluesselindex)THEN kursdaten(i)(fachlangtextindex):=faecherkartei(
zaehler)(karteifachlangtext);FI PER ;END PROC suchelangtextzufachschluessel;
PROC zuordnunglerngruppelehrer:INT VAR i;anzahlderbelegtenkurse:=length(wert(
fnrhjdfach))DIV 2;FOR iFROM 1UPTO anzahlderbelegtenkurseREP kursdaten(i)(
lehrerindex):=lehrerzukurs(subtext(wert(fnrhjdfach),i*2-1,i*2),i)PER ;END
PROC zuordnunglerngruppelehrer;TEXT PROC lehrerzukurs(TEXT CONST fachkuerzel,
INT CONST wievielte):INT VAR i:=wievielte;suchelerngruppe;IF dbstatus=okTHEN
suchelehrerELSE auszufuellendesfeldlehrerFI .suchelerngruppe:putwert(fnrlvsj,
wert(fnrhjdsj));putwert(fnrlvhj,wert(fnrhjdhj));putwert(fnrlvfachkennung,
fachkuerzel+compress(subtext(wert(fnrhjdlerngrpkenn),i*4-3,i*4)));putwert(
fnrlvjgst,wert(fnrhjdjgst));search(dnrlehrveranstaltungen,TRUE ).suchelehrer:
putwert(dnrlehrer+1,wert(fnrlvparaphe));search(dnrlehrer,TRUE );IF dbstatus<>
okTHEN auszufuellendesfeldlehrerELSE kompletteanredeFI .kompletteanrede:text(
anrede+lehrertitel+lehrerzusatz+trennsymbol+wert(fnrlfamname),length(
auszufuellendesfeldlehrer)).anrede:IF wert(fnrlgeschlecht)=weiblichTHEN
anredeweiblELIF wert(fnrlgeschlecht)=maennlichTHEN anredemaennlELSE niltext
FI .lehrertitel:IF wert(fnrlamtsbeztitel)=niltextTHEN niltextELSE trennsymbol
+wert(fnrlamtsbeztitel)FI .lehrerzusatz:IF wert(fnrlzusatz)=niltextTHEN
niltextELSE trennsymbol+wert(fnrlzusatz)FI .ENDPROC lehrerzukurs;PROC
sonderwertfueradressaten:adressat((wert(fnrsurufnames)SUB 1)+punkt+
trennsymbol+wert(fnrsufamnames))END PROC sonderwertfueradressaten;PROC
sonderwerteallgschuelerdaten:IF wert(fnrsunamenszusatzs)<>niltextTHEN
setzesonderwert(swschuelername,wert(fnrsurufnames)+trennsymbol+wert(
fnrsunamenszusatzs)+trennsymbol+wert(fnrsufamnames))ELSE setzesonderwert(
swschuelername,wert(fnrsurufnames)+trennsymbol+wert(fnrsufamnames))FI ;
setzesonderwert(swgeburtsdatum,wert(fnrsugebdatums));END PROC
sonderwerteallgschuelerdaten;PROC
sonderwerteschuelerdatenfueranmeldebestaetigung:sonderwerteallgschuelerdaten;
setzesonderwert(swstrhausnr,wert(fnrsustrnrs));setzesonderwert(swplzort,wert(
fnrsuplzorts));setzesonderwert(swtelephonnr,wert(fnrsutelnrs));END PROC
sonderwerteschuelerdatenfueranmeldebestaetigung;PROC sonderwertfueraktjgst:
aktuellejgst:=wert(fnrsusgrpjgst)+wert(fnrsusgrpjgst+1);setzesonderwert(
swaktjgst,aktuellejgst);END PROC sonderwertfueraktjgst;PROC
sonderwertfuerklassenlehrer:sucheklassenlehrer;IF dbstatus=okTHEN IF wert(
fnrlgeschlecht)=weiblichTHEN tutorlehrer:=anredeweibl+trennsymbolELIF wert(
fnrlgeschlecht)=maennlichTHEN tutorlehrer:=anredemaennl+trennsymbolELSE
tutorlehrer:=niltextFI ;IF wert(fnrlzusatz)<>niltextTHEN tutorlehrer:=
tutorlehrer+wert(fnrlzusatz)+trennsymbolFI ;setzesonderwert(swklassenlehrer,
text(tutorlehrer+wert(fnrlfamname),37));FI .sucheklassenlehrer:
sucheschuelergruppe;suchelehrer.sucheschuelergruppe:putwert(fnrsgrpsj,
aktuellesschuljahr);putwert(fnrsgrphj,aktuelleshalbjahr);putwert(fnrsgrpjgst,
wert(fnrsusgrpjgst));putwert(fnrsgrpkennung,wert(fnrsusgrpzugtut));search(
dnraktschuelergruppen,TRUE ).suchelehrer:inittupel(dnrlehrer);IF dbstatus=ok
THEN putwert(fnrlparaphe,wert(fnrsgrplehrer));search(dnrlehrer,TRUE )FI .END
PROC sonderwertfuerklassenlehrer;PROC bildefaecherbestand:
initialisierefaecherkartei;vorbereitung;leseschleife.
initialisierefaecherkartei:FOR zaehler1FROM 1UPTO maxanzahlderfaecherREP FOR
zaehler2FROM 1UPTO karteifachlangtextREP faecherkartei(zaehler1)(zaehler2):=
niltextPER PER .vorbereitung:BOOL VAR wenigergelesen:=FALSE ;INT VAR anztupel
;inittupel(dnrfaecher);anztupel:=anzstacktupel;anzahlderfaecher:=0;
multisearchforward(dnrfaecher,anztupel);evtweniger.leseschleife:WHILE
anztupel>0CAND anzahlderfaecher<=maxanzahlderfaecherREP anzahlderfaecherINCR
1;anztupelDECR 1;multisucc;faecherkartei(anzahlderfaecher)(1):=wert(
dnrfaecher+1);faecherkartei(anzahlderfaecher)(2):=wert(dnrfaecher+2);IF
anztupel=0CAND NOT wenigergelesenTHEN anztupel:=anzstacktupel;multisucc(
dnrfaecher,anztupel);evtwenigerFI PER .evtweniger:IF anztupel<anzstacktupel
THEN wenigergelesen:=TRUE FI .END PROC bildefaecherbestand;PROC
mitteilungeingang:standardvproc(maske);IF erstemitteilungTHEN
bildefaecherbestand;erstemitteilung:=FALSE FI ;END PROC mitteilungeingang;
PROC mitteilungende:erstemitteilung:=TRUE ;enter(2)END PROC mitteilungende;
BOOL PROC sonderwertemitteilungneuangmithjd:initialisierekursdaten;
initialisieresonderwerte;sonderwertfueradressaten;
sonderwertfuereintrittsdatum;sonderwerteschuelerdatenfueranmeldebestaetigung;
sonderwertfueraktjgst;bestimmekurse;sonderwertfuerklassenlehrer;
sonderwertefuerkurse;TRUE .sonderwertfuereintrittsdatum:setzesonderwert(
sweintrittsdatum,wert(fnrsueintrittsdats)).bestimmekurse:holekursdaten;
suchelangtextzufachschluessel(anzahlderbelegtenkurse);
zuordnunglerngruppelehrer;.sonderwertefuerkurse:swkurse:=swkursanfang;FOR
zaehler1FROM 1UPTO anzahlderbelegtenkurseREP setzesonderwert(swkurse,
kursdaten(zaehler1)(lerngruppenindex));swkurseINCR 1;setzesonderwert(swkurse,
kursdaten(zaehler1)(fachlangtextindex));swkurseINCR 1;setzesonderwert(swkurse
,kursdaten(zaehler1)(lehrerindex));swkurseINCR 1;PER .END PROC
sonderwertemitteilungneuangmithjd;BOOL PROC
sonderwertemitteilungneuangmitdiffd:initialisierekursdaten;
initialisieresonderwerte;sonderwertfueradressaten;
sonderwertfuereintrittsdatum;sonderwerteschuelerdatenfueranmeldebestaetigung;
sonderwertfueraktjgst;bestimmediffdaten;sonderwertfuerklassenlehrer;
sonderwertefuerdiffdaten;TRUE .sonderwertfuereintrittsdatum:setzesonderwert(
sweintrittsdatum,wert(fnrsueintrittsdats)).bestimmediffdaten:
anzahlderdiffdaten:=0;ermittlediefremdsprachen;
ueberpruefeobreligionsteilnahme;ueberpruefeobkunstodermusik;IF wert(
fnrsusgrpjgst)=jgst09THEN ermittlewp09FI ;IF wert(fnrsusgrpjgst)=jgst10THEN
ermittlewp10FI ;ermittleags.ermittlediefremdsprachen:INT VAR
anzahlderbelegtenfremdsprachen:=1;INT VAR wievieltesprache:=0;REP fachkuerzel
:=wert(fnrdd1fremdfach+wievieltesprache);IF fachkuerzel<>niltextTHEN
anzahlderdiffdatenINCR 1;kursdaten(anzahlderdiffdaten)(
indexdiffdatenbeschreibung):=text(anzahlderbelegtenfremdsprachen)+
". Fremdsprache:";anzahlderbelegtenfremdsprachenINCR 1;kursdaten(
anzahlderdiffdaten)(indexdiffdatenschluessel):=fachkuerzel;FI ;
wievieltespracheINCR 3UNTIL (fnrdd1fremdfach+wievieltesprache)>fnrdd4fremde
PER .ueberpruefeobreligionsteilnahme:IF wert(fnrddreliunter)<>niltextCAND (
wert(fnrddreliunter+1)=nildatum)OR (wert(fnrddreliunter+1)<>nildatumAND wert(
fnrddreliunter+2)<>nildatum)THEN anzahlderdiffdatenINCR 1;kursdaten(
anzahlderdiffdaten)(indexdiffdatenbeschreibung):="Religion:";kursdaten(
anzahlderdiffdaten)(indexdiffdatenschluessel):=wert(fnrddreliunter)FI .
ueberpruefeobkunstodermusik:IF wert(fnrddkunstmusik)<>niltextTHEN
anzahlderdiffdatenINCR 1;kursdaten(anzahlderdiffdaten)(
indexdiffdatenbeschreibung):="Kunst/Musik:";kursdaten(anzahlderdiffdaten)(
indexdiffdatenschluessel):=wert(fnrddkunstmusik)FI .ermittlewp09:TEXT VAR txt
;IF erstehalbjahrTHEN txt:=textwahlpflichtfach+"09.1:";wps(fnrddfach091a,
anzahlderdiffdaten,txt);wps(fnrddfach091b,anzahlderdiffdaten,txt)ELSE txt:=
textwahlpflichtfach+"09.2:";wps(fnrddfach092a,anzahlderdiffdaten,txt);wps(
fnrddfach092b,anzahlderdiffdaten,txt)FI .ermittlewp10:IF erstehalbjahrTHEN
txt:=textwahlpflichtfach+"10.1:";wps(fnrddfach101a,anzahlderdiffdaten,txt);
wps(fnrddfach101b,anzahlderdiffdaten,txt);ELSE txt:=textwahlpflichtfach+
"10.2:";wps(fnrddfach102a,anzahlderdiffdaten,txt);wps(fnrddfach102b,
anzahlderdiffdaten,txt)FI .erstehalbjahr:erstehalbj=sonderwert(
swaktuelleshalbjahr).ermittleags:INT VAR wievielteag:=0;REP fachkuerzel:=wert
(fnrddagthema1+wievielteag);IF fachkuerzel<>niltextTHEN anzahlderdiffdaten
INCR 1;kursdaten(anzahlderdiffdaten)(indexdiffdatenbeschreibung):="AG:";
kursdaten(anzahlderdiffdaten)(indexdiffdatenschluessel):=fachkuerzel;FI ;
wievielteagINCR 3#2#UNTIL (fnrddagthema1+wievielteag)>fnrddagthema3PER .
sonderwertefuerdiffdaten:swkurse:=swkursanfang;FOR zaehler1FROM 1UPTO
anzahlderdiffdatenREP FOR zaehler2FROM 1UPTO indexdiffdatenschluesselREP
setzesonderwert(swkurse,kursdaten(zaehler1)(zaehler2));swkurseINCR 1PER PER .
END PROC sonderwertemitteilungneuangmitdiffd;PROC wps(INT CONST fnr,INT VAR
anzahlderdiffdaten,TEXT CONST txt):IF wert(fnr)<>niltextTHEN
anzahlderdiffdatenINCR 1;kursdaten(anzahlderdiffdaten)(
indexdiffdatenbeschreibung):=txt;kursdaten(anzahlderdiffdaten)(
indexdiffdatenschluessel):=wert(fnr)FI ENDPROC wps;BOOL PROC
sonderwertemitteilungabmeldung:initialisierekursdaten;
initialisieresonderwerte;sonderwertezumaufbaueinermatrix;
sonderwertfueradressaten;sonderwerteallgschuelerdaten;
abgangsdatumundabgangsgrund;sonderwertfueraktjgst;
sonderwertefuerkursebeimabgang;sonderwertfuerklassenlehrer;
sonderwertfuerabgangsgrundundabschluss;TRUE .abgangsdatumundabgangsgrund:
TEXT VAR abgdatum:=wert(fnrsuabgdats);IF abgdatum=nildatumTHEN abgdatum:=""
FI ;setzesonderwert(swabgangsdatum,abgdatum);TEXT VAR abgkuerzel:=wert(
fnrsuabggrund);TEXT VAR abskuerzel:=wert(fnrsuabschluss);.
sonderwertfuerabgangsgrundundabschluss:IF langtextgefunden(
bestandfuerabschluss,abskuerzel,abslangtext)THEN setzesonderwert(
swerreichterabschluss,abslangtext)ELSE setzesonderwert(swerreichterabschluss,
auszufuellendesfeld)FI ;IF langtextgefunden(bestandfuerabgang,abgkuerzel,
abglangtext)THEN setzesonderwert(swabgangsgrund,abglangtext)ELSE
setzesonderwert(swabgangsgrund,auszufuellendesfeld)FI .
sonderwertefuerkursebeimabgang:IF hjdvorhandenTHEN holekursdaten;
zuordnunglerngruppelehrer;swkurse:=swkursanfangELSE anzahlderbelegtenkurse:=0
FI ;FOR zaehler1FROM 1UPTO anzahlderbelegtenkurseREP setzesonderwert(swkurse,
plusanhang(kursdaten(zaehler1)(fachschluesselindex),subtext(wert(
fnrhjdlerngrpkenn),zaehler1*4-3,zaehler1*4)));swkurseINCR 1;setzesonderwert(
swkurse,kursdaten(zaehler1)(lehrerindex));swkurseINCR 1PER .
sonderwertezumaufbaueinermatrix:setzesonderwert(
swfelderunterschrnoteentlbuecher,auszufuellendefelderunterschrnoteentlbuecher
);setzesonderwert(swmatrixfeld,matrixfeld).END PROC
sonderwertemitteilungabmeldung;TEXT PROC plusanhang(TEXT CONST t,t2):text(t,3
)+text(t2,5)ENDPROC plusanhang;BOOL PROC langtextgefunden(TEXT CONST bestand,
kuerzel,TEXT VAR lang):systemdboff;putwert(fnrschlsachgebiet,bestand);putwert
(fnrschlschluessel,kuerzel);search(dnrschluessel,TRUE );lang:=wert(
fnrschllangtext);dbstatus=okENDPROC langtextgefunden;PROC lesemaskenwerte:
familienname:=standardmaskenfeld(namefeldnr);rufname:=standardmaskenfeld(
rufnamefeldnr);geburtsdatum:=standardmaskenfeld(geburtsdatumfeldnr);zeigen:=
standardmaskenfeld(bildschirmfeldnr)<>niltextEND PROC lesemaskenwerte;PROC
ermittledievorliegendendaten:standardmeldung(wartemeldnr,niltext);IF
aktuelleshalbjahr=""THEN aktuelleshalbjahr:=schulkenndatum(textschulhalbjahr)
;aktuellesschuljahr:=schulkenndatum(textschuljahr);FI ;
uebernimmschluesselwerte;search(ixsustatfamrufgeb,FALSE );schuelergefunden:=(
dbstatus=ok)CAND (wert(fnrsufamnames)=familienname)CAND (wert(fnrsurufnames)=
rufnameCOR rufname="")CAND (wert(fnrsugebdatums)=datumskonversion(
geburtsdatum)COR geburtsdatum="");IF schuelergefundenCAND abmeldungCAND
falschesabmelddatumTHEN schuelergefunden:=FALSE ;meldefalschesdatum;
zurueckzumdialogELSE weiterverarbeitungFI .falschesabmelddatum:IF
schuljahranfang=""THEN schuljahranfang:=schulkenndatum(textschuljahranfang);
schuljahrende:=schulkenndatum(textschuljahrende)FI ;NOT ((date(wert(
fnrsuabgdats))>=date(schuljahranfang))CAND (date(wert(fnrsuabgdats))<=date(
schuljahrende))).weiterverarbeitung:IF schuelergefundenTHEN
halbjahresdatenholen;ueberpruefeobkursdatenvorliegen;IF NOT hjdvorhandenTHEN
diffdatenholenFI ELSE meldeschuelerexistiertnicht;zurueckzumdialogFI .
halbjahresdatenholen:inittupel(dnrhalbjahresdaten);TEXT VAR tidhjddaten:=wert
(fnrsutidakthjd);readtid(dnrhalbjahresdaten,tidhjddaten).diffdatenholen:
inittupel(dnrdiffdaten);TEXT VAR tiddiffdaten:=wert(fnrsutiddiffdaten);
readtid(dnrdiffdaten,tiddiffdaten).meldeschuelerexistiertnicht:
standardmeldung(existiertnichtmeldnr,niltext).meldefalschesdatum:
standardmeldung(falschesdatum,niltext).ueberpruefeobkursdatenvorliegen:
hjdvorhanden:=dbstatus=okCAND wert(fnrhjdfach)<>"".zurueckzumdialog:return(
father).END PROC ermittledievorliegendendaten;PROC uebernimmschluesselwerte:
putwert(fnrsustatuss,laufenderbestand);putwert(fnrsufamnames,familienname);
putwert(fnrsurufnames,rufname);putwert(fnrsugebdatums,datumskonversion(
geburtsdatum))ENDPROC uebernimmschluesselwerte;PROC mitteilungneuangstarten:
reinitparsing;lesemaskenwerte;IF NOT (wahldruckeroderbildschirmok)THEN
meldedenfehler;zurueckzumdialogELSE IF (schluesselmitdatum)AND (NOT (datumok)
)THEN meldefehlerbeidatum;zurueckzumdialogELSE IF (schluesselmitdatumXOR
schluesselohnedatumok)THEN neuangemeldeteweiterELSE meldedenfehler;
zurueckzumdialogFI ;FI ;FI .neuangemeldeteweiter:abmeldung:=FALSE ;
ermittledievorliegendendaten;IF schuelergefundenTHEN
initialisieredruckerfuermitteilung;IF hjdvorhandenTHEN anschreibenstart(
ixsustatfamrufgeb,vordruckmithjd,zeigen,TRUE ,BOOL PROC
sonderwertemitteilungneuangmithjd,BOOL PROC dummystop)ELSE anschreibenstart(
ixsustatfamrufgeb,vordruckmitdiffd,zeigen,TRUE ,BOOL PROC
sonderwertemitteilungneuangmitdiffd,BOOL PROC dummystop)FI ;FI ;.END PROC
mitteilungneuangstarten;PROC meldedenfehler:standardmeldung(fehlermeldnr,
niltext)END PROC meldedenfehler;PROC zurueckzumdialog:return(father)END PROC
zurueckzumdialog;BOOL PROC wahldruckeroderbildschirmok:standardmaskenfeld(
bildschirmfeldnr)<>niltextXOR standardmaskenfeld(druckerfeldnr)<>niltextEND
PROC wahldruckeroderbildschirmok;BOOL PROC schluesselmitdatum:familienname<>
niltextAND rufname<>niltextAND geburtsdatum<>niltextEND PROC
schluesselmitdatum;BOOL PROC schluesselohnedatumok:familienname<>niltextAND
geburtsdatum=niltextEND PROC schluesselohnedatumok;BOOL PROC datumok:
standardpruefe(6,6,0,0,niltext,eingabestatus);IF NOT (eingabestatus=0)THEN
FALSE ELSE TRUE FI END PROC datumok;PROC meldefehlerbeidatum:standardmeldung(
datumfehler,niltext)END PROC meldefehlerbeidatum;PROC
mitteilungabmeldungstarten:reinitparsing;lesemaskenwerte;IF NOT (
wahldruckeroderbildschirmok)THEN meldedenfehler;zurueckzumdialogELSE IF (
schluesselmitdatum)AND (NOT (datumok))THEN meldefehlerbeidatum;
zurueckzumdialogELSE IF (schluesselmitdatumXOR schluesselohnedatumok)THEN
abgemeldeteweiterELSE meldedenfehler;zurueckzumdialogFI ;FI ;FI .
abgemeldeteweiter:abmeldung:=TRUE ;ermittledievorliegendendaten;IF
schuelergefundenTHEN initialisieredruckerfuermitteilung;anschreibenstart(
ixsustatfamrufgeb,vordruckabmeldung,zeigen,TRUE ,BOOL PROC
sonderwertemitteilungabmeldung,BOOL PROC dummystop)FI .END PROC
mitteilungabmeldungstarten;BOOL PROC dummystop:TRUE ENDPROC dummystop;END
PACKET anschrmitteilungenneuangemeldeteundabgemeldete;
|