kretzsch
18-02-15, 10:31
Hallo, ich kann mich wieder mit diesem Thema beschäftigen und bin am verzweifeln, die gutgemeinten Hilfen halfen mir nicht (liegt an mir). Nochmal mein Anliegen, welches ich im full-free-Format programmieren will: <o:p></o:p>
1. Eine extern beschrieben Datei soll eingelesen und evtl geändert werden<o:p></o:p>
2. Alle Felder dieser Datei als externe Datenstruktur #ds1 definieren<o:p></o:p>
3. Eine zweite Datenstruktur #ds2 mit einem Teil der Felder definieren<o:p></o:p>
Strukturen deshalb, weil ich einzelne eval-Befehle einsparen will.<o:p></o:p>
Ich mache in den Deklarationen irgendetwas falsch, weil nach dem read-Befehl die Struktur #ds1 nicht gefüllt ist, und es dann zum Fehler kommt.
Dateibeschreibung
A R TESTR
A ARTNR 6S COLHDG('Artikelnr.')
A ARTBEZ1 30A COLHDG('Artikelbezeichnung')
A HERKL 20A COLHDG('Herkunftsland')
A WGR 3A COLHDG('Wgr')
A PLU 4S COLHDG('PLU ')
A K PLU
Programmcode
dcl-f testpu keyed usage(*input:*update);
dcl-c #dspu const('TESTPU');
dcl-ds #ds1 extname(#dspu) qualified inz end-ds;
dcl-ds #ds2 qualified;
artnr like(#ds1.artnr);
artbez1 like(#ds1.artbez1);
END-DS;
read testr;
dow not %eof(testpu);
if #ds1.plu > 2000;
eval-corr #ds2 = #ds1;
ENDIF;
read testr;
enddo;
1. Eine extern beschrieben Datei soll eingelesen und evtl geändert werden<o:p></o:p>
2. Alle Felder dieser Datei als externe Datenstruktur #ds1 definieren<o:p></o:p>
3. Eine zweite Datenstruktur #ds2 mit einem Teil der Felder definieren<o:p></o:p>
Strukturen deshalb, weil ich einzelne eval-Befehle einsparen will.<o:p></o:p>
Ich mache in den Deklarationen irgendetwas falsch, weil nach dem read-Befehl die Struktur #ds1 nicht gefüllt ist, und es dann zum Fehler kommt.
Dateibeschreibung
A R TESTR
A ARTNR 6S COLHDG('Artikelnr.')
A ARTBEZ1 30A COLHDG('Artikelbezeichnung')
A HERKL 20A COLHDG('Herkunftsland')
A WGR 3A COLHDG('Wgr')
A PLU 4S COLHDG('PLU ')
A K PLU
Programmcode
dcl-f testpu keyed usage(*input:*update);
dcl-c #dspu const('TESTPU');
dcl-ds #ds1 extname(#dspu) qualified inz end-ds;
dcl-ds #ds2 qualified;
artnr like(#ds1.artnr);
artbez1 like(#ds1.artbez1);
END-DS;
read testr;
dow not %eof(testpu);
if #ds1.plu > 2000;
eval-corr #ds2 = #ds1;
ENDIF;
read testr;
enddo;