summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/6.ida.eingang
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/6.ida.eingang')
-rw-r--r--app/schulis/2.2.1/src/6.ida.eingang87
1 files changed, 87 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/6.ida.eingang b/app/schulis/2.2.1/src/6.ida.eingang
new file mode 100644
index 0000000..c4de3f7
--- /dev/null
+++ b/app/schulis/2.2.1/src/6.ida.eingang
@@ -0,0 +1,87 @@
+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;
+