Servus,
ich muss nach langer Zeit wider ein Programm schreiben welches eine Subfile enthält....
Nun laufe ich aber auf ein Problem und habe keine Ahnung warum das Problem auftritt.
Wäre super wenn mir hier einer Input liefern kann was schief läuft, damit ich mit dem Programm weiterkomme.
Folgende Prozeduren dürften von interesse sein:
Code:dcl-s rrn zoned(4) inz(1); dcl-proc Main; dcl-pi Main; auftragsnummer like(auftragsnummer_t) const; end-pi; dcl-ds Header likeds(Header_t); dcl-ds Geraete likeds(Geraete_t) dim(99); clear Header; clear Geraete; GetHeaderData(auftragsnummer:Header); SetHeader(Header); dow (key <> F12); InitSubfile(); GetGeraeteData(Header.lgnrNummer:Header.nutzeinheit:Geraete); SetSubFile(Geraete); exfmt geraeteCtl; if (key = ENTER); dou %eof; readc geraetesfl; if (not %eof); if (io_auswahl = 'X' or io_auswahl = 'x'); WriteDatabase(Header:o_laufendeNummer: o_geraetenummer:o_seriennummer:h_gId:h_messstellenId); endif; endif; enddo; endif; enddo; end-proc;Code:dcl-proc InitSubfile; reset rrn; Subfile.wipe = *on; Subfile.display = *off; Subfile.end = *off; write GERAETECTL; Subfile.wipe = *off; Subfile.display = *on; Subfile.end = *on; end-proc;In der letzten Prozedur bekomme ich beim write den Fehler geworfen. Das passiert immer wenn er die Subfile neu bauen soll, aber ich initialisiere die Subfile davor ja in der Main Prozedur neu, so klappt es ja auch beim ersten Aufbau, warum also nicht beim zweiten?Code:dcl-proc SetSubFile; dcl-pi SetSubFile; Geraete likeds(Geraete_t) dim(99); end-pi; dow (Geraete(rrn).geraeteNummer <> ''); io_auswahl = ''; o_geraetetyp = Geraete(rrn).geraeteTyp; o_seriennummer = Geraete(rrn).serienNummer; o_laufendenummer = Geraete(rrn).laufendeNummer; o_raum = Geraete(rrn).raum; o_geraetenummer = Geraete(rrn).geraeteNummer; h_gid = Geraete(rrn).geraeteId; h_messstellenid = Geraete(rrn).messstellenId; write geraetesfl; rrn += 1; enddo; end-proc;
Bin für jede Hilfe dankbar.
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks