PACKET schluesselundabkulisteDEFINES schlueabkulieingang, schlueabkulispezielleteile:LET niltext="",null=0,ueberschriftenzeilen=1, spalte1breite=10,anzspaltentrenner=1,ausgfeldlaenge=1,AUSGFELD =ROW ausgfeldlaengeTEXT ,schlueabkulieingangsmaske="mu liste einfach eingang", schlueabkulianfpos=2;#LET dnrschluessel=137,fnrschlsachgebiet=138, fnrschlschluessel=139,fnrschllangtext=140,dnrgesamtbestand=--,fnrbestandname= --,fnrbestandid=--;#INT CONST spalte2bildbreite:=bildbreite-anzspaltentrenner -spalte1breite;INT VAR spalte2druckbreite,druckzeilenzahl,bildanf, eingabestatus;TEXT VAR schlueabkuliueberschrift,bestand,schluesselabk, schluessellangtext;AUSGFELD VAR ausgfeld;#INT VAR sachgebiet;#BOOL PROC multistop:BOOL VAR b;b:=wert(fnrschlsachgebiet)=bestand;bENDPROC multistop; BOOL PROC multistopdruck:BOOL VAR b:=multistop;setzebestandende(NOT b);b ENDPROC multistopdruck;PROC schlueabkulieingang(TEXT CONST spezbestand): bestand:=spezbestand;eingangsmaskezeigenundparameterlesen(PROC schlueabkulispezielleteile).END PROC schlueabkulieingang;PROC schlueabkulispezielleteile(INT CONST nr):SELECT nrOF CASE 1: schlueabkulidialogvorbereitenCASE 2:schlueabkulieingabenrichtigCASE 3: schlueabkulilistenvorbereitenCASE 4:schlueabkulidruckvorbereitenCASE 5: schlueabkuliseitedruckenCASE 6:schlueabkulibildschirmvorbereitenCASE 7: schlueabkuliseitezeigenENDSELECT .END PROC schlueabkulispezielleteile;PROC schlueabkulidialogvorbereiten:schlueabkuliueberschrift:=text(vergleichsknoten );setzeanfangswerte(schlueabkulieingangsmaske,schlueabkulianfpos).END PROC schlueabkulidialogvorbereiten;PROC schlueabkulieingabenrichtig:LET fnrausgdrucker=2,fnrausgbild=3;standardpruefe(5,fnrausgdrucker,fnrausgbild, null,niltext,eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus); setzeeingabetest(FALSE )ELSE setzeausgabedrucker(standardmaskenfeld( fnrausgbild)=niltext);setzeeingabetest(TRUE )FI .END PROC schlueabkulieingabenrichtig;PROC bestandidbestimmenundalssachgebieteintragen: #jf##systemdbon;putwert(fnrbestandname,bestand);search(dnrgesamtbestand,TRUE );IF dbstatus=okTHEN sachgebiet:=intwert(fnrbestandid)ELSE sachgebiet:=maxint FI ;#systemdboff;inittupel(dnrschluessel);putwert(fnrschlsachgebiet,bestand) ENDPROC bestandidbestimmenundalssachgebieteintragen;PROC schlueabkulilistenvorbereiten:BOOL VAR b:=FALSE ; bestandidbestimmenundalssachgebieteintragen;initobli(19);#A nzahlproS eite# reinitparsing;setzeidentiwert("");objektlistestarten(dnrschluessel,"", fnrschlschluessel,TRUE ,b);setzebestandende(b)END PROC schlueabkulilistenvorbereiten;PROC schlueabkulibildschirmvorbereiten:LET fnrausganf=2;standardkopfmaskeaktualisieren(schlueabkuliueberschrift); initspalten;setzespaltenbreite(spalte1breite);setzespaltenbreite( spalte2bildbreite);bildanf:=fnrausganf;setzebildanfangsposition(bildanf).END PROC schlueabkulibildschirmvorbereiten;PROC schlueabkuliseitezeigen:blaettern (PROC (INT CONST )abkuerzungzeigen,aktion,TRUE ,TRUE ,BOOL PROC multistop); END PROC schlueabkuliseitezeigen;PROC abkuerzungzeigen(INT CONST dummy): abkuerzungholen;abkuerzungaufbereiten;abkuerzungaufbildschirm.END PROC abkuerzungzeigen;PROC abkuerzungaufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeinsEND REPEAT .END PROC abkuerzungaufbildschirm;PROC schlueabkulidruckvorbereiten: druckvorbereiten;variablenfuerdrucksetzen;initspalten;setzespaltenbreite( spalte1breite);setzespaltenbreite(spalte2druckbreite);initdruckkopf(zentriert (schlueabkuliueberschrift,druckbreite)); bestandidbestimmenundalssachgebieteintragen;lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC multistopdruck). variablenfuerdrucksetzen:spalte2druckbreite:=druckbreite-anzspaltentrenner- spalte1breite;druckzeilenzahl:=drucklaenge(ueberschriftenzeilen).END PROC schlueabkulidruckvorbereiten;PROC schlueabkuliseitedrucken: schlueabkuliueberschriftdrucken;seitedrucken(PROC (INT VAR )abkuerzungdrucken ,druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopdruck);seitenwechsel.END PROC schlueabkuliseitedrucken;PROC schlueabkuliueberschriftdrucken: druckkopfschreiben;END PROC schlueabkuliueberschriftdrucken;PROC abkuerzungdrucken(INT VAR zeilenzaehler):abkuerzungholen; abkuerzungaufbereiten;zeilenzaehlerINCR ausgfeldlaenge;abkuerzungindruckdatei .END PROC abkuerzungdrucken;PROC abkuerzungindruckdatei:druckzeileschreiben( ausgfeld(1)).END PROC abkuerzungindruckdatei;PROC abkuerzungaufbereiten: schreibeabkuerzunglangtext.schreibeabkuerzunglangtext:spaltenweise( schluesselabk);spaltenweise(schluessellangtext);ausgfeld(1):=zeile.END PROC abkuerzungaufbereiten;PROC abkuerzungholen:schluesselabk:=wert( fnrschlschluessel);schluessellangtext:=wert(fnrschllangtext);END PROC abkuerzungholen;END PACKET schluesselundabkuliste;