PDA

View Full Version : Create Tempfile mit DS



tarkusch
23-11-13, 15:44
D SflRcd DS LIKEREC(SFLW2: *OUTPUT) DIM(99) INZ


CREATE TABLE QTEMP/WORKF (S1AGNR DEC ( 7, 0), S1AKDN DEC ( 7, 0) etc

Hallo,

ich möchte einen Subfile als Datei schicken.
Bisher wurde beim Tempfile die einzelnen Felder immer angegeben.
Gibt es eigentlich eine Möglichkeit den Tempfile(WORKF) mit der DS SflRcd zu erstellen, anstelle von Definition der einzelnen Felder?

Dank im Voraus für euren Input

Tarki

Fuerchau
23-11-13, 16:08
Nun, das gibt es so leider nicht.
Hierfür musst du das API für "DSPFFD" verwenden und die Felddefinitionen dann auslesen.
Wichtig ist natürlich die Berücksichtigung der reinen Ausgabefelder.

Da dein SFL-Satz aber nun mal statisch zur Compile-Zeit festgelegt ist, kannst du die Felder ja immer entsprechend definieren.
Hier hilft dir die "Halbautomatik".
%SIZE liefert dir die definierte Länge eines Alphafeldes.
Somit kannst du 'SFLFLD char(' + %char(%size(SFLFLD)) + ')' zur Laufzeit dynamisieren.
Wenn sich die Felddefinition mal ändert, wird dies berücksichtigt.
Für Dezimalfelder liefert dir %SIZE die Anzahl der Stellen und %DECPOS die Anzahl der Nachkomma.
'SFLNUM numeric(' + %char(%size(SFLNUM)) + ', ' + %char(%decpos(SFLNUM) + ')'