PACKET auskbetroffenDEFINES auskbetroffeneingang,auskbetroffenstarten, auskbetroffensonderwerte:TEXT VAR schuelerschluessel1,schuelerschluessel2, schuelerschluessel3;LET swiort=511,swiwohntbei=512,swilangtextortsteil=513, swilangtexterzber=514,swiorterzber=515,swilangtextstaatsan=516, swilangtextsprache=517,swilangtextspaetaus=518,swilangtextgeschl=519, swilangtextrelizug=520,swilangtextrelizeugnis=521,swiortletzteschule=522, swilangtextschulform=523,swiaufbschuljeintrsek2=524,swilangtextzugang=525, swilangtextabgang=526,swilangtextabschluss=527,swiortneueschule=528, swilangtextfremdspr1=537,swiaufbhjafremdspr1=538,swiaufbhjefremdspr1=539, swilangtextfremdspr2=540,swiaufbhjafremdspr2=541,swiaufbhjefremdspr2=542, swilangtextfremdspr3=543,swiaufbhjafremdspr3=544,swiaufbhjefremdspr3=545, swilangtextfremdspr4=546,swiaufbhjafremdspr4=547,swiaufbhjefremdspr4=548, swilangtextreliunt=549,swilangtextkumu=550,swilangtextwpf191=551, swilangtextwpf291=552,swilangtextwpf192=553,swilangtextwpf292=554, swilangtextwpf1101=555,swilangtextwpf2101=556,swilangtextwpf1102=557, swilangtextwpf2102=558,swilangtextag1=559,swiaufbhjaag1=560,swiaufbhjeag1=561 ,swilangtextag2=562,swiaufbhjaag2=563,swiaufbhjeag2=564,swilangtextag3=565, swiaufbhjaag3=566,swiaufbhjeag3=567,swistrasseerz=568,switelerz=569, swinameletzte=570,swistrasseletzte=571,swinameneue=572,swistrasseneue=573, swischulform=582,swilangtextstatus=583;LET suffix1="c02 ortsteil",suffix2= "c02 verwandtschaft",suffix3="c02 staaten",suffix4="c02 sprachen",suffix5= "c02 relizugehoerigkeit",suffix6="c02 schulart",suffix7="c02 zugang",suffix8= "c02 abgang",suffix9="c02 abschluss",suffix12="c02 blauer brief",suffix13= "c02 bemerkungen",suffix14="c02 versetzung",namefeldnr=2,vornamefeldnr=3, geburtsdatumfeldnr=4,niltext="",null=0,blank=" ",punkt=".",kla="(",klz=")", fehlermeld1=56,fehlermeld2=157,wartemeldnr=69,vater=1,maske= "ms auswahl schueler o. klasse mit bestand";TEXT VAR aktjgsthj;INT VAR aktuellesschuljahr,aktuelleshalbjahr,jahr,halbjahr,eingabestatus;INT VAR gewindex;BOOL CONST anschreibenzeigen:=FALSE ;PROC auskbetroffeneingang: standardvproc(maske)END PROC auskbetroffeneingang;PROC auskbetroffenstarten: lesemaskenwerte;IF schluesselmitdatumangegebenTHEN IF datumseingabekorrekt THEN fortfahrenELSE meldungdatumnichtkorrekt;zurueckzumdialogFI ;ELSE IF schlüsselohnedatumkorrektTHEN fortfahrenELSE meldungauswahlnichtsinnvoll; zurueckzumdialogFI ;FI .schluesselmitdatumangegeben:schuelerschluessel1<> niltextCAND schuelerschluessel2<>niltextCAND schuelerschluessel3<>niltext. datumseingabekorrekt:standardpruefe(6,4,0,0,niltext,eingabestatus); eingabestatus=0.schlüsselohnedatumkorrekt:schuelerschluessel3=niltextCAND schuelerschluessel1<>niltext.fortfahren:setzemitseitennummern(TRUE );gewindex :=dnrschueler;startenausfuehren.lesemaskenwerte:schuelerschluessel1:= standardmaskenfeld(namefeldnr);schuelerschluessel2:=standardmaskenfeld( vornamefeldnr);schuelerschluessel3:=standardmaskenfeld(geburtsdatumfeldnr). meldungauswahlnichtsinnvoll:standardmeldung(fehlermeld1,niltext). meldungdatumnichtkorrekt:standardmeldung(fehlermeld2,niltext). zurueckzumdialog:return(vater).startenausfuehren:BOOL CONST einzelbearbeitung :=TRUE ;reinitparsing;standardmeldung(wartemeldnr,niltext);#dr20.08.87# aktjgsthj:=schulkenndatum("Schulhalbjahr");aktuelleshalbjahr:=int(aktjgsthj); aktuellesschuljahr:=int(schulkenndatum("Schuljahr"));convertierehalbjahr; setzesonderwerteschulkenndaten;setzewerte;zusammengesetztesanschreiben( gewindex,anschreibenzeigen,einzelbearbeitung,BOOL PROC auskbetroffensonderwerte,BOOL PROC multistopauskunft,TEXT PROC druckdateiauskzusammenstellen).setzewerte:putwert(fnrsufamnames, schuelerschluessel1);putwert(fnrsurufnames,schuelerschluessel2);putwert( fnrsugebdatums,datumskonversion(schuelerschluessel3)).convertierehalbjahr:IF aktuelleshalbjahr=1THEN jahr:=int(subtext(wert(2),1,2));halbjahr:=2ELSE jahr :=int(subtext(wert(2),3,4));halbjahr:=1FI .END PROC auskbetroffenstarten; BOOL PROC auskbetroffensonderwerte:LET nein="n",ja="j",langtextnein="nein", langtextja="ja";initialisieresonderwerte;holediffdaten;adressat((wert( fnrsurufnames)SUB 1)+punkt+blank+wert(fnrsufamnames));setzesonderwert(swiort, wert(fnrsuplzorts));setzesonderwert(swiorterzber,wert(fnrsuplzorte)); setzesonderwert(swistrasseerz,wert(fnrsustrnre));setzesonderwert(switelerz, wert(fnrsutelnre));sucheadressezurschule(wert(fnrsuskennlschule)); setzesonderwert(swiortletzteschule,wert(fnrschplzort));setzesonderwert( swischulform,wert(fnrschart));setzesonderwert(swilangtextschulform,langtext( suffix6,wert(fnrschart)));setzesonderwert(swinameletzte,wert(fnrschname)); setzesonderwert(swistrasseletzte,wert(fnrschstrnr));sucheadressezurschule( wert(fnrsuskennnschule));setzesonderwert(swiortneueschule,wert(fnrschplzort)) ;setzesonderwert(swinameneue,wert(fnrschname));setzesonderwert(swistrasseneue ,wert(fnrschstrnr));setzesonderwert(swiwohntbei,wohntbei);setzesonderwert( swilangtextgeschl,langtextgeschl);setzesonderwert(swilangtextspaetaus, langtextspaetaus);setzesonderwert(swilangtextrelizeugnis,langtextrelizeugnis) ;setzesonderwert(swilangtextstatus,langtextstatus);setzesonderwert( swilangtextortsteil,langtext(suffix1,wert(fnrsuortsteils)));setzesonderwert( swilangtexterzber,langtext(suffix2,wert(fnrsuverhes)));setzesonderwert( swilangtextstaatsan,langtext(suffix3,wert(fnrsustaatsangs)));setzesonderwert( swilangtextsprache,langtext(suffix4,wert(fnrsumuttersprache))); setzesonderwert(swilangtextrelizug,langtext(suffix5,wert(fnrsureligionsz))); setzesonderwert(swilangtextzugang,langtext(suffix7,wert(fnrsuartzugang))); setzesonderwert(swilangtextabgang,langtext(suffix8,wert(fnrsuabggrund))); setzesonderwert(swilangtextabschluss,langtext(suffix9,wert(fnrsuabschluss))); setzesonderwert(swilangtextfremdspr1,langtextfach(wert(fnrdd1fremdfach))); setzesonderwert(swilangtextfremdspr2,langtextfach(wert(fnrdd2fremdfach))); setzesonderwert(swilangtextfremdspr3,langtextfach(wert(fnrdd3fremdfach))); setzesonderwert(swilangtextfremdspr4,langtextfach(wert(fnrdd4fremdfach))); setzesonderwert(swilangtextreliunt,langtextfach(wert(fnrddreliunter))); setzesonderwert(swilangtextkumu,langtextfach(wert(fnrddkunstmusik))); setzesonderwert(swilangtextwpf191,langtextfach(wert(fnrddfach091a))); setzesonderwert(swilangtextwpf291,langtextfach(wert(fnrddfach091b))); setzesonderwert(swilangtextwpf192,langtextfach(wert(fnrddfach092a))); setzesonderwert(swilangtextwpf292,langtextfach(wert(fnrddfach092b))); setzesonderwert(swilangtextwpf1101,langtextfach(wert(fnrddfach101a))); setzesonderwert(swilangtextwpf2101,langtextfach(wert(fnrddfach101b))); setzesonderwert(swilangtextwpf1102,langtextfach(wert(fnrddfach102a))); setzesonderwert(swilangtextwpf2102,langtextfach(wert(fnrddfach102b))); setzesonderwert(swilangtextag1,langtextfach(wert(fnrddagthema1))); setzesonderwert(swilangtextag2,langtextfach(wert(fnrddagthema2))); setzesonderwert(swilangtextag3,langtextfach(wert(fnrddagthema3))); setzesonderwert(swiaufbschuljeintrsek2,aufbschuljahr(fnrsueintrittinsek)); setzesonderwert(swiaufbhjafremdspr1,aufbhalbjahr(fnrdd1fremdb)); setzesonderwert(swiaufbhjefremdspr1,aufbhalbjahr(fnrdd1fremde)); setzesonderwert(swiaufbhjafremdspr2,aufbhalbjahr(fnrdd2fremdb)); setzesonderwert(swiaufbhjefremdspr2,aufbhalbjahr(fnrdd2fremde)); setzesonderwert(swiaufbhjafremdspr3,aufbhalbjahr(fnrdd3fremdb)); setzesonderwert(swiaufbhjefremdspr3,aufbhalbjahr(fnrdd3fremde)); setzesonderwert(swiaufbhjafremdspr4,aufbhalbjahr(fnrdd4fremdb)); setzesonderwert(swiaufbhjefremdspr4,aufbhalbjahr(fnrdd4fremde)); setzesonderwert(swiaufbhjaag1,aufbhalbjahr(fnrddagthema1b));setzesonderwert( swiaufbhjeag1,aufbhalbjahr(fnrddagthema1e));setzesonderwert(swiaufbhjaag2, aufbhalbjahr(fnrddagthema2b));setzesonderwert(swiaufbhjeag2,aufbhalbjahr( fnrddagthema2e));setzesonderwert(swiaufbhjaag3,aufbhalbjahr(fnrddagthema3b)); setzesonderwert(swiaufbhjeag3,aufbhalbjahr(fnrddagthema3e));TRUE . holediffdaten:readtid(dnrdiffdaten,zugriff(fnrsutiddiffdaten)).langtextstatus :IF wert(fnrsustatuss)="n05"THEN geklammert( "Neuangemeldet zur Jahrgangsstufe 5")ELIF wert(fnrsustatuss)="n011"THEN geklammert("Neuangemeldet zu jahrgangsstufe 11")ELIF wert(fnrsustatuss)="nso" THEN geklammert("Neuangemeldet")ELIF wert(fnrsustatuss)="abg"THEN geklammert( "Abgegangen")ELIF wert(fnrsustatuss)="ls"THEN geklammert( "Laufendes Schuljahr")ELSE geklammert("Kein Eintrag")FI .wohntbei:IF wert( fnrsuwohntbei)=niltextTHEN niltextELSE "bei: "+wert(fnrsuwohntbei)FI . langtextgeschl:LET weiblich="w",langtextweibl="weiblich",langtextmaennl= "männlich";IF wert(fnrsugeschlechts)=weiblichTHEN kla+langtextweibl+klzELSE kla+langtextmaennl+klzFI .langtextspaetaus:IF wert(fnrsuspaetaus)=neinTHEN langtextneinELIF wert(fnrsuspaetaus)=jaTHEN langtextjaELSE niltextFI . langtextrelizeugnis:IF wert(fnrsureligionsz)=neinTHEN langtextneinELIF wert( fnrsureligionsz)=jaTHEN langtextjaELSE niltextFI .END PROC auskbetroffensonderwerte;PROC sucheadressezurschule(TEXT CONST schulk): inittupel(dnrschulen);IF schulk<>""THEN putwert(fnrschkennung,schulk);search( dnrschulen,TRUE );FI ENDPROC sucheadressezurschule;TEXT PROC langtextfach( TEXT CONST kuerzel):inittupel(dnrfaecher);putwert(dnrfaecher+1,kuerzel); search(dnrfaecher,TRUE );geklammert(wert(dnrfaecher+2))END PROC langtextfach; TEXT PROC langtext(TEXT CONST bestand,bemerkungsschluessel):TEXT VAR gefundenerlangtext:="";INT VAR bestandsid:=0;putwert(fnrschlsachgebiet, bestand);putwert(fnrschlschluessel,bemerkungsschluessel);search(dnrschluessel ,TRUE );IF dbstatus=okTHEN gefundenerlangtext:=wert(fnrschllangtext)ELSE dbstatus(ok);FI ;geklammert(gefundenerlangtext)END PROC langtext;TEXT PROC geklammert(TEXT CONST zuklammern):IF zuklammern=niltextTHEN niltextELSE kla+ zuklammern+klzFI ENDPROC geklammert;TEXT PROC aufbschuljahr(INT CONST dbindex ):LET trenner="/";IF wert(dbindex)=niltextOR wert(dbindex)="0"THEN niltext ELSE subtext(wert(dbindex),1,2)+trenner+subtext(wert(dbindex),3,4)FI END PROC aufbschuljahr;TEXT PROC aufbhalbjahr(INT CONST dbindex):LET trenner="."; IF wert(dbindex)=niltextTHEN niltextELSE subtext(wert(dbindex),1,2)+trenner+ subtext(wert(dbindex),3,3)FI END PROC aufbhalbjahr;TEXT PROC aufbhalbjahr( INT CONST dbindex,ae):LET trenner=".";TEXT VAR hj:=subtext(wert(dbindex),(ae* 3)-2,ae*3);IF hj=niltextTHEN niltextELSE subtext(hj,1,2)+trenner+subtext(hj,3 ,3)FI END PROC aufbhalbjahr;TEXT PROC druckdateiauskzusammenstellen:LET prevordruck="vordruck",postvordruck=" auskunft betroffene",vordruck1= "vordruck1 auskunft betroffene",vordruck2="vordruck2 auskunft betroffene", vordruck3="vordruck3 auskunft betroffene",vordruck4= "vordruck4 auskunft betroffene",vordruck5="vordruck5 auskunft betroffene", anzvordrucke=5,hilfsdatei1="hilfsdatei1",hilfsdatei2="hilfsdatei2", hilfsdateikopf="hilfsdatei kopf",druckdatei="liste.1",manager= "anschreiben server";INT VAR i,zeilenanz1,zeilenanz2,zeilenanzkopf,anzhj; TEXT VAR zeile,schuljahr;INT VAR neuesschuljahr;FILE VAR f,g,kopfspeicher; aktuellevordruckevommanagerholen;druckvorbereiten; allgemeineschuelerdatenindiedruckdateischreiben; halbjahresdatendesschuelersindiedruckdateischreiben; letztehilfsdateiindruckdateibringen;drucknachbereitenohneausdrucken; druckdatei.aktuellevordruckevommanagerholen:FOR iFROM 1UPTO anzvordruckeREP forget(prevordruck+text(i)+postvordruck,quiet);fetch(prevordruck+text(i)+ postvordruck,/manager)PER .allgemeineschuelerdatenindiedruckdateischreiben: briefalternative(vordruck1,hilfsdatei1);f:=sequentialfile(input,hilfsdatei1); #limit(75);##"unerklärliche"Z eilenumbrüche#maxlinelength(f,75);zeilenanz1:= lines(f);FOR iFROM 1UPTO zeilenanz1REP getline(f,zeile);druckzeileschreiben( zeile)PER ;seitenwechsel;forget(hilfsdatei1,quiet);briefalternative(vordruck2 ,hilfsdatei1);vordruck2merkenfuerfolgeseiten;briefalternative(vordruck3, hilfsdatei1);f:=sequentialfile(output,hilfsdatei1);zeilenanz1:=lines(f). halbjahresdatendesschuelersindiedruckdateischreiben:bestimme5teshjvor;lesehjd ;WHILE (dbstatus=ok)CAND gleicherschuelerREP initialisieresonderwerte; alteanweisungsfolge;succ(dnrhalbjahresdaten);PER .bestimme5teshjvor:anzhj:=-5 ;bestimmeentsprechendesschuljahr.bestimmeentsprechendesschuljahr:IF anzhj<0 THEN anzhj:=anzhj*-1;neuesschuljahr:=jahr-(anzhjDIV 2);IF (anzhjMOD 2)=0CAND halbjahr=2THEN schuljahr:=text(neuesschuljahr)+text(neuesschuljahr+1);ELSE schuljahr:=text(neuesschuljahr-1)+text(neuesschuljahr);FI ELSE neuesschuljahr :=jahr+(anzhjDIV 2)+anzhjMOD 2;IF ((anzhjMOD 2)=1CAND halbjahr=2)COR ( halbjahr=1)THEN schuljahr:=text(neuesschuljahr-1)+text(neuesschuljahr);ELSE schuljahr:=text(neuesschuljahr)+text(neuesschuljahr+1);FI FI .lesehjd: inittupel(dnrhalbjahresdaten);uebernehmenschuelerdaten;search( dnrhalbjahresdaten,FALSE ).uebernehmenschuelerdaten:putwert(fnrhjdfamnames, wert(fnrsufamnames));putwert(fnrhjdrufnames,wert(fnrsurufnames));putwert( fnrhjdgebdats,wert(fnrsugebdatums));putwert(fnrhjdsj,schuljahr);putintwert( fnrhjdhj,neueshalbjahr);.neueshalbjahr:IF aktuelleshalbjahr=1THEN 2ELSE 1FI . gleicherschueler:wert(fnrhjdfamnames)=wert(fnrsufamnames)CAND wert( fnrhjdrufnames)=wert(fnrsurufnames)CAND wert(fnrhjdgebdats)=wert( fnrsugebdatums).alteanweisungsfolge:teil1hjdaufbereiten(vordruck4,hilfsdatei2 );aufbereitetedatenunterbringen;teil2hjdaufbereiten(vordruck5,hilfsdatei2); aufbereitetedatenunterbringen;.vordruck2merkenfuerfolgeseiten:copy( hilfsdatei1,hilfsdateikopf);kopfspeicher:=sequentialfile(input,hilfsdateikopf );zeilenanzkopf:=lines(kopfspeicher).aufbereitetedatenunterbringen:g:= sequentialfile(input,hilfsdatei2);#limit(75);##"unerklärliche"Z eilenumbrüche #maxlinelength(g,75);zeilenanz2:=lines(g);IF zeilenanz1+zeilenanz2> drucklaengeTHEN hilfsdatei1indruckdateibringenundloeschen;seitenwechsel; vordruckkopfnachhilfsdatei1;zeilenanz1:=zeilenanz2+zeilenanzkopf;ELSE zeilenanz1:=zeilenanz1+zeilenanz2;FI ;hilfsdatei2nachhilfsdatei1undloeschen;. hilfsdatei1indruckdateibringenundloeschen:input(f);FOR iFROM 1UPTO zeilenanz1 REP getline(f,zeile);druckzeileschreiben(zeile);PER ;forget(hilfsdatei1,quiet ).vordruckkopfnachhilfsdatei1:f:=sequentialfile(output,hilfsdatei1);input( kopfspeicher);FOR iFROM 1UPTO zeilenanzkopfREP getline(kopfspeicher,zeile); putline(f,zeile)PER .hilfsdatei2nachhilfsdatei1undloeschen:FOR iFROM 1UPTO zeilenanz2REP getline(g,zeile);putline(f,zeile)PER ;forget(hilfsdatei2,quiet) .letztehilfsdateiindruckdateibringen:input(f);FOR iFROM 1UPTO zeilenanz1REP getline(f,zeile);druckzeileschreiben(zeile)PER ;forget(hilfsdateikopf,quiet); forget(hilfsdatei1,quiet).END PROC druckdateiauskzusammenstellen;PROC teil1hjdaufbereiten(TEXT CONST vordruck,hilfsdatei):LET wiederholung= " Wiederholung",zuwiederholen=" zu wiederholen",wirdwiederholt= " wird wiederholt",swiaufbschuljahr=511,swiwarnung1=512,swibemnr1=513, swilangtextbemnr1=514,swiwarnung2=515,swibemnr2=516,swilangtextbemnr2=517, swiversetzung=518,swilangtextversetzung=519,swistartnachpruefungen=520, swinotenachpruef=527,swistartzeugnisbemerk=528,swistartversaeumtverspaetet= 534,swilangtextbemerknachpruefung=537;INT VAR hilfsindex,i,swi;TEXT VAR wie; wie:=wert(fnrhjdversetzung);setzesonderwert(swiaufbschuljahr,aufbschuljahr( fnrhjdsj));setzesonderwert(swiwarnung1,wert(fnrhjdvermblau));setzesonderwert( swibemnr1,wert(fnrhjdbemblau));setzesonderwert(swilangtextbemnr1,langtext( suffix12,wert(fnrhjdbemblau)));setzesonderwert(swiwarnung2,wert( fnrhjdvermnachwarn));setzesonderwert(swibemnr2,wert(fnrhjdbemnachwarn)); setzesonderwert(swilangtextbemnr2,langtext(suffix13,wert(fnrhjdbemnachwarn))) ;setzesonderwert(swiversetzung,wert(fnrhjdversetzung));setzesonderwert( swilangtextversetzung,langtext(suffix14,wert(fnrhjdversetzung))); setzesonderwert(swilangtextbemerknachpruefung,langtext("Bemerkungen", geklammert(wert(fnrhjdbemnach))));swi:=swistartnachpruefungen;FOR iFROM 1 UPTO 3REP setzesonderwert(swi,wert(fnrhjdnachfach1+i-1));swiINCR 1; setzesonderwert(swi,langtextfach(wert(fnrhjdnachfach1+i-1)));swiINCR 1; hilfsindexINCR 1PER ;setzesonderwert(swi,wert(fnrhjdnachfach)); setzesonderwert(swinotenachpruef,wert(fnrhjdnacherg));swi:= swistartzeugnisbemerk;FOR iFROM 1UPTO 3REP setzesonderwert(swi,wert( fnrhjdbemzeug1+i-1));swiINCR 1;setzesonderwert(swi,langtext(suffix13,wert( fnrhjdbemzeug1+i-1)));swiINCR 1;hilfsindexINCR 1PER ;swi:= swistartversaeumtverspaetet;FOR iFROM 1UPTO 3REP setzesonderwert(swi,wert( fnrhjdversstdm+i-1));swiINCR 1;hilfsindexINCR 1PER ;briefalternative(vordruck ,hilfsdatei).END PROC teil1hjdaufbereiten;PROC teil2hjdaufbereiten(TEXT CONST vordruck,hilfsdatei):LET swifach=538,swiart=539,swiklau=541,swiknr=542, swiwarn=543,swinote=544,swibem=545;setzesonderwert(swifach,aufbereiteterwert( fnrhjdfach,2));setzesonderwert(swiart,aufbereiteterwert(fnrhjdkursart,2)); setzesonderwert(swiklau,aufbereiteterwert(fnrhjdklausurteiln,1)); setzesonderwert(swiknr,aufbereiteterwert(fnrhjdlerngrpkenn,4)); setzesonderwert(swiwarn,aufbereiteterwert(fnrhjdvermwarnung,1)); setzesonderwert(swinote,aufbereiteterwert(fnrhjdnotepunkte,2)); setzesonderwert(swibem,aufbereiteterwert(fnrhjdbemerk,3));fuellebemerkungen; briefalternative(vordruck,hilfsdatei).fuellebemerkungen:LET kuerzelbreite=3; INT VAR i,l:=length(wert(fnrhjdbemerk))DIV kuerzelbreite,von,bis;TEXT VAR kuerzel;INT VAR swib:=546;FOR iFROM 1UPTO lREP von:=((i-1)*kuerzelbreite)+1; bis:=i*kuerzelbreite;kuerzel:=subtext(wert(fnrhjdbemerk),von,bis); setzesonderwert(swib,kuerzel);swibINCR 1;setzesonderwert(swib,langtext( suffix13,kuerzel));swibINCR 1PER .END PROC teil2hjdaufbereiten;TEXT PROC aufbereiteterwert(INT CONST fnr,kuerzelbreite):LET doppelpunkt=":",anzspalten =13,spaltenbreitetab=4;INT VAR i,l:=length(wert(fnr))DIV kuerzelbreite,von, bis,blankanz;TEXT VAR zeile:="",kuerzel;#IF l>nullTHEN #FOR iFROM 1UPTO #l# anzspaltenREP von:=((i-1)*kuerzelbreite)+1;bis:=i*kuerzelbreite;kuerzel:= subtext(wert(fnr),von,bis);zeile:=zeile+aufbkuerzelPER ;#ELSE zeile:= anzspalten*(doppelpunkt+spaltenbreitetab*blank)FI ;#zeile.aufbkuerzel:IF length(kuerzel)<>nullTHEN blankanz:=spaltenbreitetab-length(kuerzel); doppelpunkt+preblankanz*blank+kuerzel+postblankanz*blankELSE doppelpunkt+ spaltenbreitetab*blankFI .preblankanz:blankanzDIV 2.postblankanz:blankanz- preblankanz.ENDPROC aufbereiteterwert;BOOL PROC multistopauskunft:( schuelerschluessel1=wert(fnrsufamnames))CAND (schuelerschluessel2=wert( fnrsurufnames)COR schuelerschluessel2="")CAND (schuelerschluessel3= datumrekonversion(wert(fnrsugebdatums))COR schuelerschluessel3="")END PROC multistopauskunft;TEXT PROC leerintintext(TEXT CONST t):IF t="0"THEN ""ELSE t FI END PROC leerintintext;TEXT PROC kurz(TEXT CONST t):TEXT VAR txt:=niltext; IF t<>niltextTHEN txt:=t+blankFI ;txtEND PROC kurz;END PACKET auskbetroffen;