app/schulis/2.2.1/src/0.listen.schuelergruppen

Raw file
Back to index

PACKET schuelergruppenlistenDEFINES schuelergruplispezielleteile:LET 
AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF =ROW ausgkopflaengeTEXT ,
AUSGKOPFDRUCK =ROW ausgkopflaengeTEXT ;AUSGFELD VAR ausgfeld;AUSGKOPF VAR 
ausgkopf;AUSGKOPFDRUCK VAR ausgkopfdruck;LET schuelergruppeneingangsmaske=
"ms liste schuelergruppen",ausgfeldlaenge=1,anzahlderobjekteprobildschirm=17,
ueberschriftenzeilen=2,ausgkopflaenge=2,spaltentrenner=" ",
schuelergruppenanfpos=2,jgstspalte1breite=14,zugspalte2breite=9,
lehrerspalte3breite=15,stellvspalte4breite=15,strich="/",niltext="",blank=" "
,null=0,mnrauswahlnichtsinnvoll=56;LET textsj="Schuljahr",texthj=
"Schulhalbjahr";TEXT VAR schuelergruppenueberschrift:="",schuljahr,halbjahr,
jahrgangsstufe,altejahrgangsstufe:="",bearbeitungsschuljahr,
bearbeitungshalbjahr,zugtutor,klassenlehrer,stellvertreter,
auswahlnichtsinnvoll;TEXT CONST leerzeile:=bildbreite*blank,textueberschrift
:=("Jahrgangsstufe"+blank+"Zug/Tutor"+blank+"Klassenleiter"+3*blank+
"Stellvertreter");INT VAR eingabestatus,bildanfang,spalte2druckbreite,
druckzeilenzahl;INT CONST aktuelleindexnr:=dnraktschuelergruppen;BOOL VAR 
aktuelleshjgewaehlt;BOOL PROC multistop:BOOL VAR b;IF dbstatus=okTHEN b:=(
bearbeitungshalbjahr=wert(fnrsgrphj)AND bearbeitungsschuljahr=wert(fnrsgrpsj)
)ELSE b:=FALSE FI ;bEND PROC multistop;BOOL PROC multistopsim:
setzebestandende(FALSE );BOOL VAR b:=multistop;setzebestandende(NOT b);bEND 
PROC multistopsim;PROC schuelergruplispezielleteile(INT CONST nr):SELECT nr
OF CASE 1:schuelergruppendialogvorbereitenCASE 2:
schuelergruppeneingabenrichtigCASE 3:schuelergruppenlistenvorbereitenCASE 4:
schuelergruppendruckvorbereitenCASE 5:schuelergruppenseitedruckenCASE 6:
schuelergruppenbildschirmvorbereitenCASE 7:schuelergruppenseitezeigen
ENDSELECT .END PROC schuelergruplispezielleteile;PROC 
schuelergruppendialogvorbereiten:schuelergruppenueberschrift:=text(
vergleichsknoten);setzeanfangswerte(schuelergruppeneingangsmaske,
schuelergruppenanfpos)END PROC schuelergruppendialogvorbereiten;PROC 
schuelergruppeneingabenrichtig:LET fnrausggeplanteshj=2,fnrausgaktuelleshj=3,
fnrausgdrucker=4,fnrausgbild=5;standardpruefe(5,fnrausgdrucker,fnrausgbild,
null,niltext,eingabestatus);IF eingabestatus=0THEN standardpruefe(5,
fnrausggeplanteshj,fnrausgaktuelleshj,null,niltext,eingabestatus);IF 
eingabestatus=0THEN gewaehlteshalbjahrmerken;setzeeingabetest(TRUE );
setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=niltext)ELSE meldefehler;
setzeeingabetest(FALSE )FI ;ELSE meldefehler;setzeeingabetest(FALSE )FI .
meldefehler:meldungstext(mnrauswahlnichtsinnvoll,auswahlnichtsinnvoll);
standardmeldung(auswahlnichtsinnvoll,niltext).gewaehlteshalbjahrmerken:
aktuelleshjgewaehlt:=standardmaskenfeld(fnrausgaktuelleshj)<>niltext.END 
PROC schuelergruppeneingabenrichtig;PROC schuelergruppenlistenvorbereiten:
BOOL VAR b;initspalten;setzespaltentrenner(spaltentrenner);
bearbeitungsschuljahr:=schulkenndatum(textsj);bearbeitungshalbjahr:=
schulkenndatum(texthj);IF NOT (aktuelleshjgewaehlt)THEN 
geplanteshjundsjberechnen(bearbeitungshalbjahr,bearbeitungsschuljahr)FI ;
inittupel(dnraktschuelergruppen);setzeidentiwert("");initobli(
anzahlderobjekteprobildschirm);parsenooffields(6);putwert(fnrsgrpsj,
bearbeitungsschuljahr);putwert(fnrsgrphj,bearbeitungshalbjahr);
setzescanendewert("255");objektlistestarten(aktuelleindexnr,
bearbeitungsschuljahr,fnrsgrpjgst,TRUE ,b);setzebestandende(NOT multistopCOR 
b);END PROC schuelergruppenlistenvorbereiten;PROC 
schuelergruppenbildschirmvorbereiten:LET fnrausganf=2;
standardkopfmaskeaktualisieren(schuelergruppenueberschrift);bildanfang:=
fnrausganf;setzebildanfangsposition(bildanfang);INT VAR i;setzespaltenbreite(
bildbreite);spaltenweise(textueberschrift);ausgfeld(1):=zeile;ausgfeld(1)IN 
ausgabepos;erhoeheausgabeposumeins;spaltenweise(leerzeile);ausgfeld(1):=zeile
;ausgfeld(1)IN ausgabepos;erhoeheausgabeposumeins;setzebildanfangsposition(4)
;initspalten;setzespaltentrenner(spaltentrenner);setzespaltenbreite(
jgstspalte1breite);setzespaltenbreite(zugspalte2breite);setzespaltenbreite(
lehrerspalte3breite);setzespaltenbreite(stellvspalte4breite);END PROC 
schuelergruppenbildschirmvorbereiten;PROC schuelergruppenseitezeigen:
blaettern(PROC (INT CONST )schuelergruppendatenzeigen,aktion,TRUE ,TRUE ,
BOOL PROC multistop)END PROC schuelergruppenseitezeigen;PROC 
schuelergruppendatenzeigen(INT CONST x):schuelergruppendatenholen;
schuelergruppendatenaufbereitenbild;schuelergruppendatenaufbildschirm;END 
PROC schuelergruppendatenzeigen;PROC schuelergruppendatenholen:schuljahr:=
wert(fnrsgrpsj);halbjahr:=wert(fnrsgrphj);jahrgangsstufe:=wert(fnrsgrpjgst);
zugtutor:=wert(fnrsgrpkennung);klassenlehrer:=wert(fnrsgrplehrer);
stellvertreter:=wert(fnrsgrpstellvlehrer);END PROC schuelergruppendatenholen;
PROC schuelergruppendatenaufbereitenbild:IF length(jahrgangsstufe)=1THEN 
spaltenweise(13*blank+jahrgangsstufe);ELSE spaltenweise(12*blank+
jahrgangsstufe);FI ;spaltenweise(zugtutor);spaltenweise(klassenlehrer);
spaltenweise(stellvertreter);END PROC schuelergruppendatenaufbereitenbild;
PROC schuelergruppendatenaufbildschirm:INT VAR i;FOR iFROM 1UPTO 
ausgfeldlaengeREP ausgfeld(i):=zeile;ausgfeld(i)IN ausgabepos;
erhoeheausgabeposumeins;PER ;END PROC schuelergruppendatenaufbildschirm;PROC 
schuelergruppendruckvorbereiten:setzebestandende(FALSE );druckvorbereiten;
variablenfuerdrucksetzen;TEXT VAR schjaufbereitet:=text(bearbeitungsschuljahr
,2)+strich+text(bearbeitungsschuljahr,2,3),halbjaufbereitet:=
bearbeitungshalbjahr+". Halbjahr";schuelergruppenueberschrift:=
"Liste der Schülergruppen im Schuljahr "+schjaufbereitet+blank+
halbjaufbereitet;initdruckkopf(zentriert(schuelergruppenueberschrift,
druckbreite),zentriert(length(schuelergruppenueberschrift)*"-",druckbreite));
initspalten;setzespaltenbreite(jgstspalte1breite);setzespaltenbreite(
zugspalte2breite);setzespaltenbreite(lehrerspalte3breite);setzespaltenbreite(
stellvspalte4breite);inittupel(dnraktschuelergruppen);initausgabekopfdruck;
putwert(fnrsgrpsj,bearbeitungsschuljahr);putwert(fnrsgrphj,
bearbeitungshalbjahr);lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT 
VAR )scanforward,BOOL PROC multistopsim);.variablenfuerdrucksetzen:
druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-ausgkopflaenge.END PROC 
schuelergruppendruckvorbereiten;PROC initausgabekopfdruck:ausgkopfdruck(1):=
textueberschrift;ausgkopfdruck(2):=leerzeileEND PROC initausgabekopfdruck;
PROC schuelergruppenseitedrucken:schuelergruppenueberschriftdrucken;
seitedrucken(PROC (INT VAR )schuelergruppendrucken,druckzeilenzahl,
ausgfeldlaenge,BOOL PROC multistopsim);seitenwechsel.END PROC 
schuelergruppenseitedrucken;PROC schuelergruppenueberschriftdrucken:INT VAR i
;druckkopfschreiben;FOR iFROM 1UPTO ausgkopflaengeREP druckzeileschreiben(
ausgkopfdruck(i))PER END PROC schuelergruppenueberschriftdrucken;PROC 
schuelergruppendrucken(INT VAR zeilenzaehler):schuelergruppendatenholen;IF 
altejahrgangsstufe<>jahrgangsstufeTHEN spaltenweise(" ");spaltenweise(" ");
spaltenweise(" ");spaltenweise(" ");ausgfeld(1):=zeile;zeilenzaehlerINCR 
ausgfeldlaenge;schuelergruppenindruckdateiFI ;schuelergruppenaufbereitendruck
;zeilenzaehlerINCR ausgfeldlaenge;schuelergruppenindruckdatei.END PROC 
schuelergruppendrucken;PROC schuelergruppenaufbereitendruck:
setzespaltentrenner(spaltentrenner);schuelergruppendatenaufbereitenbild;
ausgfeld(1):=zeile;altejahrgangsstufe:=jahrgangsstufe;END PROC 
schuelergruppenaufbereitendruck;PROC schuelergruppenindruckdatei:INT VAR i;
FOR iFROM 1UPTO ausgfeldlaengeREP druckzeileschreiben(ausgfeld(1))PER END 
PROC schuelergruppenindruckdatei;END PACKET schuelergruppenlisten