summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/6.ida.eingang
blob: c4de3f7a8ab144801dcc91d704438bc1b1902dee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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;