summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.auskunft.betroffene
blob: bfa245dfdf9b6f965e1b68ea7fc5bb74f18e1f99 (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
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
PACKET auskbetroffenDEFINES auskbetroffeneingang,auskbetroffenstarten,
auskbetroffensonderwerte:TEXT VAR schuelerschluessel1,schuelerschluessel2,
schuelerschluessel3;LET swiort=511,swiwohntbei=512,swilangtextortsteil=513,
swilangtexterzber=514,swiorterzber=515,swilangtextstaatsan=516,
swilangtextsprache=517,swilangtextspaetaus=518,swilangtextgeschl=519,
swilangtextrelizug=520,swilangtextrelizeugnis=521,swiortletzteschule=522,
swilangtextschulform=523,swiaufbschuljeintrsek2=524,swilangtextzugang=525,
swilangtextabgang=526,swilangtextabschluss=527,swiortneueschule=528,
swilangtextfremdspr1=537,swiaufbhjafremdspr1=538,swiaufbhjefremdspr1=539,
swilangtextfremdspr2=540,swiaufbhjafremdspr2=541,swiaufbhjefremdspr2=542,
swilangtextfremdspr3=543,swiaufbhjafremdspr3=544,swiaufbhjefremdspr3=545,
swilangtextfremdspr4=546,swiaufbhjafremdspr4=547,swiaufbhjefremdspr4=548,
swilangtextreliunt=549,swilangtextkumu=550,swilangtextwpf191=551,
swilangtextwpf291=552,swilangtextwpf192=553,swilangtextwpf292=554,
swilangtextwpf1101=555,swilangtextwpf2101=556,swilangtextwpf1102=557,
swilangtextwpf2102=558,swilangtextag1=559,swiaufbhjaag1=560,swiaufbhjeag1=561
,swilangtextag2=562,swiaufbhjaag2=563,swiaufbhjeag2=564,swilangtextag3=565,
swiaufbhjaag3=566,swiaufbhjeag3=567,swistrasseerz=568,switelerz=569,
swinameletzte=570,swistrasseletzte=571,swinameneue=572,swistrasseneue=573,
swischulform=582,swilangtextstatus=583;LET suffix1="c02 ortsteil",suffix2=
"c02 verwandtschaft",suffix3="c02 staaten",suffix4="c02 sprachen",suffix5=
"c02 relizugehoerigkeit",suffix6="c02 schulart",suffix7="c02 zugang",suffix8=
"c02 abgang",suffix9="c02 abschluss",suffix12="c02 blauer brief",suffix13=
"c02 bemerkungen",suffix14="c02 versetzung",namefeldnr=2,vornamefeldnr=3,
geburtsdatumfeldnr=4,niltext="",null=0,blank=" ",punkt=".",kla="(",klz=")",
fehlermeld1=56,fehlermeld2=157,wartemeldnr=69,vater=1,maske=
"ms auswahl schueler o. klasse mit bestand";TEXT VAR aktjgsthj;INT VAR 
aktuellesschuljahr,aktuelleshalbjahr,jahr,halbjahr,eingabestatus;INT VAR 
gewindex;BOOL CONST anschreibenzeigen:=FALSE ;PROC auskbetroffeneingang:
standardvproc(maske)END PROC auskbetroffeneingang;PROC auskbetroffenstarten:
lesemaskenwerte;IF schluesselmitdatumangegebenTHEN IF datumseingabekorrekt
THEN fortfahrenELSE meldungdatumnichtkorrekt;zurueckzumdialogFI ;ELSE IF 
schlüsselohnedatumkorrektTHEN fortfahrenELSE meldungauswahlnichtsinnvoll;
zurueckzumdialogFI ;FI .schluesselmitdatumangegeben:schuelerschluessel1<>
niltextCAND schuelerschluessel2<>niltextCAND schuelerschluessel3<>niltext.
datumseingabekorrekt:standardpruefe(6,4,0,0,niltext,eingabestatus);
eingabestatus=0.schlüsselohnedatumkorrekt:schuelerschluessel3=niltextCAND 
schuelerschluessel1<>niltext.fortfahren:setzemitseitennummern(TRUE );gewindex
:=dnrschueler;startenausfuehren.lesemaskenwerte:schuelerschluessel1:=
standardmaskenfeld(namefeldnr);schuelerschluessel2:=standardmaskenfeld(
vornamefeldnr);schuelerschluessel3:=standardmaskenfeld(geburtsdatumfeldnr).
meldungauswahlnichtsinnvoll:standardmeldung(fehlermeld1,niltext).
meldungdatumnichtkorrekt:standardmeldung(fehlermeld2,niltext).
zurueckzumdialog:return(vater).startenausfuehren:BOOL CONST einzelbearbeitung
:=TRUE ;reinitparsing;standardmeldung(wartemeldnr,niltext);#dr20.08.87#
aktjgsthj:=schulkenndatum("Schulhalbjahr");aktuelleshalbjahr:=int(aktjgsthj);
aktuellesschuljahr:=int(schulkenndatum("Schuljahr"));convertierehalbjahr;
setzesonderwerteschulkenndaten;setzewerte;zusammengesetztesanschreiben(
gewindex,anschreibenzeigen,einzelbearbeitung,BOOL PROC 
auskbetroffensonderwerte,BOOL PROC multistopauskunft,TEXT PROC 
druckdateiauskzusammenstellen).setzewerte:putwert(fnrsufamnames,
schuelerschluessel1);putwert(fnrsurufnames,schuelerschluessel2);putwert(
fnrsugebdatums,datumskonversion(schuelerschluessel3)).convertierehalbjahr:IF 
aktuelleshalbjahr=1THEN jahr:=int(subtext(wert(2),1,2));halbjahr:=2ELSE jahr
:=int(subtext(wert(2),3,4));halbjahr:=1FI .END PROC auskbetroffenstarten;
BOOL PROC auskbetroffensonderwerte:LET nein="n",ja="j",langtextnein="nein",
langtextja="ja";initialisieresonderwerte;holediffdaten;adressat((wert(
fnrsurufnames)SUB 1)+punkt+blank+wert(fnrsufamnames));setzesonderwert(swiort,
wert(fnrsuplzorts));setzesonderwert(swiorterzber,wert(fnrsuplzorte));
setzesonderwert(swistrasseerz,wert(fnrsustrnre));setzesonderwert(switelerz,
wert(fnrsutelnre));sucheadressezurschule(wert(fnrsuskennlschule));
setzesonderwert(swiortletzteschule,wert(fnrschplzort));setzesonderwert(
swischulform,wert(fnrschart));setzesonderwert(swilangtextschulform,langtext(
suffix6,wert(fnrschart)));setzesonderwert(swinameletzte,wert(fnrschname));
setzesonderwert(swistrasseletzte,wert(fnrschstrnr));sucheadressezurschule(
wert(fnrsuskennnschule));setzesonderwert(swiortneueschule,wert(fnrschplzort))
;setzesonderwert(swinameneue,wert(fnrschname));setzesonderwert(swistrasseneue
,wert(fnrschstrnr));setzesonderwert(swiwohntbei,wohntbei);setzesonderwert(
swilangtextgeschl,langtextgeschl);setzesonderwert(swilangtextspaetaus,
langtextspaetaus);setzesonderwert(swilangtextrelizeugnis,langtextrelizeugnis)
;setzesonderwert(swilangtextstatus,langtextstatus);setzesonderwert(
swilangtextortsteil,langtext(suffix1,wert(fnrsuortsteils)));setzesonderwert(
swilangtexterzber,langtext(suffix2,wert(fnrsuverhes)));setzesonderwert(
swilangtextstaatsan,langtext(suffix3,wert(fnrsustaatsangs)));setzesonderwert(
swilangtextsprache,langtext(suffix4,wert(fnrsumuttersprache)));
setzesonderwert(swilangtextrelizug,langtext(suffix5,wert(fnrsureligionsz)));
setzesonderwert(swilangtextzugang,langtext(suffix7,wert(fnrsuartzugang)));
setzesonderwert(swilangtextabgang,langtext(suffix8,wert(fnrsuabggrund)));
setzesonderwert(swilangtextabschluss,langtext(suffix9,wert(fnrsuabschluss)));
setzesonderwert(swilangtextfremdspr1,langtextfach(wert(fnrdd1fremdfach)));
setzesonderwert(swilangtextfremdspr2,langtextfach(wert(fnrdd2fremdfach)));
setzesonderwert(swilangtextfremdspr3,langtextfach(wert(fnrdd3fremdfach)));
setzesonderwert(swilangtextfremdspr4,langtextfach(wert(fnrdd4fremdfach)));
setzesonderwert(swilangtextreliunt,langtextfach(wert(fnrddreliunter)));
setzesonderwert(swilangtextkumu,langtextfach(wert(fnrddkunstmusik)));
setzesonderwert(swilangtextwpf191,langtextfach(wert(fnrddfach091a)));
setzesonderwert(swilangtextwpf291,langtextfach(wert(fnrddfach091b)));
setzesonderwert(swilangtextwpf192,langtextfach(wert(fnrddfach092a)));
setzesonderwert(swilangtextwpf292,langtextfach(wert(fnrddfach092b)));
setzesonderwert(swilangtextwpf1101,langtextfach(wert(fnrddfach101a)));
setzesonderwert(swilangtextwpf2101,langtextfach(wert(fnrddfach101b)));
setzesonderwert(swilangtextwpf1102,langtextfach(wert(fnrddfach102a)));
setzesonderwert(swilangtextwpf2102,langtextfach(wert(fnrddfach102b)));
setzesonderwert(swilangtextag1,langtextfach(wert(fnrddagthema1)));
setzesonderwert(swilangtextag2,langtextfach(wert(fnrddagthema2)));
setzesonderwert(swilangtextag3,langtextfach(wert(fnrddagthema3)));
setzesonderwert(swiaufbschuljeintrsek2,aufbschuljahr(fnrsueintrittinsek));
setzesonderwert(swiaufbhjafremdspr1,aufbhalbjahr(fnrdd1fremdb));
setzesonderwert(swiaufbhjefremdspr1,aufbhalbjahr(fnrdd1fremde));
setzesonderwert(swiaufbhjafremdspr2,aufbhalbjahr(fnrdd2fremdb));
setzesonderwert(swiaufbhjefremdspr2,aufbhalbjahr(fnrdd2fremde));
setzesonderwert(swiaufbhjafremdspr3,aufbhalbjahr(fnrdd3fremdb));
setzesonderwert(swiaufbhjefremdspr3,aufbhalbjahr(fnrdd3fremde));
setzesonderwert(swiaufbhjafremdspr4,aufbhalbjahr(fnrdd4fremdb));
setzesonderwert(swiaufbhjefremdspr4,aufbhalbjahr(fnrdd4fremde));
setzesonderwert(swiaufbhjaag1,aufbhalbjahr(fnrddagthema1b));setzesonderwert(
swiaufbhjeag1,aufbhalbjahr(fnrddagthema1e));setzesonderwert(swiaufbhjaag2,
aufbhalbjahr(fnrddagthema2b));setzesonderwert(swiaufbhjeag2,aufbhalbjahr(
fnrddagthema2e));setzesonderwert(swiaufbhjaag3,aufbhalbjahr(fnrddagthema3b));
setzesonderwert(swiaufbhjeag3,aufbhalbjahr(fnrddagthema3e));TRUE .
holediffdaten:readtid(dnrdiffdaten,zugriff(fnrsutiddiffdaten)).langtextstatus
:IF wert(fnrsustatuss)="n05"THEN geklammert(
"Neuangemeldet zur Jahrgangsstufe 5")ELIF wert(fnrsustatuss)="n011"THEN 
geklammert("Neuangemeldet zu jahrgangsstufe 11")ELIF wert(fnrsustatuss)="nso"
THEN geklammert("Neuangemeldet")ELIF wert(fnrsustatuss)="abg"THEN geklammert(
"Abgegangen")ELIF wert(fnrsustatuss)="ls"THEN geklammert(
"Laufendes Schuljahr")ELSE geklammert("Kein Eintrag")FI .wohntbei:IF wert(
fnrsuwohntbei)=niltextTHEN niltextELSE "bei: "+wert(fnrsuwohntbei)FI .
langtextgeschl:LET weiblich="w",langtextweibl="weiblich",langtextmaennl=
"männlich";IF wert(fnrsugeschlechts)=weiblichTHEN kla+langtextweibl+klzELSE 
kla+langtextmaennl+klzFI .langtextspaetaus:IF wert(fnrsuspaetaus)=neinTHEN 
langtextneinELIF wert(fnrsuspaetaus)=jaTHEN langtextjaELSE niltextFI .
langtextrelizeugnis:IF wert(fnrsureligionsz)=neinTHEN langtextneinELIF wert(
fnrsureligionsz)=jaTHEN langtextjaELSE niltextFI .END PROC 
auskbetroffensonderwerte;PROC sucheadressezurschule(TEXT CONST schulk):
inittupel(dnrschulen);IF schulk<>""THEN putwert(fnrschkennung,schulk);search(
dnrschulen,TRUE );FI ENDPROC sucheadressezurschule;TEXT PROC langtextfach(
TEXT CONST kuerzel):inittupel(dnrfaecher);putwert(dnrfaecher+1,kuerzel);
search(dnrfaecher,TRUE );geklammert(wert(dnrfaecher+2))END PROC langtextfach;
TEXT PROC langtext(TEXT CONST bestand,bemerkungsschluessel):TEXT VAR 
gefundenerlangtext:="";INT VAR bestandsid:=0;putwert(fnrschlsachgebiet,
bestand);putwert(fnrschlschluessel,bemerkungsschluessel);search(dnrschluessel
,TRUE );IF dbstatus=okTHEN gefundenerlangtext:=wert(fnrschllangtext)ELSE 
dbstatus(ok);FI ;geklammert(gefundenerlangtext)END PROC langtext;TEXT PROC 
geklammert(TEXT CONST zuklammern):IF zuklammern=niltextTHEN niltextELSE kla+
zuklammern+klzFI ENDPROC geklammert;TEXT PROC aufbschuljahr(INT CONST dbindex
):LET trenner="/";IF wert(dbindex)=niltextOR wert(dbindex)="0"THEN niltext
ELSE subtext(wert(dbindex),1,2)+trenner+subtext(wert(dbindex),3,4)FI END 
PROC aufbschuljahr;TEXT PROC aufbhalbjahr(INT CONST dbindex):LET trenner=".";
IF wert(dbindex)=niltextTHEN niltextELSE subtext(wert(dbindex),1,2)+trenner+
subtext(wert(dbindex),3,3)FI END PROC aufbhalbjahr;TEXT PROC aufbhalbjahr(
INT CONST dbindex,ae):LET trenner=".";TEXT VAR hj:=subtext(wert(dbindex),(ae*
3)-2,ae*3);IF hj=niltextTHEN niltextELSE subtext(hj,1,2)+trenner+subtext(hj,3
,3)FI END PROC aufbhalbjahr;TEXT PROC druckdateiauskzusammenstellen:LET 
prevordruck="vordruck",postvordruck=" auskunft betroffene",vordruck1=
"vordruck1 auskunft betroffene",vordruck2="vordruck2 auskunft betroffene",
vordruck3="vordruck3 auskunft betroffene",vordruck4=
"vordruck4 auskunft betroffene",vordruck5="vordruck5 auskunft betroffene",
anzvordrucke=5,hilfsdatei1="hilfsdatei1",hilfsdatei2="hilfsdatei2",
hilfsdateikopf="hilfsdatei kopf",druckdatei="liste.1",manager=
"anschreiben server";INT VAR i,zeilenanz1,zeilenanz2,zeilenanzkopf,anzhj;
TEXT VAR zeile,schuljahr;INT VAR neuesschuljahr;FILE VAR f,g,kopfspeicher;
aktuellevordruckevommanagerholen;druckvorbereiten;
allgemeineschuelerdatenindiedruckdateischreiben;
halbjahresdatendesschuelersindiedruckdateischreiben;
letztehilfsdateiindruckdateibringen;drucknachbereitenohneausdrucken;
druckdatei.aktuellevordruckevommanagerholen:FOR iFROM 1UPTO anzvordruckeREP 
forget(prevordruck+text(i)+postvordruck,quiet);fetch(prevordruck+text(i)+
postvordruck,/manager)PER .allgemeineschuelerdatenindiedruckdateischreiben:
briefalternative(vordruck1,hilfsdatei1);f:=sequentialfile(input,hilfsdatei1);
#limit(75);##"unerklärliche"Z eilenumbrüche#maxlinelength(f,75);zeilenanz1:=
lines(f);FOR iFROM 1UPTO zeilenanz1REP getline(f,zeile);druckzeileschreiben(
zeile)PER ;seitenwechsel;forget(hilfsdatei1,quiet);briefalternative(vordruck2
,hilfsdatei1);vordruck2merkenfuerfolgeseiten;briefalternative(vordruck3,
hilfsdatei1);f:=sequentialfile(output,hilfsdatei1);zeilenanz1:=lines(f).
halbjahresdatendesschuelersindiedruckdateischreiben:bestimme5teshjvor;lesehjd
;WHILE (dbstatus=ok)CAND gleicherschuelerREP initialisieresonderwerte;
alteanweisungsfolge;succ(dnrhalbjahresdaten);PER .bestimme5teshjvor:anzhj:=-5
;bestimmeentsprechendesschuljahr.bestimmeentsprechendesschuljahr:IF anzhj<0
THEN anzhj:=anzhj*-1;neuesschuljahr:=jahr-(anzhjDIV 2);IF (anzhjMOD 2)=0CAND 
halbjahr=2THEN schuljahr:=text(neuesschuljahr)+text(neuesschuljahr+1);ELSE 
schuljahr:=text(neuesschuljahr-1)+text(neuesschuljahr);FI ELSE neuesschuljahr
:=jahr+(anzhjDIV 2)+anzhjMOD 2;IF ((anzhjMOD 2)=1CAND halbjahr=2)COR (
halbjahr=1)THEN schuljahr:=text(neuesschuljahr-1)+text(neuesschuljahr);ELSE 
schuljahr:=text(neuesschuljahr)+text(neuesschuljahr+1);FI FI .lesehjd:
inittupel(dnrhalbjahresdaten);uebernehmenschuelerdaten;search(
dnrhalbjahresdaten,FALSE ).uebernehmenschuelerdaten:putwert(fnrhjdfamnames,
wert(fnrsufamnames));putwert(fnrhjdrufnames,wert(fnrsurufnames));putwert(
fnrhjdgebdats,wert(fnrsugebdatums));putwert(fnrhjdsj,schuljahr);putintwert(
fnrhjdhj,neueshalbjahr);.neueshalbjahr:IF aktuelleshalbjahr=1THEN 2ELSE 1FI .
gleicherschueler:wert(fnrhjdfamnames)=wert(fnrsufamnames)CAND wert(
fnrhjdrufnames)=wert(fnrsurufnames)CAND wert(fnrhjdgebdats)=wert(
fnrsugebdatums).alteanweisungsfolge:teil1hjdaufbereiten(vordruck4,hilfsdatei2
);aufbereitetedatenunterbringen;teil2hjdaufbereiten(vordruck5,hilfsdatei2);
aufbereitetedatenunterbringen;.vordruck2merkenfuerfolgeseiten:copy(
hilfsdatei1,hilfsdateikopf);kopfspeicher:=sequentialfile(input,hilfsdateikopf
);zeilenanzkopf:=lines(kopfspeicher).aufbereitetedatenunterbringen:g:=
sequentialfile(input,hilfsdatei2);#limit(75);##"unerklärliche"Z eilenumbrüche
#maxlinelength(g,75);zeilenanz2:=lines(g);IF zeilenanz1+zeilenanz2>
drucklaengeTHEN hilfsdatei1indruckdateibringenundloeschen;seitenwechsel;
vordruckkopfnachhilfsdatei1;zeilenanz1:=zeilenanz2+zeilenanzkopf;ELSE 
zeilenanz1:=zeilenanz1+zeilenanz2;FI ;hilfsdatei2nachhilfsdatei1undloeschen;.
hilfsdatei1indruckdateibringenundloeschen:input(f);FOR iFROM 1UPTO zeilenanz1
REP getline(f,zeile);druckzeileschreiben(zeile);PER ;forget(hilfsdatei1,quiet
).vordruckkopfnachhilfsdatei1:f:=sequentialfile(output,hilfsdatei1);input(
kopfspeicher);FOR iFROM 1UPTO zeilenanzkopfREP getline(kopfspeicher,zeile);
putline(f,zeile)PER .hilfsdatei2nachhilfsdatei1undloeschen:FOR iFROM 1UPTO 
zeilenanz2REP getline(g,zeile);putline(f,zeile)PER ;forget(hilfsdatei2,quiet)
.letztehilfsdateiindruckdateibringen:input(f);FOR iFROM 1UPTO zeilenanz1REP 
getline(f,zeile);druckzeileschreiben(zeile)PER ;forget(hilfsdateikopf,quiet);
forget(hilfsdatei1,quiet).END PROC druckdateiauskzusammenstellen;PROC 
teil1hjdaufbereiten(TEXT CONST vordruck,hilfsdatei):LET wiederholung=
"     Wiederholung",zuwiederholen="     zu wiederholen",wirdwiederholt=
"     wird wiederholt",swiaufbschuljahr=511,swiwarnung1=512,swibemnr1=513,
swilangtextbemnr1=514,swiwarnung2=515,swibemnr2=516,swilangtextbemnr2=517,
swiversetzung=518,swilangtextversetzung=519,swistartnachpruefungen=520,
swinotenachpruef=527,swistartzeugnisbemerk=528,swistartversaeumtverspaetet=
534,swilangtextbemerknachpruefung=537;INT VAR hilfsindex,i,swi;TEXT VAR wie;
wie:=wert(fnrhjdversetzung);setzesonderwert(swiaufbschuljahr,aufbschuljahr(
fnrhjdsj));setzesonderwert(swiwarnung1,wert(fnrhjdvermblau));setzesonderwert(
swibemnr1,wert(fnrhjdbemblau));setzesonderwert(swilangtextbemnr1,langtext(
suffix12,wert(fnrhjdbemblau)));setzesonderwert(swiwarnung2,wert(
fnrhjdvermnachwarn));setzesonderwert(swibemnr2,wert(fnrhjdbemnachwarn));
setzesonderwert(swilangtextbemnr2,langtext(suffix13,wert(fnrhjdbemnachwarn)))
;setzesonderwert(swiversetzung,wert(fnrhjdversetzung));setzesonderwert(
swilangtextversetzung,langtext(suffix14,wert(fnrhjdversetzung)));
setzesonderwert(swilangtextbemerknachpruefung,langtext("Bemerkungen",
geklammert(wert(fnrhjdbemnach))));swi:=swistartnachpruefungen;FOR iFROM 1
UPTO 3REP setzesonderwert(swi,wert(fnrhjdnachfach1+i-1));swiINCR 1;
setzesonderwert(swi,langtextfach(wert(fnrhjdnachfach1+i-1)));swiINCR 1;
hilfsindexINCR 1PER ;setzesonderwert(swi,wert(fnrhjdnachfach));
setzesonderwert(swinotenachpruef,wert(fnrhjdnacherg));swi:=
swistartzeugnisbemerk;FOR iFROM 1UPTO 3REP setzesonderwert(swi,wert(
fnrhjdbemzeug1+i-1));swiINCR 1;setzesonderwert(swi,langtext(suffix13,wert(
fnrhjdbemzeug1+i-1)));swiINCR 1;hilfsindexINCR 1PER ;swi:=
swistartversaeumtverspaetet;FOR iFROM 1UPTO 3REP setzesonderwert(swi,wert(
fnrhjdversstdm+i-1));swiINCR 1;hilfsindexINCR 1PER ;briefalternative(vordruck
,hilfsdatei).END PROC teil1hjdaufbereiten;PROC teil2hjdaufbereiten(TEXT 
CONST vordruck,hilfsdatei):LET swifach=538,swiart=539,swiklau=541,swiknr=542,
swiwarn=543,swinote=544,swibem=545;setzesonderwert(swifach,aufbereiteterwert(
fnrhjdfach,2));setzesonderwert(swiart,aufbereiteterwert(fnrhjdkursart,2));
setzesonderwert(swiklau,aufbereiteterwert(fnrhjdklausurteiln,1));
setzesonderwert(swiknr,aufbereiteterwert(fnrhjdlerngrpkenn,4));
setzesonderwert(swiwarn,aufbereiteterwert(fnrhjdvermwarnung,1));
setzesonderwert(swinote,aufbereiteterwert(fnrhjdnotepunkte,2));
setzesonderwert(swibem,aufbereiteterwert(fnrhjdbemerk,3));fuellebemerkungen;
briefalternative(vordruck,hilfsdatei).fuellebemerkungen:LET kuerzelbreite=3;
INT VAR i,l:=length(wert(fnrhjdbemerk))DIV kuerzelbreite,von,bis;TEXT VAR 
kuerzel;INT VAR swib:=546;FOR iFROM 1UPTO lREP von:=((i-1)*kuerzelbreite)+1;
bis:=i*kuerzelbreite;kuerzel:=subtext(wert(fnrhjdbemerk),von,bis);
setzesonderwert(swib,kuerzel);swibINCR 1;setzesonderwert(swib,langtext(
suffix13,kuerzel));swibINCR 1PER .END PROC teil2hjdaufbereiten;TEXT PROC 
aufbereiteterwert(INT CONST fnr,kuerzelbreite):LET doppelpunkt=":",anzspalten
=13,spaltenbreitetab=4;INT VAR i,l:=length(wert(fnr))DIV kuerzelbreite,von,
bis,blankanz;TEXT VAR zeile:="",kuerzel;#IF l>nullTHEN #FOR iFROM 1UPTO #l#
anzspaltenREP von:=((i-1)*kuerzelbreite)+1;bis:=i*kuerzelbreite;kuerzel:=
subtext(wert(fnr),von,bis);zeile:=zeile+aufbkuerzelPER ;#ELSE zeile:=
anzspalten*(doppelpunkt+spaltenbreitetab*blank)FI ;#zeile.aufbkuerzel:IF 
length(kuerzel)<>nullTHEN blankanz:=spaltenbreitetab-length(kuerzel);
doppelpunkt+preblankanz*blank+kuerzel+postblankanz*blankELSE doppelpunkt+
spaltenbreitetab*blankFI .preblankanz:blankanzDIV 2.postblankanz:blankanz-
preblankanz.ENDPROC aufbereiteterwert;BOOL PROC multistopauskunft:(
schuelerschluessel1=wert(fnrsufamnames))CAND (schuelerschluessel2=wert(
fnrsurufnames)COR schuelerschluessel2="")CAND (schuelerschluessel3=
datumrekonversion(wert(fnrsugebdatums))COR schuelerschluessel3="")END PROC 
multistopauskunft;TEXT PROC leerintintext(TEXT CONST t):IF t="0"THEN ""ELSE t
FI END PROC leerintintext;TEXT PROC kurz(TEXT CONST t):TEXT VAR txt:=niltext;
IF t<>niltextTHEN txt:=t+blankFI ;txtEND PROC kurz;END PACKET auskbetroffen;