PACKET neuanlistenDEFINES neuanlispezielleteile:LET niltext="",blank=" ", mittestrich="-",null=0,komma=",",ueberschriftenzeilen=2,nname="Name",schule= "Schule",klasse="Klasse",spalte3breite=6,anzspaltentrenner=2,ausgkopflaenge=2 ,ausgfeldlaenge=2,AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF =ROW ausgkopflaengeTEXT ,neuanlieingangsmaske="ms liste neuanmeld eingang", neuanlianfpos=2,#fnrsustatuss=6,fnrsunamenszusatzs=21,fnrsuskennlschule=14, fnrsuklasselschule=15,ixsustatschulkenn=253,ixsustatfamrufgeb=254dnrschueler= 2,dnrschulen=120,fnrschkennung=121,fnrschname=122,#mnrbearbeitetwerdenschulen =101,mnrbearbeitetwerdenschueler=102;INT CONST spalte1bildbreite:=(bildbreite -anzspaltentrenner-spalte3breite)DIV 2,spalte2bildbreite:=spalte1bildbreite;# bildsatzzahl:=(bildlaenge-ausgkopflaenge)DIV ausgfeldlaenge,bildblocklaenge:= (bildsatzzahl+1)DIV 2;#INT VAR spalte1druckbreite,spalte2druckbreite, druckzeilenzahl,bildanf,eingabestatus,aktuelleindexnr;TEXT VAR schuljahr, schuelername,schuelerrufname,schuelernamenszus,schuelerherkschule, schuelerherkklasse,schuelernameaufber,jahrgang,#sortbest,#anfbuchstabe, neueranfbuchstabe,startwert,bearbeitetwerdenschulen,bearbeitetwerdenschueler; TEXT VAR druckstrich;TEXT CONST bildstrich:=bildbreite*mittestrich;AUSGFELD VAR ausgfeld;AUSGKOPF VAR ausgkopf;BOOL VAR sortalpha,jgst5,jgst11;BOOL PROC multistop:BOOL VAR b;IF jgst5THEN b:=wert(fnrsustatuss)="n05"ELIF jgst11THEN b:=wert(fnrsustatuss)="n11"ELSE b:=wert(fnrsustatuss)="nso"FI ;bENDPROC multistop;BOOL PROC multistopsim:BOOL VAR b:=multistop;setzebestandende(NOT b );bENDPROC multistopsim;PROC neuanlispezielleteile(INT CONST nr):SELECT nrOF CASE 1:neuanlidialogvorbereitenCASE 2:neuanlieingabenrichtigCASE 3: neuanlilistenvorbereitenCASE 4:neuanlidruckvorbereitenCASE 5: neuanliseitedruckenCASE 6:neuanlibildschirmvorbereitenCASE 7: neuanliseitezeigenENDSELECT .END PROC neuanlispezielleteile;PROC neuanlidialogvorbereiten:setzeanfangswerte(neuanlieingangsmaske,neuanlianfpos )END PROC neuanlidialogvorbereiten;PROC neuanlieingabenrichtig:LET fnrjgst5=2 ,fnrjgst11=3,fnrjgstsonst=4,fnrsortalpha=5,fnrsortschule=6,fnrausgdrucker=7, fnrausgbild=8;standardpruefe(5,fnrjgst5,fnrjgstsonst,null,niltext, eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest (FALSE )ELSE standardpruefe(5,fnrsortalpha,fnrsortschule,null,niltext, eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest (FALSE )ELSE standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext, eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest (FALSE )ELSE jgst5:=standardmaskenfeld(fnrjgst5)<>niltext;jgst11:= standardmaskenfeld(fnrjgst11)<>niltext;sortalpha:=standardmaskenfeld( fnrsortschule)=niltext;#note("-->"+standardmaskenfeld(fnrsortschule)+"<--"); noteline;#setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=niltext); setzeeingabetest(TRUE )FI FI FI .END PROC neuanlieingabenrichtig;PROC neuanlilistenvorbereiten:LET fuenf="05",elf="11",sonst="sonst";BOOL VAR b:= FALSE ;IF jgst5THEN jahrgang:=fuenf;startwert:="n05"ELSE IF jgst11THEN jahrgang:=elf;startwert:="n11"ELSE jahrgang:=sonst;startwert:="nso"FI ;FI ; IF sortalphaTHEN aktuelleindexnr:=ixsustatfamrufgebELSE aktuelleindexnr:= ixsustatschulkennFI ;#note("Nr,: "+text(aktuelleindexnr));noteline;#inittupel (dnrschueler);initobli(8);parsenooffields(21);setzeidentiwert("");putwert( fnrsustatuss,startwert);#objektlistestarten(aktuelleindexnr,"",fnrsustatuss, TRUE ,b);#objektlistestarten(aktuelleindexnr,"",staticfield,TRUE ,b); setzebestandende(b).staticfield:IF sortalphaTHEN dnrschueler+1ELSE fnrsuskennlschuleFI .END PROC neuanlilistenvorbereiten;PROC neuanlibildschirmvorbereiten:LET fnrausganf=2,aufein="",aufaus=" ", neuanliueberschriftneu1="Liste der Neuanmeldungen zur Jgst. ", neuanliueberschriftneu2="Liste der sonstigen Neuanmeldungen"; standardkopfmaskeaktualisieren(neueueberschrift);initspalten; setzespaltenbreite(spalte1bildbreite);setzespaltenbreite(spalte2bildbreite); setzespaltenbreite(spalte3breite);initausgabekopf(bildstrich);bildanf:= fnrausganf;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT ausgkopf(i)IN bildanf;bildanfINCR 1END REPEAT ;setzebildanfangsposition(bildanf). neueueberschrift:IF (jgst5OR jgst11)THEN neuanliueberschriftneu1+aufein+ jahrgang+aufausELSE neuanliueberschriftneu2FI .END PROC neuanlibildschirmvorbereiten;PROC neuanliseitezeigen:blaettern(PROC (INT CONST )schuelerzeigen,aktion,TRUE ,TRUE ,BOOL PROC multistop)END PROC neuanliseitezeigen;PROC schuelerzeigen(INT CONST x):schuelerholen; schueleraufbereiten;schueleraufbildschirmEND PROC schuelerzeigen;PROC schueleraufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT ausgfeld (i)IN ausgabepos;erhoeheausgabeposumeinsEND REPEAT .END PROC schueleraufbildschirm;PROC neuanlidruckvorbereiten:LET schluessel="Schuljahr" ,uebteil1="Folgende Schüler wurden zum Schuljahr ",uebteil2=" für die", uebteil31="Jahrgangsstufe ",uebteil32="sonstigen Jahrgangsstufen ",uebteil4= " angemeldet:";TEXT VAR ueberschrift1,ueberschrift2;anfbuchstabe:=blank; druckvorbereiten;variablenfuerdrucksetzen;ueberschriftvorbereitendruck; initdruckkopf(ueberschrift1,ueberschrift2);initspalten;setzespaltenbreite( spalte1druckbreite);setzespaltenbreite(spalte2druckbreite);setzespaltenbreite (spalte3breite);initausgabekopf(druckstrich);holemeldungen;inittupel( dnrschueler);putwert(fnrsustatuss,startwert);lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC multistopsim). variablenfuerdrucksetzen:druckstrich:=druckbreite*mittestrich; spalte1druckbreite:=(druckbreite-anzspaltentrenner-spalte3breite)DIV 2; spalte2druckbreite:=spalte1druckbreite;druckzeilenzahl:=drucklaenge( ueberschriftenzeilen)-ausgkopflaenge.ueberschriftvorbereitendruck:schuljahr:= schulkenndatum(schluessel);schuljahraufbereiten;ueberschrift1:=uebteil1+ schuljahr+uebteil2;IF (jgst5OR jgst11)THEN ueberschrift2:=uebteil31+jahrgang+ uebteil4ELSE ueberschrift2:=uebteil32+uebteil4FI .schuljahraufbereiten: schuljahr:="19"+subtext(schuljahr,1,2)+"/"+subtext(schuljahr,3,4). holemeldungen:meldungstext(mnrbearbeitetwerdenschulen,bearbeitetwerdenschulen );meldungstext(mnrbearbeitetwerdenschueler,bearbeitetwerdenschueler).END PROC neuanlidruckvorbereiten;PROC neuanliseitedrucken: neuanliueberschriftdrucken;seitedrucken(PROC (INT VAR )schuelerdrucken, druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopsim);seitenwechsel.END PROC neuanliseitedrucken;PROC neuanliueberschriftdrucken:druckkopfschreiben; INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT druckzeileschreiben(ausgkopf(i ))END REPEAT .END PROC neuanliueberschriftdrucken;PROC schuelerdrucken(INT VAR zeilenzaehler):LET markiert="#";schuelerholen;ggflmeldunganfbuchstabe; schueleraufbereiten;zeilenzaehlerINCR ausgfeldlaenge;schuelerindruckdatei. ggflmeldunganfbuchstabe:IF anfbuchstabegeaendertTHEN zwischenmeldungFI . anfbuchstabegeaendert:IF sortalphaTHEN neueranfbuchstabe:=schuelernameSUB 1 ELSE neueranfbuchstabe:=schuelerherkschuleSUB 1FI ;anfbuchstabe<> neueranfbuchstabe.zwischenmeldung:IF sortalphaTHEN standardmeldung( bearbeitetwerdenschueler,neueranfbuchstabe+markiert)ELSE standardmeldung( bearbeitetwerdenschulen,neueranfbuchstabe+markiert)FI ;anfbuchstabe:= neueranfbuchstabe;END PROC schuelerdrucken;PROC schuelerindruckdatei:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT druckzeileschreiben(ausgfeld(i))END REPEAT .END PROC schuelerindruckdatei;PROC initausgabekopf(TEXT CONST strich) :spaltenweise(nname);spaltenweise(schule);spaltenweise(klasse);ausgkopf(1):= zeile;ausgkopf(2):=strich;END PROC initausgabekopf;PROC schuelerholen: schuelername:=wert(3);schuelerrufname:=2*blank+wert(4);schuelernamenszus:= wert(fnrsunamenszusatzs);sucheschule;schuelerherkklasse:=wert( fnrsuklasselschule).sucheschule:putwert(fnrschkennung,wert(fnrsuskennlschule) );search(dnrschulen,TRUE );IF dbstatus=okTHEN schuelerherkschule:=wert( fnrschname)ELSE schuelerherkschule:=wert(fnrsuskennlschule)FI .END PROC schuelerholen;PROC schueleraufbereiten:schuelernameaufbereiten; schreibenameschuleklasse;schreiberufname.schreibenameschuleklasse: spaltenweise(schuelernameaufber);spaltenweise(schuelerherkschule); spaltenweise(schuelerherkklasse);ausgfeld(1):=zeile.schreiberufname: spaltenweise(schuelerrufname);spaltenweise(blank);spaltenweise(blank); ausgfeld(2):=zeile.END PROC schueleraufbereiten;PROC schuelernameaufbereiten: schuelernameaufber:=niltext;IF schuelernamenszus<>niltextTHEN schuelernameaufber:=schuelernamenszus+blankFI ;schuelernameaufber:= schuelernameaufber+schuelername+komma;END PROC schuelernameaufbereiten;END PACKET neuanlisten;