PACKET listeausgewaehlterkopplungendruckenDEFINES listekopplungenmitanzlverstellen,listekopplungenmitanzlvdrucken:LET feldanzlv =2,feldakthj=3,anzkopfzeilen=9,anzzeilen=45,ausgparam="#",leerzeile=" ", meldungbearbwird=352,meldunglistedrucken=58,meldunglisteaufbereiten=7, meldungwarten=69,meldungkeinedaten=68,meldungfalscherwert=54,meldungkeinelv= 326,dateiname="Liste der Kopplungen",zwdateiname="zwischenspeicherung", praefix=" ",ueberschrift="Liste aller Kopplungen",kopfzeile= "Kopplung Anzahl gekoppelter Lehrveranstaltungen",stdkopf= " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 >14", unterstrich= "----------+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---", spaltentrenner=": : : : : : : : : : : : : : : " ,spaltentrenner1= ": x : : : : : : : : : : : : : : ", spaltentrennerl= ": : : : : : : : : : : : : : : x ",schuljahr= "Schuljahr",halbjahr="Schulhalbjahr",schulname="Schulname",schulort= "Schulort";TEXT VAR schj,schhj,aktkopplung:="",postfix:="",anzseiten, ueberschriftanhang,anzahllv:="",neuerkopf:="";INT VAR i,j,anzlv,anwanzlv, spaltenindex,anzs;BOOL VAR erstekopplung:=TRUE ;FILE VAR datei,zwdatei;PROC listekopplungenmitanzlverstellen:standardmeldung(meldungwarten,"");schj:= schulkenndatum(schuljahr);schhj:=schulkenndatum(halbjahr);IF standardmaskenfeld(feldakthj)=""THEN geplanteshjundsjberechnen(schhj,schj)FI ;anzahllv:=standardmaskenfeld(feldanzlv);IF anzahllv<>""THEN anwanzlv:=int( anzahllv);IF lastconversionokTHEN IF anwanzlv<1COR anwanzlv>99THEN fehlermeldungfalscherwertFI ELSE fehlermeldungfalscherwertFI ; ueberschriftanhang:=" ab "+text(anwanzlv)+" Lehrveranstaltungen";ELSE anwanzlv:=1;ueberschriftanhang:=""FI ;spaltenindex:=anwanzlv-1;inittupel( dnrlehrveranstaltungen);IF records(dnrlehrveranstaltungen)=0.0THEN standardmeldung(meldungkeinelv,"");return(1)ELSE bereiteprotokollvor;dbstatus (0);erstekopplung:=TRUE ;aktkopplung:="";anzlv:=1;statleseschleife( ixlvsjhjkopp,schj,schhj,fnrlvsj,fnrlvhj,PROC holekopplungen);IF lines(datei)= anzkopfzeilenTHEN standardmeldung(meldungkeinedaten,"");return(1);ELSE zeigedatei(dateiname,"vr")FI FI .fehlermeldungfalscherwert:standardmeldung( meldungfalscherwert,"");return(1);LEAVE listekopplungenmitanzlverstellen. bereiteprotokollvor:standardmeldung(meldunglisteaufbereiten,"");forget( dateiname,quiet);datei:=sequentialfile(output,dateiname);forget(zwdateiname, quiet);zwdatei:=sequentialfile(output,zwdateiname);schreibkopf(datei).END PROC listekopplungenmitanzlverstellen;PROC schreibkopf(FILE VAR dat):INT VAR k;putline(dat,schulkenndatum(schulname));putline(dat,text(schulkenndatum( schulort),65)+date);putline(dat,leerzeile);putline(dat,ueberschrift+ ueberschriftanhang);putline(dat,"Schuljahr 19"+text(schj,2)+"/"+subtext(schj ,3)+" "+schhj+". Halbjahr");putline(dat,leerzeile);putline(dat,kopfzeile); IF anwanzlv=1THEN putline(dat,stdkopf)ELSE neuerkopf:=praefix;FOR kFROM 1 UPTO 14REP neuerkopfCAT text(anwanzlv-1+k,4)PER ;neuerkopfCAT " >"+text( anwanzlv+13);putline(dat,neuerkopf)FI ;putline(dat,unterstrich).END PROC schreibkopf;PROC schreibfuss(INT CONST nr):putline(zwdatei,leerzeile);putline (zwdatei,leerzeile);putline(zwdatei,text(nr,70)+"/"+anzseiten);putline( zwdatei,"#page#")END PROC schreibfuss;PROC holekopplungen(BOOL VAR b):IF wert (fnrlvsj)<>schjCOR wert(fnrlvhj)<>schhjCOR dbstatus<>0THEN dbstatus(1);b:= TRUE ELIF aktkopplung<>wert(fnrlvkopplung)THEN gibeintragaus;aktkopplung:= wert(fnrlvkopplung);standardmeldung(meldungbearbwird,aktkopplung+ausgparam); anzlv:=1ELSE anzlvINCR 1FI .gibeintragaus:IF erstekopplungTHEN erstekopplung :=FALSE ELIF anzlv=anwanzlvTHEN putline(datei,text(aktkopplung,10)+ spaltentrenner1)ELIF anzlv>anwanzlv+13THEN putline(datei,text(aktkopplung,10) +spaltentrennerl)ELIF anzlv>anwanzlvCAND anzlv0THEN anzsINCR 1FI ;anzseiten:=text(anzs,2).giballeseitenaus: toline(datei,anzkopfzeilen+1);FOR iFROM 1UPTO volleseitenREP schreibkopf( zwdatei);FOR jFROM 1UPTO anzzeilenREP readrecord(datei,zeile);down(datei); putline(zwdatei,zeile)PER ;schreibfuss(i)PER ;IF restzeilen<>0THEN schreibkopf(zwdatei);FOR iFROM 1UPTO restzeilenREP readrecord(datei,zeile); down(datei);putline(zwdatei,zeile)PER ;FOR iFROM restzeilen+1UPTO anzzeilen REP putline(zwdatei,leerzeile)PER ;schreibfuss(anzs)FI ;print(zwdateiname); enter(2).END PROC listekopplungenmitanzlvdrucken;END PACKET listeausgewaehlterkopplungendrucken;