summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.anschr.wiederholer
blob: 8de4b25b059f8768b74232db2b4c0fb7b62735b4 (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
PACKET anschrwiederholerDEFINES wiederholereingang,wiederholerstarten,
sonderwertewiederholer,multistopwiederholer:INT VAR aktuellerindex;TEXT VAR 
schuelerschluessel1,schuelerschluessel2,schuelerschluessel3,
bestandsschluessel1,bestandsschluessel2,aktuellesschuljahr:="";LET vordruck=
"vordruck fuer wiederholer";LET swindexvolljminderj=511,
swindexminderjmaennlweibl=512,swindexnichterreichtejgst=513;LET jgst13=13,
weibl="w",maennl="m",minderj="m",vollj="v",niltext="",trennsymbol=" ",punkt=
".",schluesselwiederholer="w";LET maske="ms anschr schueler o. klasse";LET 
namefeldnr=2,vornamefeldnr=3,geburtsdatumfeldnr=4,jgstfeldnr=5,zugtutorfeldnr
=6,bildschirmfeldnr=7,druckerfeldnr=8;LET fehlermeldnr=56,nurimzweitenhj=194,
#wartemeldnr=69,anschreibenkannnichterstelltwerdennr=124,#
dieauswahlderjgstistnichtzulaessignr=146,vater=1;LET minjgst=5,maxjgst=13;
PROC wiederholereingang:standardvproc(maske)END PROC wiederholereingang;BOOL 
PROC sonderwertewiederholer:BOOL VAR erstellbar:=TRUE ;sucheschuelerdaten;
sonderwertfuervolljoderminderjundmaennlweibl;sonderwertfuernichterreichtejgst
;sonderwertfueradressaten;erstellbar#keitsangabe#.sucheschuelerdaten:
inittupel(dnrschueler);uebernimmschuelerdaten;search(dnrschueler,TRUE ).
uebernimmschuelerdaten:putwert(fnrsufamnames,wert(fnrhjdfamnames));putwert(
fnrsurufnames,wert(fnrhjdrufnames));putwert(fnrsugebdatums,wert(fnrhjdgebdats
)).sonderwertfuervolljoderminderjundmaennlweibl:IF volljaehrig(wert(
fnrsugebdatums))THEN setzesonderwert(swindexvolljminderj,vollj);
setzesonderwert(swindexminderjmaennlweibl,niltext)ELSE setzesonderwert(
swindexvolljminderj,minderj);IF wert(fnrsugeschlechts)=weiblTHEN 
setzesonderwert(swindexminderjmaennlweibl,weibl)ELSE setzesonderwert(
swindexminderjmaennlweibl,maennl)FI ;setzeerzieheradresseFI .
setzeerzieheradresse:#IF intwert(fnradresse)<>0THEN putwert(fnradrkuerzel,
wert(fnradresse));search(dnradressen,TRUE );IF dbstatus=okTHEN putwert(
fnrsustrnrs,wert(fnradrstrasse));putwert(fnrsuplzorts,wert(fnradrort))FI FI #
IF wert(fnrsuplzorte)<>""THEN putwert(fnrsustrnrs,wert(fnrsustrnre));putwert(
fnrsuplzorts,wert(fnrsuplzorts))FI .sonderwertfuernichterreichtejgst:
setzesonderwert(swindexnichterreichtejgst,text(intwert(fnrhjdjgst)+1));
erstellbar:=NOT (intwert(fnrhjdjgst)=jgst13).sonderwertfueradressaten:
adressat((wert(fnrsurufnames)SUB 1)+punkt+trennsymbol+wert(fnrsufamnames));.#
erstellbarkeitsangabe:IF intwert(fnrzugang)=schluesselwiederholerTHEN 
erstellbar:=wert(dbmindexversetzung,zweiteteilsegment)=schluesselwiederholer
AND erstellbarELSE erstellbar:=(dbwert(dbmindexversetzung,ersteteilsegment)=
schluesselwiederholer)AND erstellbarFI ;erstellbar.#END PROC 
sonderwertewiederholer;PROC wiederholerstarten:IF zweiteshjTHEN weiterFI .
weiter:lesemaskenwerte;IF maskenwerteinordnungTHEN IF 
beibestandsauswahlauswahlzulaessigTHEN #bestandbilden;IF status<>0THEN 
meldenichterstellbar;zurueckzumdialogELSE #indexnummerbestimmen;
startenausfuehren#FI #ELSE meldeunzulaessigeschuelergruppenauswahl;
zurueckzumdialogFI ELSE meldedenfehler;zurueckzumdialogFI .zweiteshj:IF int(
schulkenndatum("Schulhalbjahr"))=1THEN standardmeldung(nurimzweitenhj,"2.#");
zurueckzumdialog;FALSE ELSE TRUE FI .lesemaskenwerte:schuelerschluessel1:=
standardmaskenfeld(namefeldnr);schuelerschluessel2:=standardmaskenfeld(
vornamefeldnr);schuelerschluessel3:=standardmaskenfeld(geburtsdatumfeldnr);
bestandsschluessel1:=standardmaskenfeld(jgstfeldnr);bestandsschluessel2:=
standardmaskenfeld(zugtutorfeldnr);BOOL CONST anschreibenzeigen:=
standardmaskenfeld(bildschirmfeldnr)<>niltext.maskenwerteinordnung:IF NOT ((
standardmaskenfeld(bildschirmfeldnr)<>niltext)XOR (standardmaskenfeld(
druckerfeldnr)<>niltext))THEN infeld(bildschirmfeldnr);FALSE ELIF ((
schuelerschluessel1<>niltextAND bestandsschluessel1+bestandsschluessel2=
niltextAND (schuelerschluessel2<>niltextXOR (schuelerschluessel2=niltextAND 
schuelerschluessel3=niltext)))XOR (schuelerschluessel1+schuelerschluessel2+
schuelerschluessel3=niltextAND bestandsschluessel1<>niltext)XOR (
schuelerschluessel1+schuelerschluessel2+schuelerschluessel3+
bestandsschluessel1+bestandsschluessel2=niltext))THEN TRUE ELSE infeld(
namefeldnr);FALSE FI .meldedenfehler:standardmeldung(fehlermeldnr,niltext).
zurueckzumdialog:return(vater).#meldenichterstellbar:standardmeldung(
anschreibenkannnichterstelltwerdennr,niltext);.#
meldeunzulaessigeschuelergruppenauswahl:standardmeldung(
dieauswahlderjgstistnichtzulaessignr,niltext).
beibestandsauswahlauswahlzulaessig:(bestandsschluessel1=niltext)OR (
bestandsschluessel1<>niltextCAND int(bestandsschluessel1)<maxjgstCAND int(
bestandsschluessel1)>=minjgst).startenausfuehren:
initialisieredruckerfueranschreiben;dbstatus(ok);inittupel(dnrhalbjahresdaten
);parsenooffields(28);uebernimmentsprechendedaten;anschreibenstart(
aktuellerindex,vordruck,anschreibenzeigen,(schuelerschluessel1+
schuelerschluessel2)<>"",BOOL PROC sonderwertewiederholer,BOOL PROC 
multistopwiederholer).uebernimmentsprechendedaten:putwert(fnrhjdfamnames,
schuelerschluessel1);putwert(fnrhjdrufnames,schuelerschluessel2);putwert(
fnrhjdgebdats,datumskonversion(schuelerschluessel3));aktuellesschuljahr:=
schulkenndatum("Schuljahr");putwert(fnrhjdsj,aktuellesschuljahr);putintwert(
fnrhjdhj,2);putwert(fnrhjdjgst,bestandsschluessel1);putwert(fnrhjdkennung,
bestandsschluessel2);putwert(fnrhjdversetzung,schluesselwiederholer);.
indexnummerbestimmen:IF schuelerschluessel1<>niltextTHEN aktuellerindex:=#
dnrhalbjahresdaten#ixhjdverfamsjhjrufgebELSE aktuellerindex:=
ixhjdversjhjjgstkennFI .END PROC wiederholerstarten;BOOL PROC 
multistopwiederholer:BOOL VAR b:=wert(fnrhjdsj)=aktuellesschuljahrCAND 
intwert(fnrhjdhj)=2CAND wert(fnrhjdversetzung)=schluesselwiederholer;IF b
THEN weitereueberpruefungFI ;b.weitereueberpruefung:IF aktuellerindex=
ixhjdverfamsjhjrufgebTHEN ueberpruefenamenELSE IF bestandsschluessel1<>""
THEN ueberpruefejgstFI FI .ueberpruefenamen:b:=wert(fnrhjdfamnames)=
schuelerschluessel1CAND (schuelerschluessel2=""COR wert(fnrhjdrufnames)=
schuelerschluessel2)CAND (schuelerschluessel3=""COR wert(fnrhjdgebdats)=
datumskonversion(schuelerschluessel3)).ueberpruefejgst:b:=int(
bestandsschluessel1)=intwert(fnrhjdjgst)CAND (bestandsschluessel2=""COR 
bestandsschluessel2=wert(fnrhjdkennung)).ENDPROC multistopwiederholer;END 
PACKET anschrwiederholer;