PACKET idaeingangsbildschirmDEFINES generieredruckausgabe, eingangsbildschirmdarstellen#,putdrucktyp,putdruckindex#:LET maskennamelehrer ="mdr lehrerweise dr eingang",maskennameeinzeln= "mdr einzelobjekt druckausgabe eingang";LET maxfeld=8,wartemeldnr=69, auswahlnichtkorrekt=188,auswahlnichteind=189,niltext="",mldnrformnichtda=262; LET markiert="#";LET lehrer="Lehrer",schueler="Schüler";TEXT VAR leitobjektklasse,scanwertlehrer;INT CONST primindex:=2;#(ROW maxfeldINT :(246 ,255,247,246,246,246,246,0),ROW maxfeldINT :(246,255,247,246,246,246,246,246) );#ROW maxfeldINT VAR indicesschueler:=ROW maxfeldINT :(ixsustatfamrufgeb, ixsustatjgst,ixsustatjgstzug,ixsustatfamrufgeb,ixsustatfamrufgeb, ixsustatfamrufgeb,ixsustatfamrufgeb,ixsustatfamrufgeb);TEXT VAR maskenname:= "";INT VAR letztenummerderdruckausgabe:=0;INT VAR druckinx,ankreuzfeld;INT PROC druckindex:druckinxENDPROC druckindex;PROC putdruckindex(INT CONST dinx) :druckinx:=dinxENDPROC putdruckindex;PROC eingangsbildschirmdarstellen:TEXT VAR fname:="";INT VAR findex:=0,nochmeld;BOOL VAR ftyp; setzelistederdruckausgabengezeigt(FALSE );IF ruecksprungTHEN ohnepruefung ELSE mitpruefungFI .mitpruefung:IF listenweiseauswahlkorrektTHEN letztenummerderdruckausgabe:=nummerderdruckausgabe;putdruckindex( letztenummerderdruckausgabe);holeformular;namederdruckausgabe(getformularname );#standardkopfmaskeaktualisieren(namederdruckausgabe);#maskedarstellen;FI . ohnepruefung:putdruckindex(letztenummerderdruckausgabe);holeformular; maskedarstellen.holeformular:setzenummerderdruckausgabe(text( letztenummerderdruckausgabe));IF formexists(druckinx)THEN getform(druckinx) ELSE formunvollstaendigFI ;#openformular(druckinx);bereitsinformularzerlegen! #formularzerlegen(druckinx);IF getblockanzahl<1THEN formunvollstaendigFI ; getformularinfo(fname,findex,ftyp);systemdboff.formunvollstaendig: standardmeldung(mldnrformnichtda,niltext);return(1);LEAVE eingangsbildschirmdarstellen.listenweiseauswahlkorrekt: idaankreuzfelderpruefen.maskedarstellen:leitobjektklasse:=getobjektklasse(1); IF leitobjektklasse=schuelerTHEN maskenname:=maskennameeinzelnELIF leitobjektklasse=lehrerTHEN maskenname:=maskennamelehrerFI ;standardstartproc (maskenname);standardkopfmaskeaktualisieren(namederdruckausgabeohne);nochmeld :=nochmeldungauszugeben;IF nochmeld<>0THEN TEXT VAR drinx:=text(druckindex)+ markiert;standardmeldung(nochmeld,drinx)FI ;standardnproc.END PROC eingangsbildschirmdarstellen;PROC generieredruckausgabe(INT CONST medium): INT VAR leitinx;generieredruck.generieredruck:IF leitobjektklasse=schueler THEN leitinx:=leitindexschueler;ueberpruefeleitinx;putleitindex( leitindexschueler);ELSE leitinx:=leitindexlehrer;ueberpruefeleitinx; putleitindex(leitindexlehrer)FI ;putobjektklasse(1,leitobjektklasse);IF leitobjektklasse=schuelerTHEN putscan(erzeugescan)ELSE putscan(scanwertlehrer )FI ;erzeugequery(druckindex);standardmeldung(wartemeldnr,niltext); listendruck(druckindex,medium).ueberpruefeleitinx:IF leitinx<=0THEN #return(1 );#LEAVE generieredruckausgabeFI ;ENDPROC generieredruckausgabe;INT PROC leitindexschueler:INT VAR wievielter;INT VAR i,leitinx,offset:=1;ankreuzfeld :=0;pruefeeindeutigkeit;bestimmeindex;bestimmewievielterindex. pruefeeindeutigkeit:FOR iFROM 2UPTO maxfeld+offsetREP IF standardmaskenfeld(i )<>""THEN IF ankreuzfeld>0THEN #note("Feld : "+text(i)+" Inhalt : "+ standardmaskenfeld(i));noteline;note("Ankreuzfeld : "+text(ankreuzfeld)); noteline;#standardmeldung(auswahlnichteind,niltext);return(1);LEAVE leitindexschuelerWITH (-1)ELSE ankreuzfeld:=iFI FI PER ;IF ankreuzfeld<=0 THEN #note("Feld : "+text(i)+" Inhalt : "+standardmaskenfeld(i));noteline; note("Ankreuzfeld : "+text(ankreuzfeld));noteline;#standardmeldung( auswahlnichtkorrekt,niltext);return(1);LEAVE leitindexschuelerWITH (-2)FI . bestimmeindex:leitinx:=indicesschueler[ankreuzfeld-1];. bestimmewievielterindex:wievielter:=0;FOR iFROM firstindexUPTO firstfree-1 REP IF dateinr(primdatid(i))=primindexTHEN wievielterINCR 1;IF i=leitinxTHEN LEAVE leitindexschuelerWITH wievielterFI FI PER ;0ENDPROC leitindexschueler; INT PROC leitindexlehrer:INT VAR status,leitinx;scanwertlehrer:=""; standardpruefe(5,2,4,0,"",status);IF status<>0THEN standardmeldung( auswahlnichtkorrekt,niltext);return(1);leitinx:=-1;ELSE IF standardmaskenfeld (5)=""THEN IF standardmaskenfeld(2)<>""THEN leitinx:=dnrlehrerELIF standardmaskenfeld(3)<>""THEN leitinx:=ixlfamrufELIF standardmaskenfeld(4)<> ""THEN infeld(5);standardmeldung(auswahlnichteind,niltext);return(1);leitinx :=-1FI ;ELSE IF standardmaskenfeld(4)<>""THEN leitinx:=dnrlehrer; scanwertlehrer:="<""";scanwertlehrerCAT standardmaskenfeld(5);scanwertlehrer CAT """>";ELSE standardmeldung(auswahlnichtkorrekt,niltext);return(1);leitinx :=-1;FI ;FI ;FI ;leitinxEND PROC leitindexlehrer;TEXT PROC erzeugescan:INT VAR i,evteinzel:=0;evteinzel:=1;scanfuereinzel.scanfuereinzel:SELECT ankreuzfeldOF CASE 2:"<""ls"">"CASE 3:statusjgstCASE 4:statusjgstzugCASE 5: "<""ls"">"+evtschuelerCASE 6:"<""n05"">"+evtschuelerCASE 7:"<""n11"">"+ evtschuelerCASE 8:"<""nso"">"+evtschuelerCASE 9:"<""abg"">"+evtschueler OTHERWISE :""ENDSELECT .evtschueler:scantxt:="";FOR iFROM 12UPTO 14REP IF standardmaskenfeld(i)<>""THEN scantxt:=scantxt+";"+"<"""+evtdatum+""">"ELSE LEAVE evtschuelerWITH scantxtFI PER ;scantxt.evtdatum:IF i=14THEN datumskonversion(standardmaskenfeld(i))ELSE standardmaskenfeld(i)FI . statusjgst:IF standardmaskenfeld(9+evteinzel)<>""THEN "<""ls"">;<"""+ jgstaufber(standardmaskenfeld(9+evteinzel))+""">"ELSE "<""ls"">"FI . statusjgstzug:TEXT VAR scantxt:="";IF standardmaskenfeld(9+evteinzel)<>"" THEN scantxt:="<""ls"">;<"""+jgstaufber(standardmaskenfeld(9+evteinzel))+ """>";IF standardmaskenfeld(10+evteinzel)<>""THEN scantxt:=scantxt+";<"""+ standardmaskenfeld(10+evteinzel)+""">"FI ;scantxtELSE "<""ls"">"FI .ENDPROC erzeugescan;INT PROC nummerderdruckausgabe:TEXT VAR t;INT VAR i,lv;FOR lv FROM 1UPTO 10REP IF standardmaskenfeld(lv*2#+1#)<>""THEN nummerermittelnFI PER ;0.nummerermitteln:t:=standardmaskenfeld(lv*2+1);t:=subtext(t,1,pos(t, " = ")-1);i:=int(t);LEAVE nummerderdruckausgabeWITH i.END PROC nummerderdruckausgabe;ENDPACKET idaeingangsbildschirm;