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
|
PACKET nachprueflistenDEFINES nachprlispezielleteile:LET
mnrbearbeitetwirdjgst=106,nurimzweitenhj=193,schluesselnachpruefler="n";TEXT
VAR aktuellesschuljahr,endewertjgst,startwertjgst,bearbeitetwirdjgst;LET
niltext="",blank=" ",mittestrich="-",null=0,ueberschriftenzeilen=2,
spalte1breite=7,spalte3breite=40,anzspaltentrenner=2,spaltentrenner=":",
ausgkopflaenge=3,ausgfeldlaenge=4,AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF
=ROW ausgkopflaengeTEXT ,nachprlieingangsmaske=
"ms liste versetz nachpr eingang",nachprlianfpos=2;INT CONST
spalte2bildbreite:=bildbreite-anzspaltentrenner-spalte1breite-spalte3breite;
INT VAR spalte2druckbreite,druckzeilenzahl,bildanf,eingabestatus,breite,
ausgfeldlaengereal;TEXT VAR nachprliueberschrift,schuljahr,jahr1,jahr2,
schuelername,schuelerrufname,schuelernamenszus,schuelerjgst,schuelerzug,fach1
,fach2,fach3,paraphe1,paraphe2,paraphe3,jgst,neuejgst,klasse,neueklasse;TEXT
VAR druckstrich;TEXT CONST bildstrich:=bildbreite*mittestrich;AUSGFELD VAR
ausgfeld;AUSGKOPF VAR ausgkopf;BOOL VAR sek1,sek2,ersteraufbildschirm,
klassegeaendert:=FALSE ;PROC nachprlispezielleteile(INT CONST nr):SELECT nr
OF CASE 1:nachprlidialogvorbereitenCASE 2:nachprlieingabenrichtigCASE 3:
nachprlilistenvorbereitenCASE 4:nachprlidruckvorbereitenCASE 5:
nachprliseitedruckenCASE 6:nachprlibildschirmvorbereitenCASE 7:
nachprliseitezeigenENDSELECT .END PROC nachprlispezielleteile;PROC
nachprlidialogvorbereiten:nachprliueberschrift:=text(vergleichsknoten);
setzeanfangswerte(nachprlieingangsmaske,nachprlianfpos)END PROC
nachprlidialogvorbereiten;PROC nachprlieingabenrichtig:LET fnrsek1=2,fnrsek2=
3,fnrjgst=4,fnrausgdrucker=5,fnrausgbild=6,auswahlnichtsinnvoll=56;IF int(
schulkenndatum("Schulhalbjahr"))=1THEN standardmeldung(nurimzweitenhj,"2.#");
setzeeingabetest(FALSE )ELSE wohinpruefenFI .wohinpruefen:standardpruefe(5,
fnrausgdrucker,fnrausgbild,null,niltext,eingabestatus);IF eingabestatus<>0
THEN infeld(eingabestatus);setzeeingabetest(FALSE )ELSE waspruefenFI .
waspruefen:sek1:=FALSE ;sek2:=FALSE ;fach1:="";fach2:="";fach3:="";
reinitparsing;IF standardmaskenfeld(fnrjgst)=niltextTHEN standardpruefe(5,
fnrsek1,fnrsek2,null,niltext,eingabestatus);IF eingabestatus<>0THEN infeld(
eingabestatus);setzeeingabetest(FALSE )ELSE sek1:=standardmaskenfeld(fnrsek2)
=niltext;sek2:=NOT sek1;setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=
niltext);setzeeingabetest(TRUE )FI ;ELSE IF (standardmaskenfeld(fnrsek1)=
niltext)AND (standardmaskenfeld(fnrsek2)=niltext)THEN standardpruefe(3,
fnrjgst,5,13,niltext,eingabestatus);IF eingabestatus<>0THEN infeld(
eingabestatus);setzeeingabetest(FALSE )ELSE jgst:=zweistellig(
standardmaskenfeld(fnrjgst));setzeausgabedrucker(standardmaskenfeld(
fnrausgbild)=niltext);setzeeingabetest(TRUE )FI ;ELSE meldefehler;infeld(
fnrsek1);setzeeingabetest(FALSE )FI ;FI .meldefehler:standardmeldung(
auswahlnichtsinnvoll,niltext).END PROC nachprlieingabenrichtig;PROC
nachprlilistenvorbereiten:BOOL VAR b;LET schluessel="Schuljahr";
startwertjgstbestimmen;aktuellesschuljahrermitteln;inittupel(
dnrhalbjahresdaten);initobli(4);setzeidentiwert("");startwertesetzen;
objektlistestarten(ixhjdversjhjjgstkenn,"",fnrhjdjgst,TRUE ,b);
setzebestandende(NOT multistopnachprueflerCOR b).startwertjgstbestimmen:
aktuellesschuljahr:=schulkenndatum("Schuljahr");endewertjgst:=endeberechnung;
startwertjgst:=anfangsberechnung;.anfangsberechnung:IF sek1THEN "05"ELIF sek2
THEN "11"ELSE jgstFI .endeberechnung:IF sek1THEN "11"ELIF sek2THEN "14"ELSE
text(int(jgst)+1)FI .startwertesetzen:putwert(fnrhjdversetzung,
schluesselnachpruefler);putwert(fnrhjdjgst,startwertjgst);putwert(fnrhjdsj,
aktuellesschuljahr);putintwert(fnrhjdhj,2).aktuellesschuljahrermitteln:
schuljahr:=schulkenndatum(schluessel);jahr1:=subtext(schuljahr,1,2);jahr2:=
subtext(schuljahr,3,4).END PROC nachprlilistenvorbereiten;PROC
nachprlibildschirmvorbereiten:LET fnrausganf=2;standardkopfmaskeaktualisieren
(nachprliueberschrift);breite:=bildbreite;initspalten;setzespaltentrenner(
spaltentrenner);setzespaltenbreiten(spalte2bildbreite);initausgabekopf(
bildstrich);bildanf:=fnrausganf;INT VAR i;FOR iFROM 1UPTO ausgkopflaenge
REPEAT ausgkopf(i)IN bildanf;bildanfINCR 1END REPEAT ;klasse:=niltext;
setzebildanfangsposition(bildanf).END PROC nachprlibildschirmvorbereiten;
PROC nachprliseitezeigen:setzescanstartwert(startwertjgst);setzescanendewert(
endewertjgst);blaettern(PROC (INT CONST )schuelerzeigen,aktion,TRUE ,TRUE ,
BOOL PROC multistopnachpruefler);setzescanstartwert("");setzescanendewert("�"
).#endewertjgstpluseinsbeigleichheit:IF startwertjgst=endewertjgstTHEN text(
int(endewertjgst)+1)ELSE endewertjgstFI .#END PROC nachprliseitezeigen;PROC
schuelerzeigen(INT CONST x):schuelerholen;IF ersteraufbildschirmTHEN
klassegeaendert:=TRUE ;ersteraufbildschirm:=FALSE FI ;schueleraufbereiten;
schueleraufbildschirm.END PROC schuelerzeigen;PROC schueleraufbildschirm:INT
VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT ausgfeld(i)IN ausgabepos;
erhoeheausgabeposumeinsEND REPEAT .END PROC schueleraufbildschirm;PROC
nachprlidruckvorbereiten:LET uebteil11=
"Liste der zur Nachprüfung berechtigten Schüler, ",uebteil12="Sek.I",
uebteil13="Sek.II",uebteil14="Jgst. ",uebteil2="Schuljahr: ";TEXT VAR
ueberschrift1,ueberschrift2;ueberschriftvorbereitendruck;jgst:=niltext;klasse
:=niltext;druckvorbereiten;variablenfuerdrucksetzen;initdruckkopf(
ueberschrift1,ueberschrift2);breite:=druckbreite;initspalten;
setzespaltentrenner(spaltentrenner);setzespaltenbreiten(spalte2druckbreite);
initausgabekopf(druckstrich);holemeldungen;setzewerte;lesenvorbereitendruck(
PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC
multistopnachprueflersim).holemeldungen:meldungstext(mnrbearbeitetwirdjgst,
bearbeitetwirdjgst).setzewerte:inittupel(dnrhalbjahresdaten);putwert(
fnrhjdversetzung,schluesselnachpruefler);putwert(fnrhjdjgst,startwertjgst);
putwert(fnrhjdsj,aktuellesschuljahr);putintwert(fnrhjdhj,2).
ueberschriftvorbereitendruck:ueberschrift1:=uebteil11;IF sek1THEN
ueberschrift1:=ueberschrift1+uebteil12ELSE IF sek2THEN ueberschrift1:=
ueberschrift1+uebteil13ELSE ueberschrift1:=ueberschrift1+uebteil14+jgstFI ;
FI ;ueberschrift2:=uebteil2+aufbereitetesschuljahr.aufbereitetesschuljahr:
"19"+jahr1+"/"+jahr2.variablenfuerdrucksetzen:druckstrich:=druckbreite*
mittestrich;spalte2druckbreite:=druckbreite-anzspaltentrenner-spalte1breite-
spalte3breite;druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-
ausgkopflaenge.END PROC nachprlidruckvorbereiten;PROC nachprliseitedrucken:
nachprliueberschriftdrucken;seitedrucken(PROC (INT VAR )schuelerdrucken,
druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopnachprueflersim);
seitenwechsel.END PROC nachprliseitedrucken;PROC nachprliueberschriftdrucken:
druckkopfschreiben;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT
druckzeileschreiben(ausgkopf(i))END REPEAT .END PROC
nachprliueberschriftdrucken;PROC schuelerdrucken(INT VAR zeilenzaehler):LET
markiert="#";schuelerholen;IF zeilenzaehler=nullTHEN klassegeaendert:=TRUE
FI ;ggflmeldungjgst;schueleraufbereiten;zeilenzaehlerINCR ausgfeldlaengereal;
schuelerindruckdatei.ggflmeldungjgst:IF jgstgeaendertTHEN zwischenmeldungFI .
jgstgeaendert:neuejgst:=schuelerjgst;jgst<>neuejgst.zwischenmeldung:
standardmeldung(bearbeitetwirdjgst,neuejgst+markiert);jgst:=neuejgst;END
PROC schuelerdrucken;PROC schuelerindruckdatei:INT VAR i;FOR iFROM 1UPTO
ausgfeldlaengerealREPEAT druckzeileschreiben(ausgfeld(i))END REPEAT .END
PROC schuelerindruckdatei;PROC setzespaltenbreiten(INT CONST spalte2breite):
setzespaltenbreite(spalte1breite);setzespaltenbreite(spalte2breite);
setzespaltenbreite(spalte3breite);END PROC setzespaltenbreiten;PROC
initausgabekopf(TEXT CONST strich):LET jgst="Jgst.",zugtut="Zug/Tut",name=
"Familienname",rufname=" Rufname",rest1=
"Meldg. :Prüfer :Datum : : ",rest2=
" :Fach:Fach:Vors:Beis: Zeit:Raum:Note";spaltenweise(jgst);spaltenweise(
name);spaltenweise(rest1);ausgkopf(1):=zeile;spaltenweise(zugtut);
spaltenweise(rufname);spaltenweise(rest2);ausgkopf(2):=zeile;ausgkopf(3):=
strich;END PROC initausgabekopf;PROC schuelerholen:schuelername:=wert(
fnrhjdfamnames);schuelerrufname:=wert(fnrhjdrufnames);#schuelernamenszus:=
wert(fnrhjdzusatz);#schuelernamenszus:="";schuelerjgst:=wert(fnrhjdjgst);
schuelerzug:=wert(fnrhjdkennung);fach1:=wert(fnrhjdnachfach1);fach2:=wert(
fnrhjdnachfach2);fach3:=wert(fnrhjdnachfach3);fachlehrersuchen(fach1,paraphe1
);fachlehrersuchen(fach2,paraphe2);fachlehrersuchen(fach3,paraphe3);
neueklasse:=schuelerjgst+schuelerzug;klassegeaendert:=klasse<>neueklasse;
klasse:=neueklasse.END PROC schuelerholen;PROC fachlehrersuchen(TEXT CONST
fach,TEXT VAR paraphe):putwert(fnrlvhj,wert(fnrhjdhj));putwert(fnrlvsj,wert(
fnrhjdsj));putwert(fnrlvjgst,wert(fnrhjdjgst));#putwert(fnrlvzug,wert(
fnrhjdkennung));#putwert(fnrlvfachkennung,fach+wert(fnrhjdkennung));search(
dnrlehrveranstaltungen,TRUE );IF dbstatus=okTHEN paraphe:=wert(fnrlvparaphe)
ELSE paraphe:=""FI END PROC fachlehrersuchen;PROC schueleraufbereiten:LET
zwizeile=" : : : : : : :";INT VAR posausgfeld;
posausgfeld:=null;schreibeklassenamefach1;schreiberufnamefach2;IF
ausgabedruckerTHEN schreibeggffach3ELSE schreibefach3FI ;
schreibezwischenzeile.schreibeklassenamefach1:spaltenweise(aufbschuelerklasse
);spaltenweise(aufbschuelername);spaltenweise(aufbfach1);posausgfeldINCR 1;
ausgfeld(posausgfeld):=zeile;posausgfeldINCR 1.schreiberufnamefach2:
spaltenweise(blank);spaltenweise(aufbrufname);spaltenweise(aufbfach2);
ausgfeld(posausgfeld):=zeile;posausgfeldINCR 1.schreibeggffach3:IF fach3<>
niltextTHEN schreibefach3FI ;ausgfeldlaengereal:=posausgfeld.schreibefach3:
spaltenweise(blank);spaltenweise(blank);spaltenweise(aufbfach3);ausgfeld(
posausgfeld):=zeile;posausgfeldINCR 1.schreibezwischenzeile:spaltenweise(
blank);spaltenweise(blank);spaltenweise(zwizeile);ausgfeld(posausgfeld):=
zeile.aufbschuelerklasse:IF klassegeaendertTHEN schuelerjgst+blank+
schuelerzugELSE blankFI .aufbschuelername:IF schuelernamenszus=niltextTHEN
schuelernameELSE schuelernamenszus+blank+schuelernameFI .aufbfach1:aufbfach(
fach1,paraphe1).aufbrufname:2*blank+schuelerrufname.aufbfach2:aufbfach(fach2,
paraphe2).aufbfach3:aufbfach(fach3,paraphe3).END PROC schueleraufbereiten;
TEXT PROC aufbfach(TEXT CONST fach,paraphe):LET vorfach="__: ",nachfach=
":____:____:_______:____:____";vorfach+fach+(3-length(fach))*blank+
spaltentrenner+paraphe+(4-length(paraphe))*blank+nachfach.END PROC aufbfach;
BOOL PROC elementsek1:sek1COR int(startwertjgst)<11ENDPROC elementsek1;BOOL
PROC multistopnachpruefler:BOOL VAR b;b:=nachprueflerundrichtigesdatumCAND
int(wert(fnrhjdjgst))>=int(startwertjgst)CAND int(wert(fnrhjdjgst))<#=#int(
endewertjgst);b.nachprueflerundrichtigesdatum:wert(fnrhjdversetzung)=
schluesselnachprueflerCAND wert(fnrhjdsj)=aktuellesschuljahrCAND wert(
fnrhjdhj)="2".ENDPROC multistopnachpruefler;BOOL PROC
multistopnachprueflersim:BOOL VAR b:=multistopnachpruefler;setzebestandende(
NOT b);bENDPROC multistopnachprueflersim;END PACKET nachprueflisten;
|