app/schulis/2.2.1/src/4.faecherangebot drucken

Raw file
Back to index

PACKET druckefaecherangebotDEFINES faecherangebotspezielleteile:LET AUSGFELD 
=ROW ausgfeldlaengeTEXT ,AUSGKOPF =ROW ausgkopflaengeTEXT ,ausgfeldlaenge=1,
ausgkopflaenge=2,sj="Schuljahr",hj="Schulhalbjahr",ueberschrzeilen=1,
ausgabeparam="#",jg="Jgst.",fc="Fach",ar="Art",ws="Wstd.",an=
"Anz. Lehrveranst.",eingmaske="ms liste faecherangebot",meldungbearb=352,
meldungpraez=129,fldgeplshj=2,fldaktshj=3,fldsortjgst=4,fldsortfach=5,
fldaufdr=6,fldaufbs=7,zeilenanzahl=17,jgstbezbreite=5,fachbezbreite=4,
artbezbreite=3,wstdbezbreite=5,anzbezbreite=17;AUSGFELD VAR ausgfeld;
AUSGKOPF VAR ausgkopf;INT VAR i,status,index,druckzeilenzahl;TEXT VAR 
geplschj,geplschhj,aktschj,aktschhj,schj,schhj:="0";TEXT VAR meldungaltejgst
:="",meldungaltesfach:="",altejgst:="",altesfach:="",jgst,fach,art,wstd,anzlv
,druckstrich,faecherangebotueberschrift;BOOL VAR erstezeile;BOOL PROC 
multistop:IF dbstatus=okTHEN LEAVE multistopWITH wert(fnrfanghj)=schhjCAND 
wert(fnrfangsj)=schjFI ;FALSE END PROC multistop;BOOL PROC multistopsim:IF 
dbstatus=okTHEN IF wert(fnrfanghj)=schhjCAND wert(fnrfangsj)=schjTHEN LEAVE 
multistopsimWITH TRUE ELSE setzebestandende(TRUE );LEAVE multistopsimWITH 
FALSE FI ELSE setzebestandende(TRUE )FI ;FALSE END PROC multistopsim;PROC 
holeakthj:holakthj;holaktj;bergeplhjuj.holakthj:aktschhj:=schulkenndatum(hj).
holaktj:aktschj:=schulkenndatum(sj).bergeplhjuj:geplschhj:=aktschhj;geplschj
:=aktschj;geplanteshjundsjberechnen(geplschhj,geplschj).END PROC holeakthj;
PROC faecherangebotspezielleteile(INT CONST anwahl):SELECT anwahlOF CASE 1:
faecherangebotdialogvorbereitenCASE 2:faecherangebotrichtigCASE 3:
faecherangebotlistenvorbereitenCASE 4:faecherangebotdruckvorbereitenCASE 5:
faecherangebotseitedruckenCASE 6:faecherangebotbsvorbereitenCASE 7:
faecherangebotseitezeigenEND SELECT .END PROC faecherangebotspezielleteile;
PROC faecherangebotdialogvorbereiten:holeakthj;faecherangebotueberschrift:=
text(vergleichsknoten);setzeanfangswerte(eingmaske,fldgeplshj)END PROC 
faecherangebotdialogvorbereiten;PROC faecherangebotrichtig:IF (
standardmaskenfeld(fldgeplshj)=""CAND standardmaskenfeld(fldaktshj)="")COR (
standardmaskenfeld(fldsortjgst)=""CAND standardmaskenfeld(fldsortfach)="")
COR (standardmaskenfeld(fldaufdr)=""CAND standardmaskenfeld(fldaufbs)="")
THEN standardmeldung(meldungpraez,"");setzeeingabetest(FALSE );infeld(
fldgeplshj);LEAVE faecherangebotrichtigFI ;standardpruefe(5,fldgeplshj,
fldaktshj,0,"",status);IF status<>0THEN infeld(status);setzeeingabetest(
FALSE )ELSE standardpruefe(5,fldsortjgst,fldsortfach,0,"",status);IF status<>
0THEN infeld(status);setzeeingabetest(FALSE )ELSE standardpruefe(5,fldaufdr,
fldaufbs,0,"",status);IF status<>0THEN infeld(status);setzeeingabetest(FALSE 
)ELSE IF standardmaskenfeld(fldgeplshj)<>""THEN schj:=geplschj;schhj:=
geplschhjELSE schj:=aktschj;schhj:=aktschhjFI ;IF standardmaskenfeld(
fldsortjgst)<>""THEN index:=dnrfaecherangebot;setzescanendewert("255")ELSE 
index:=ixfangsjhjfach;setzescanendewert("�")FI ;setzeausgabedrucker(
standardmaskenfeld(fldaufdr)<>"");setzeeingabetest(TRUE );FI ;FI ;FI END 
PROC faecherangebotrichtig;PROC faecherangebotlistenvorbereiten:BOOL VAR b;
inittupel(dnrfaecherangebot);initobli(zeilenanzahl);reinitparsing;
setzeidentiwert("");setzewerte;objektlistestarten(index,schj,staticfield,
TRUE ,b);setzebestandende(NOT multistopCOR b).setzewerte:putwert(fnrfangsj,
schj);putwert(fnrfanghj,schhj).staticfield:IF index=dnrfaecherangebotTHEN 
fnrfangjgstELSE fnrfangfachFI .END PROC faecherangebotlistenvorbereiten;PROC 
faecherangebotbsvorbereiten:standardkopfmaskeaktualisieren(
faecherangebotueberschrift+" für "+schhj+". "+text(schj,2)+"/"+subtext(schj,3
));initspalten;setzespaltentrenner("       ");setzespaltenbreiten;
initausgabekopf(bildbreite*"-");ausgkopf(1)IN 2;ausgkopf(2)IN 3;
setzebildanfangsposition(4).END PROC faecherangebotbsvorbereiten;PROC 
setzespaltenbreiten:setzespaltenbreite(jgstbezbreite);setzespaltenbreite(
fachbezbreite);setzespaltenbreite(artbezbreite);setzespaltenbreite(
wstdbezbreite);setzespaltenbreite(anzbezbreite);END PROC setzespaltenbreiten;
PROC faecherangebotseitezeigen:altejgst:="";blaettern(PROC (INT CONST )
faecherangebotzeigen,aktion,TRUE ,TRUE ,BOOL PROC multistop);END PROC 
faecherangebotseitezeigen;PROC faecherangebotzeigen(INT CONST procparameter):
faecherangebotholen;faecherangebotaufbereiten;faecherangebotaufbs;END PROC 
faecherangebotzeigen;PROC faecherangebotholen:jgst:=text(intwert(fnrfangjgst)
,2);fach:=wert(fnrfangfach);art:=wert(fnrfangart);wstd:=text(intwert(
fnrfangwochenstd),2);anzlv:=text(intwert(fnrfanganzlv),2);IF NOT multistop
THEN setzebestandende(TRUE )FI .END PROC faecherangebotholen;PROC 
faecherangebotaufbereiten:IF jgst<>altejgstTHEN spaltenweise(jgst);altejgst:=
jgstELSE spaltenweise(" ")FI ;spaltenweise(fach);spaltenweise(art);
spaltenweise(wstd);spaltenweise(anzlv);ausgfeld(1):=zeile.END PROC 
faecherangebotaufbereiten;PROC faecherangebotaufbs:ausgfeld(1)IN ausgabepos;
erhoeheausgabeposumeinsEND PROC faecherangebotaufbs;PROC initausgabekopf(
TEXT CONST t):spaltenweise(jg);spaltenweise(fc);spaltenweise(ar);spaltenweise
(ws);spaltenweise(an);ausgkopf(1):=zeile;ausgkopf(2):=t;END PROC 
initausgabekopf;PROC faecherangebotdruckvorbereiten:druckvorbereiten;
variablensetzen;initdruckkopf(zentriert(faecherangebotueberschrift+" für "+
schhj+". "+text(schj,2)+"/"+subtext(schj,3),druckbreite));initspalten;
setzespaltentrenner("       ");setzespaltenbreiten;initausgabekopf(
druckbreite*"-");inittupel(index);setzebestandende(FALSE );setzewerte;
lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL 
PROC multistopsim).variablensetzen:druckstrich:=druckbreite*"-";
druckzeilenzahl:=drucklaenge(ueberschrzeilen)-ausgkopflaenge.setzewerte:
putwert(fnrfangsj,schj);putwert(fnrfanghj,schhj).END PROC 
faecherangebotdruckvorbereiten;PROC faecherangebotseitedrucken:altejgst:="";
altesfach:="";erstezeile:=TRUE ;faecherangebotueberschriftdrucken;
seitedrucken(PROC (INT VAR )faecherangebotdrucken,druckzeilenzahl,
ausgfeldlaenge,BOOL PROC multistopsim);seitenwechsel;END PROC 
faecherangebotseitedrucken;PROC faecherangebotueberschriftdrucken:
druckkopfschreiben;FOR iFROM 1UPTO ausgkopflaengeREP druckzeileschreiben(
ausgkopf(i))PER .END PROC faecherangebotueberschriftdrucken;PROC 
faecherangebotdrucken(INT VAR zz):faecherangebotholen;IF index=
dnrfaecherangebotTHEN IF meldungaltejgst<>jgstTHEN meldungaltejgst:=jgst;
standardmeldung(meldungbearb,"Jgst. "+jgst+ausgabeparam)FI ;ELSE IF 
meldungaltesfach<>fachTHEN meldungaltesfach:=fach;standardmeldung(
meldungbearb,"Fach "+fach+ausgabeparam)FI ;FI ;
faecherangebotaufbereitenmitleerzeile(zz);faecherangebotindruckdatei(zz);IF 
zz>=druckzeilenzahl-1THEN zzINCR ausgfeldlaengeFI .END PROC 
faecherangebotdrucken;PROC faecherangebotaufbereitenmitleerzeile(INT VAR zz):
IF index=dnrfaecherangebotTHEN IF jgst<>altejgstTHEN gibleerzeileaus;
spaltenweise(jgst)ELSE spaltenweise(" ")FI ELSE IF fach<>altesfachTHEN 
gibleerzeileaus;altejgst:=""FI ;IF jgst<>altejgstTHEN spaltenweise(jgst)ELSE 
spaltenweise(" ")FI FI ;spaltenweise(fach);spaltenweise(art);spaltenweise(
wstd);spaltenweise(anzlv);ausgfeld(1):=zeile.gibleerzeileaus:IF NOT 
erstezeileTHEN spaltenweise(" ");spaltenweise(" ");spaltenweise(" ");
spaltenweise(" ");spaltenweise(" ");ausgfeld(1):=zeile;
faecherangebotindruckdatei(zz)FI .END PROC 
faecherangebotaufbereitenmitleerzeile;PROC faecherangebotindruckdatei(INT 
VAR zz):zzINCR ausgfeldlaenge;IF jgst<>altejgstTHEN altejgst:=jgstFI ;IF fach
<>altesfachCAND index=ixfangsjhjfachTHEN altesfach:=fachFI ;IF erstezeile
THEN erstezeile:=FALSE FI ;FOR iFROM 1UPTO ausgfeldlaengeREP 
druckzeileschreiben(ausgfeld(i))PER END PROC faecherangebotindruckdatei;END 
PACKET druckefaecherangebot