summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.anschr.schulbescheinigung
blob: 16686b234e51e8b27524119ed872beeb625381cc (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
PACKET anschrschulbescheinigungDEFINES schulbescheinigungeingang,
schulbescheinigungstarten,sonderwerteschulbescheinigung,
multistopschulbescheinigung:TEXT VAR schuelerschluessel1,schuelerschluessel2,
schuelerschluessel3,bestandsschluessel1,bestandsschluessel2;BOOL VAR 
anschreibenzeigen;INT VAR aktuellerindex,eingabestatus;LET vordruck=
"vordruck schulbescheinigung";LET trennsymbol=" ",punkt=".";LET maske=
"ms auswahl schueler o. klasse",namefeldnr=2,vornamefeldnr=3,
geburtsdatumfeldnr=4,jgstfeldnr=5,zugtutorfeldnr=6,bildschirmfeldnr=7,
druckerfeldnr=8,niltext="",fehlermeldnr=56,wartemeldnr=69,datumfehler=157,
vater=1;PROC schulbescheinigungeingang:standardvproc(maske)END PROC 
schulbescheinigungeingang;BOOL PROC sonderwerteschulbescheinigung:adressat((
wert(fnrsurufnames)SUB 1)+punkt+trennsymbol+wert(fnrsufamnames));TRUE END 
PROC sonderwerteschulbescheinigung;PROC schulbescheinigungstarten:
lesemaskenwerte;IF NOT (auswahldruckeroderbildschirmok)THEN meldedenfehler;
infeld(bildschirmfeldnr);zurueckzumdialogELSE IF schluesselmitdatumangegeben
THEN IF schuelerschluessel3okTHEN indexnrbilden;startenausfuehrenELSE 
standardmeldung(datumfehler,niltext);infeld(geburtsdatumfeldnr);
zurueckzumdialogFI ;ELSE IF (alleschuelergewaehltXOR schuelergruppegewaehlt
XOR einschuelerohnedatumgewaehlt)THEN indexnrbilden;startenausfuehrenELSE 
meldedenfehler;zurueckzumdialogFI ;FI ;FI .lesemaskenwerte:
schuelerschluessel1:=standardmaskenfeld(namefeldnr);schuelerschluessel2:=
standardmaskenfeld(vornamefeldnr);schuelerschluessel3:=standardmaskenfeld(
geburtsdatumfeldnr);bestandsschluessel1:=standardmaskenfeld(jgstfeldnr);
bestandsschluessel2:=standardmaskenfeld(zugtutorfeldnr);anschreibenzeigen:=
standardmaskenfeld(bildschirmfeldnr)<>niltext.auswahldruckeroderbildschirmok:
(standardmaskenfeld(bildschirmfeldnr)<>niltext)XOR (standardmaskenfeld(
druckerfeldnr)<>niltext).schluesselmitdatumangegeben:((bestandsschluessel1+
bestandsschluessel2)=niltextAND schuelerschluessel1<>niltextAND 
schuelerschluessel2<>niltextAND schuelerschluessel3<>niltext).
alleschuelergewaehlt:(schuelerschluessel1+schuelerschluessel2+
schuelerschluessel3+bestandsschluessel1+bestandsschluessel2)=niltext.
schuelergruppegewaehlt:bestandsschluessel1<>niltextAND (schuelerschluessel1+
schuelerschluessel2+schuelerschluessel3=niltext).einschuelerohnedatumgewaehlt
:(bestandsschluessel1+bestandsschluessel2+schuelerschluessel3)=niltextAND 
schuelerschluessel1<>niltext.schuelerschluessel3ok:standardpruefe(6,4,0,0,
niltext,eingabestatus);IF NOT (eingabestatus=0)THEN FALSE ELSE TRUE FI .
meldedenfehler:standardmeldung(fehlermeldnr,niltext).zurueckzumdialog:return(
vater).indexnrbilden:standardmeldung(wartemeldnr,niltext);IF 
bestandsschluessel1<>niltextTHEN IF bestandsschluessel2<>niltextTHEN 
aktuellerindex:=ixsustatjgstzugELSE aktuellerindex:=ixsustatjgstFI ELSE 
aktuellerindex:=dnrschuelerFI .startenausfuehren:
initialisieredruckerfueranschreiben;#anschreibenstart(bestand,vordruck,
dbmschulbescheinigung,schuelerschluessel1,schuelerschluessel2+
schuelerschluessel3,anschreibenzeigen,laengedbmschulbescheinigung,BOOL PROC 
sonderwerteschulbescheinigung);#dbstatus(ok);inittupel(dnrschueler);
parsenooffields(19);uebernimmentsprechendedaten;anschreibenstart(
aktuellerindex,vordruck,anschreibenzeigen,(schuelerschluessel1+
schuelerschluessel2)<>"",BOOL PROC sonderwerteschulbescheinigung,BOOL PROC 
multistopschulbescheinigung).uebernimmentsprechendedaten:putwert(
fnrsufamnames,schuelerschluessel1);putwert(fnrsurufnames,schuelerschluessel2)
;putwert(fnrsugebdatums,datumskonversion(schuelerschluessel3));putwert(
fnrsusgrpjgst,bestandsschluessel1);putwert(fnrsusgrpzugtut,
bestandsschluessel2);putwert(fnrsustatuss,"ls").END PROC 
schulbescheinigungstarten;BOOL PROC multistopschulbescheinigung:BOOL VAR b:=
FALSE ;IF wert(fnrsustatuss)="ls"THEN IF aktuellerindex<>dnrschuelerTHEN IF 
aktuellerindex=ixsustatjgstTHEN b:=bestandsschluessel1=wert(fnrsusgrpjgst)
ELSE b:=(bestandsschluessel1=wert(fnrsusgrpjgst)CAND bestandsschluessel2=wert
(fnrsusgrpzugtut))FI ELSE b:=(schuelerschluessel1<>niltextCAND dbstatus=ok)
COR (schuelerschluessel1=niltextCAND TRUE )FI ;FI ;bENDPROC 
multistopschulbescheinigung;END PACKET anschrschulbescheinigung;