summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.anschr.nachpruefungszulassung
blob: 871d9b6d56beefee4dc6e426938b73587b05ca43 (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
PACKET anschrnachpruefungszulassungDEFINES nachpruefungszulassungeingang,
nachpruefungszulassungende,nachpruefungszulassungstarten,
sonderwertenachpruefungszulassung,multistopnachpruefler:INT VAR 
aktuellerindex;TEXT VAR schuelerschluessel1,schuelerschluessel2,
schuelerschluessel3,bestandsschluessel1,bestandsschluessel2,
aktuellesschuljahr;LET schluesselnachpruefung="n";LET vordruck=
"vordruck nachpruefungszulassung";LET maske="ms anschr schueler o. klasse";
LET namefeldnr=2,vornamefeldnr=3,geburtsdatumfeldnr=4,jgstfeldnr=5,
zugtutorfeldnr=6,bildschirmfeldnr=7,druckerfeldnr=8;LET niltext="",
trennsymbol=" ",vollj="v",minderj="m",oder=" oder ",punkt=".",meldkennz="#",
fehlerhalbjnr=167,fehlermeldnr=56,#wartemeldnr=69,#
dieauswahlderjgstistnichtzulaessignr=146,#
anschreibenkannnichterstelltwerdennr=124,#vater=1;LET minjgst=5,jgst11=11,
maxjgst=13;LET swschulhalbjahr=509,swzuname=511,swnamenszusaetze=512,
swvornamen=513,swgeschlecht=514,swvollj=515,swstrhausnr=517,swplzort=518,
swnameerzieher=519,swnamenszusaetzeerzieher=520,swvornameerzieher=521,
swstrhausnrerzieher=522,swplzorterzieher=523,swparagraph=524,
swnachpruefungsfaecher=525,swbemerkung=526;LET maxanzahlderfaecher=100,
karteifachlangtext=2,fachschluesselindex=1,fachlangtextindex=2;ROW 
maxanzahlderfaecherROW karteifachlangtextTEXT VAR faecherkartei;INT VAR 
anzahlderfaecher:=0;BOOL VAR eingang:=TRUE ,zweitehalbjahr:=TRUE ,
anschreibenzeigen;PROC bildefaecherbestand:LET anzstacktupel=25;
initialisierefaecherkartei;vorbereitung;leseschleife.
initialisierefaecherkartei:INT VAR zaehler1,zaehler2;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 wenigergelesen
THEN anztupel:=anzstacktupel;multisucc(dnrfaecher,anztupel);evtwenigerFI PER 
.evtweniger:IF anztupel<anzstacktupelTHEN wenigergelesen:=TRUE FI .END PROC 
bildefaecherbestand;TEXT PROC langtextzufachschluessel(TEXT CONST schluessel)
:INT VAR zaehler:=1;TEXT VAR langtext:="";WHILE zaehler<anzahlderfaecherCAND 
schluessel<>faecherkartei(zaehler)(fachschluesselindex)REP zaehlerINCR 1PER ;
IF schluessel=faecherkartei(zaehler)(fachschluesselindex)THEN langtext:=
faecherkartei(zaehler)(fachlangtextindex)FI ;langtextEND PROC 
langtextzufachschluessel;PROC nachpruefungszulassungeingang:standardvproc(
maske);IF eingangTHEN setzesonderwerteschulkenndaten;
feststellenobzweitehalbjahr;IF zweitehalbjahrTHEN bildefaecherbestand;FI ;
aendernderflaggeFI .feststellenobzweitehalbjahr:zweitehalbjahr:=int(
sonderwert(swschulhalbjahr))=2.aendernderflagge:eingang:=FALSE .END PROC 
nachpruefungszulassungeingang;PROC nachpruefungszulassungende:eingang:=TRUE ;
enter(2)END PROC nachpruefungszulassungende;BOOL PROC 
sonderwertenachpruefungszulassung:initialisieresonderwerte;sucheschueler;
sonderwertfuerdenadressaten;sonderwerteschuelerdaten;sonderwerteerzieherdaten
;sonderwertparagraph;sonderwertfuerdienachpruefungsfaecher;
sonderwertfuerbemerkung;TRUE .sucheschueler:inittupel(dnrschueler);
uebernehmeentsprdaten;search(dnrschueler,TRUE ).uebernehmeentsprdaten:putwert
(fnrsufamnames,wert(fnrhjdfamnames));putwert(fnrsurufnames,wert(
fnrhjdrufnames));putwert(fnrsugebdatums,wert(fnrhjdgebdats)).
sonderwertfuerdenadressaten:adressat((wert(fnrsuvornames)SUB 1)+punkt+
trennsymbol+wert(fnrsufamnames)).sonderwerteschuelerdaten:setzesonderwert(
swzuname,wert(fnrsufamnames));setzesonderwert(swnamenszusaetze,wert(
fnrsunamenszusatzs));setzesonderwert(swvornamen,wert(fnrsuvornames));
setzesonderwert(swgeschlecht,wert(fnrsugeschlechts));setzesonderwert(
swstrhausnr,wert(fnrsustrnrs));setzesonderwert(swplzort,wert(fnrsuplzorts));
IF volljaehrig(wert(fnrsugebdatums))THEN setzesonderwert(swvollj,vollj);ELSE 
setzesonderwert(swvollj,minderj)FI .sonderwerteerzieherdaten:setzesonderwert(
swnameerzieher,wert(fnrsufamnamee));setzesonderwert(swnamenszusaetzeerzieher,
wert(fnrsunamenszusatze));setzesonderwert(swvornameerzieher,wert(
fnrsuvornamee));sucheerzieheradresse;setzesonderwert(swstrhausnrerzieher,wert
(fnrsustrnrs));setzesonderwert(swplzorterzieher,wert(fnrsuplzorts));.
sucheerzieheradresse:#IF wert(fnradresse)<>""THEN putwert(fnradrkuerzel,wert(
fnradresse));search(dnradressen,TRUE );IF dbstatus=okTHEN 
uebernehmeerzieheradresseELSE dbstatus(ok)FI FI #IF wert(fnrsuplzorte)<>""
THEN uebernehmeerzieheradresseFI .uebernehmeerzieheradresse:putwert(
fnrsustrnrs,wert(fnrsustrnre));putwert(fnrsuplzorts,wert(fnrsuplzorte)).
sonderwertparagraph:TEXT CONST paragraphsek1:=
"Nr. 4 der Verordnung über die Abschlüsse und "+
"die Versetzung in Sekundarstufe 1 (AVO - SI)",paragraphsek2:=
"Nr. 11 der Verordnung über den Bildungsgang"+
" und die Abiturprüfung der gymnasialen Oberstufe";IF int(wert(fnrhjdjgst))<
jgst11THEN setzesonderwert(swparagraph,paragraphsek1)ELSE setzesonderwert(
swparagraph,paragraphsek2)FI .sonderwertfuerdienachpruefungsfaecher:TEXT VAR 
fachschluessel:="";TEXT VAR nachpruefungsfach:="";TEXT VAR langtext:="";
bestimmungderfaecherindennachpruefungmoeglich;setzesonderwert(
swnachpruefungsfaecher,nachpruefungsfach).
bestimmungderfaecherindennachpruefungmoeglich:fachschluessel:=wert(
fnrhjdnachfach1);langtext:=langtextzufachschluessel(fachschluessel);IF 
langtext<>niltextTHEN nachpruefungsfach:=langtext;fachschluessel:=wert(
fnrhjdnachfach2);langtext:=langtextzufachschluessel(fachschluessel);IF 
langtext<>niltextTHEN nachpruefungsfach:=nachpruefungsfach+oder+langtext;
fachschluessel:=wert(fnrhjdnachfach3);langtext:=langtextzufachschluessel(
fachschluessel);IF langtext<>niltextTHEN nachpruefungsfach:=nachpruefungsfach
+oder+langtextFI FI FI .sonderwertfuerbemerkung:sucheschluesselbemerkung;
suchelangtextzubemerkungundsetzesonderwert.sucheschluesselbemerkung:TEXT VAR 
bemerkungsschluessel:="";bemerkungsschluessel:=wert(fnrhjdbemnach).
suchelangtextzubemerkungundsetzesonderwert:putwert(fnrschlsachgebiet,
"c02 bemerkungen");putwert(fnrschlschluessel,bemerkungsschluessel);search(
dnrschluessel,TRUE );IF dbstatus=okTHEN setzesonderwert(swbemerkung,wert(
fnrschllangtext))ELSE dbstatus(ok);setzesonderwert(swbemerkung,niltext)FI .
END PROC sonderwertenachpruefungszulassung;PROC nachpruefungszulassungstarten
:IF zweitehalbjahrTHEN lesemaskenwerte;IF maskenwerteinordnungTHEN IF 
beibestandsauswahlauswahlzulaessigTHEN startenausfuehrenELSE 
meldeunzulaessigeschuelergruppenauswahl;zurueckzumdialogFI ELSE 
meldedenfehler;zurueckzumdialogFI ELSE meldefalscheshalbjahr;zurueckzumdialog
FI .meldefalscheshalbjahr:LET zweiteshalbjahr="2";standardmeldung(
fehlerhalbjnr,zweiteshalbjahr+meldkennz).lesemaskenwerte:schuelerschluessel1
:=standardmaskenfeld(namefeldnr);schuelerschluessel2:=standardmaskenfeld(
vornamefeldnr);schuelerschluessel3:=standardmaskenfeld(geburtsdatumfeldnr);
bestandsschluessel1:=standardmaskenfeld(jgstfeldnr);bestandsschluessel2:=
standardmaskenfeld(zugtutorfeldnr);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).
meldeunzulaessigeschuelergruppenauswahl:standardmeldung(
dieauswahlderjgstistnichtzulaessignr,niltext).
beibestandsauswahlauswahlzulaessig:(bestandsschluessel1=niltext)OR (
bestandsschluessel1<>niltextCAND int(bestandsschluessel1)<=maxjgstCAND int(
bestandsschluessel1)>=minjgst).startenausfuehren:
initialisieredruckerfueranschreiben;dbstatus(ok);parsenooffields(30);
indexnummerbestimmen;uebernimmentsprechendedaten;anschreibenstart(
aktuellerindex,vordruck,anschreibenzeigen,(schuelerschluessel1+
schuelerschluessel2)<>"",BOOL PROC sonderwertenachpruefungszulassung,BOOL 
PROC multistopnachpruefler).uebernimmentsprechendedaten:aktuellesschuljahr:=
schulkenndatum("Schuljahr");putwert(fnrhjdsj,aktuellesschuljahr);putintwert(
fnrhjdhj,2);putwert(fnrhjdfamnames,schuelerschluessel1);putwert(
fnrhjdrufnames,schuelerschluessel2);putwert(fnrhjdgebdats,datumskonversion(
schuelerschluessel3));putwert(fnrhjdjgst,bestandsschluessel1);putwert(
fnrhjdkennung,bestandsschluessel2);putwert(fnrhjdversetzung,
schluesselnachpruefung).indexnummerbestimmen:IF schuelerschluessel1<>niltext
THEN aktuellerindex:=#dnrhalbjahresdaten#ixhjdverfamsjhjrufgebELSE 
aktuellerindex:=ixhjdversjhjjgstkennFI .END PROC 
nachpruefungszulassungstarten;BOOL PROC multistopnachpruefler:BOOL VAR b:=
wert(fnrhjdsj)=aktuellesschuljahrCAND intwert(fnrhjdhj)=2CAND wert(
fnrhjdversetzung)=schluesselnachpruefung;IF bTHEN 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 multistopnachpruefler;END PACKET 
anschrnachpruefungszulassung;