PACKET klassengruppenlistenDEFINES klassengruppenspezielleteile:LET klassengruppeneingangsmaske="mu liste einfach eingang",spaltentrenner=" ", klassengruppenanfpos=2,spaltenbreite1=12,spaltenbreite2=7,niltext="",blank= " ",strich="-",null=0,ueberschriftenzeilen=2,ausgkopflaenge=2,ausgfeldlaenge= 1,anzahlderobjekteprobildschirm=5,mnrauswahlnichtsinnvoll=56, mnrbearbeitetwerden=352;TEXT CONST spaltentext1:="Klassengruppe",spaltentext2 :="Bezeichnung Zusammensetzung";TEXT VAR klassengrueberschrift:= "Liste der Raumgruppen",schuelergrfuerzeile1,schuelergrfuerzeile2, schuelergrfuerzeile3,klassengruppe,alteklassengruppe:="",anfbuchstabe, neueranfbuchstabe:="",teiltextmeldung:= "die Klassengruppe dem Anfangsbuchstaben:";INT VAR eingabestatus,bildanfang, druckzeilenzahl;LET AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF =ROW ausgkopflaengeTEXT ,AUSGKOPFDRUCK =ROW ausgkopflaengeTEXT ;AUSGFELD VAR ausgfeld;AUSGKOPF VAR ausgkopf;AUSGKOPFDRUCK VAR ausgkopfdruck;BOOL PROC multistop:TRUE END PROC multistop;PROC klassengruppenspezielleteile(INT CONST nr):SELECT nrOF CASE 1:klassengrdialogvorbereitenCASE 2: klassengreingabenrichtigCASE 3:klassengrlistenvorbereitenCASE 4: klassengrdruckvorbereitenCASE 5:klassengrseitedruckenCASE 6: klassengrbildschirmvorbereitenCASE 7:klassengrseitezeigenENDSELECT .END PROC klassengruppenspezielleteile;PROC klassengrdialogvorbereiten: klassengrueberschrift:=text(vergleichsknoten);setzeanfangswerte( klassengruppeneingangsmaske,klassengruppenanfpos)END PROC klassengrdialogvorbereiten;PROC klassengreingabenrichtig:LET fnrausgdrucker=2 ,fnrausgbild=3;standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext, eingabestatus);IF eingabestatus=0THEN setzeeingabetest(TRUE ); setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=niltext);ELSE meldefehler ;setzeeingabetest(FALSE )FI ;.meldefehler:standardmeldung( mnrauswahlnichtsinnvoll,niltext).END PROC klassengreingabenrichtig;PROC klassengrlistenvorbereiten:BOOL VAR b;initspalten;setzespaltentrenner( spaltentrenner);inittupel(dnrklassengruppen);setzeidentiwert("");initobli( anzahlderobjekteprobildschirm);objektlistestarten(dnrklassengruppen,"", fnrkgklassengrp,TRUE ,b);setzebestandende(NOT multistopCOR b);END PROC klassengrlistenvorbereiten;PROC klassengrbildschirmvorbereiten:LET fnrausganf =2;standardkopfmaskeaktualisieren(klassengrueberschrift);bildanfang:= fnrausganf;setzebildanfangsposition(bildanfang);initspalten; setzespaltenbreite(bildbreite);spaltenweise(spaltentext1);ausgfeld(1):=zeile; ausgfeld(1)IN ausgabepos;erhoeheausgabeposumeins;spaltenweise(spaltentext2); ausgfeld(1):=zeile;ausgfeld(1)IN ausgabepos;erhoeheausgabeposumeins; spaltenweise(blank);ausgfeld(1):=zeile;ausgfeld(1)IN ausgabepos; erhoeheausgabeposumeins;setzebildanfangsposition(5);spaltenbreitensetzenEND PROC klassengrbildschirmvorbereiten;PROC klassengrseitezeigen:blaettern(PROC (INT CONST )klassengrdatenzeigen,aktion,TRUE ,FALSE ,BOOL PROC multistop)END PROC klassengrseitezeigen;PROC klassengrdatenzeigen(INT CONST x): klassengrdatenholen;klassengrdatenaufbereitenbild1; klassengrdatenaufbildschirm;klassengrdatenaufbereitenbild2; klassengrdatenaufbildschirm;klassengrdatenaufbereitenbild3; klassengrdatenaufbildschirmEND PROC klassengrdatenzeigen;PROC klassengrdatenaufbereitenbild1:INT VAR y:=1;spaltenweise(klassengruppe); spaltenweise(subtext(schuelergrfuerzeile1,y,y+5));yINCR 6;spaltenweise( subtext(schuelergrfuerzeile1,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile1,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile1,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile1,y,y+5));yINCR 6;END PROC klassengrdatenaufbereitenbild1; PROC klassengrdatenaufbereitenbild2:INT VAR y:=1;spaltenweise(blank); spaltenweise(subtext(schuelergrfuerzeile2,y,y+5));yINCR 6;spaltenweise( subtext(schuelergrfuerzeile2,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile2,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile2,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile2,y,y+5));yINCR 6;END PROC klassengrdatenaufbereitenbild2; PROC klassengrdatenaufbereitenbild3:INT VAR y:=1;spaltenweise(blank); spaltenweise(subtext(schuelergrfuerzeile3,y,y+5));yINCR 6;spaltenweise( subtext(schuelergrfuerzeile3,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile3,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile3,y,y+5));yINCR 6;spaltenweise(subtext( schuelergrfuerzeile3,y,y+5));yINCR 6;END PROC klassengrdatenaufbereitenbild3; PROC klassengrdatenaufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP ausgfeld(i):=zeile;ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeins;PER ;END PROC klassengrdatenaufbildschirm;PROC klassengrdruckvorbereiten: setzebestandende(FALSE );anfbuchstabe:=" ";druckvorbereiten; variablenfuerdrucksetzen;initdruckkopf(zentriert(klassengrueberschrift, druckbreite),zentriert(length(klassengrueberschrift)*strich,druckbreite)); initausgabekopfdruck;inittupel(dnrklassengruppen);spaltenbreitensetzen; lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC multistop);.variablenfuerdrucksetzen:druckzeilenzahl:=drucklaenge( ueberschriftenzeilen)-ausgkopflaenge.END PROC klassengrdruckvorbereiten;PROC klassengrseitedrucken:klassengrueberschriftdrucken;seitedrucken(PROC (INT VAR )klassengrdatendrucken,druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistop );seitenwechsel.END PROC klassengrseitedrucken;PROC klassengrueberschriftdrucken:INT VAR i;druckkopfschreiben;FOR iFROM 1UPTO ausgkopflaengeREP druckzeileschreiben(ausgkopfdruck(i))PER ;ausgfeld(1):= zeile;druckzeileschreiben(ausgfeld(1))END PROC klassengrueberschriftdrucken; PROC klassengrdatendrucken(INT VAR zeilenzaehler):LET markiert="#"; klassengrdatenholen;ggflmeldunganfbuchstabe;klassengrdatenaufbereitenbild1; zeilenzaehlerINCR ausgfeldlaenge;klassengrindruckdatei;IF schuelergrfuerzeile2<>niltextTHEN klassengrdatenaufbereitenbild2; zeilenzaehlerINCR ausgfeldlaenge;klassengrindruckdatei;IF schuelergrfuerzeile3<>niltextTHEN klassengrdatenaufbereitenbild3; zeilenzaehlerINCR ausgfeldlaenge;klassengrindruckdatei;FI FI ;. ggflmeldunganfbuchstabe:IF anfbuchstabegeaendertTHEN meldunganfbuchstabeFI . anfbuchstabegeaendert:neueranfbuchstabe:=klassengruppeSUB 1;anfbuchstabe<> neueranfbuchstabe.meldunganfbuchstabe:standardmeldung(mnrbearbeitetwerden, teiltextmeldung+neueranfbuchstabe+markiert);anfbuchstabe:=neueranfbuchstabe. END PROC klassengrdatendrucken;PROC initausgabekopfdruck:ausgkopfdruck(1):= spaltentext1;ausgkopfdruck(2):=spaltentext2;END PROC initausgabekopfdruck; PROC klassengrindruckdatei:ausgfeld(1):=zeile;INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP druckzeileschreiben(ausgfeld(1))PER END PROC klassengrindruckdatei;PROC spaltenbreitensetzen:INT VAR z;initspalten; setzespaltenbreite(spaltenbreite1);FOR zFROM 1UPTO 5REP setzespaltenbreite( spaltenbreite2);PER END PROC spaltenbreitensetzen;PROC klassengrdatenholen: klassengruppe:=wert(fnrkgklassengrp);schuelergrfuerzeile1:=subtext(wert( fnrkgschuelergrp),1,30);schuelergrfuerzeile2:=subtext(wert(fnrkgschuelergrp), 31,60);schuelergrfuerzeile3:=subtext(wert(fnrkgschuelergrp),61,90);END PROC klassengrdatenholen;END PACKET klassengruppenlisten;