PACKET anschranmeldebestaetigungfuerjgst5und11DEFINES anschreibenbesteingang, anschreibenbestneustarten,sonderwertebestneu,multistopanmeld:LET swindexvollj =511,swindexminderjmaennlweibl=512,vollj="v",minderjaehrig="m",maennl="m", weibl="w",trennsymbol=" ",punkt=".";LET vordruckneu11= "vordruck anmeldebestaetigung zur jgst 11";LET vordruckneu5= "vordruck anmeldebestaetigung zur jgst 5";LET hellan="",hellaus=" ",maske= "ms anschreiben best",jgstfeldnr=3,bestandfeldnr=2,namefeldnr=4,vornamefeldnr =5,gebdatfeldnr=6,bildschirmfeldnr=7,druckerfeldnr=8;LET niltext="", fehlermeldnr=56,wartemeldnr=69,datumfehler=157,vater=1;LET jgst05="05";INT VAR eingabestatus;BOOL VAR anschreibenfuerjgst5;PROC anschreibenbesteingang( TEXT CONST jgst):anschreibenfuerjgst5:=(jgst=jgst05);standardstartproc(maske) ;standardmaskenfeld(hellan+jgst+hellaus,jgstfeldnr);standardnprocEND PROC anschreibenbesteingang;BOOL PROC sonderwertebestneu:IF NOT anschreibenfuerjgst5THEN IF volljaehrig(wert(fnrsugebdatums))THEN setzesonderwert(swindexvollj,vollj);setzesonderwert(swindexminderjmaennlweibl ,niltext)ELSE setzesonderwert(swindexvollj,minderjaehrig);IF wert( fnrsugeschlechts)=weiblTHEN setzesonderwert(swindexminderjmaennlweibl,weibl) ELSE setzesonderwert(swindexminderjmaennlweibl,maennl)FI FI FI ;IF andereerzieheradresseCAND NOT volljaehrig(wert(fnrsugebdatums))#sf30.10.# THEN leseerzieheradresse;uebertrageerzieheradresseFI ;adressat((wert( fnrsuvornames)SUB 1)+punkt+trennsymbol+wert(fnrsufamnames));TRUE . andereerzieheradresse:#intwert(fnradresskuerzel)<>0#wert(fnrsuplzorte)<>"". leseerzieheradresse:#inittupel(dnradressen);putwert(dnradressen+1,wert( fnradresskuerzel));search(dnradressen,TRUE )#.uebertrageerzieheradresse: putwert(fnrsustrnrs,wert(fnrsustrnre));putwert(fnrsuplzorts,wert(fnrsuplzorte )).END PROC sonderwertebestneu;PROC anschreibenbestneustarten:TEXT VAR vordruckneu:="";lesemaskenwerte;IF NOT (auswahldruckeroderbildschirmok)THEN meldedenfehler;infeld(bildschirmfeldnr);zurueckzumdialogELSE IF schluesselmitdatumangegebenTHEN IF schuelerschluessel3okTHEN startenausfuehrenELSE standardmeldung(datumfehler,niltext);infeld( gebdatfeldnr);zurueckzumdialogFI ;ELSE IF (alleschuelergewaehltXOR einschuelerohnedatumgewaehlt)THEN startenausfuehrenELSE meldedenfehler; zurueckzumdialogFI ;FI ;FI .lesemaskenwerte:TEXT CONST schluessel1:= standardmaskenfeld(namefeldnr);TEXT CONST schluessel2:=standardmaskenfeld( vornamefeldnr);TEXT CONST schluessel3:=standardmaskenfeld(gebdatfeldnr);BOOL CONST anschreibenzeigen:=standardmaskenfeld(bildschirmfeldnr)<>niltext;BOOL CONST alle:=standardmaskenfeld(bestandfeldnr)<>niltext. auswahldruckeroderbildschirmok:(standardmaskenfeld(bildschirmfeldnr)<>niltext )XOR (standardmaskenfeld(druckerfeldnr)<>niltext).schluesselmitdatumangegeben :NOT alleAND schluessel1<>niltextAND schluessel2<>niltextAND schluessel3<> niltext.alleschuelergewaehlt:alleAND (schluessel1+schluessel2+schluessel3)= niltext.einschuelerohnedatumgewaehlt:NOT alleAND schluessel1<>niltextAND schluessel3=niltext.schuelerschluessel3ok:standardpruefe(6,6,0,0,niltext, eingabestatus);IF NOT (eingabestatus=0)THEN FALSE ELSE TRUE FI . meldedenfehler:standardmeldung(fehlermeldnr,niltext).zurueckzumdialog:return( vater).startenausfuehren:standardmeldung(wartemeldnr,niltext); initialisieredruckerfueranschreiben;inittupel(dnrschueler);parsenooffields(30 );uebernimmnamen;IF anschreibenfuerjgst5THEN putwert(fnrsustatuss,"n05"); vordruckneu:=vordruckneu5ELSE putwert(fnrsustatuss,"n11");vordruckneu:= vordruckneu11FI ;anschreibenstart(ixsustatfamrufgeb,vordruckneu, anschreibenzeigen,(schluessel1+schluessel2)<>"",BOOL PROC sonderwertebestneu, BOOL PROC multistopanmeld).uebernimmnamen:putwert(fnrsufamnames,schluessel1); putwert(fnrsurufnames,schluessel2);putwert(fnrsugebdatums,datumskonversion( schluessel3)).END PROC anschreibenbestneustarten;BOOL PROC multistopanmeld: BOOL VAR b;IF anschreibenfuerjgst5THEN b:=wert(fnrsustatuss)="n05"ELSE b:= wert(fnrsustatuss)="n11"FI ;bENDPROC multistopanmeld;END PACKET anschranmeldebestaetigungfuerjgst5und11;