PDA

View Full Version : CHAIN Probleme



DISCOME
26-02-10, 13:53
Hallo zusammen,

ich hatte ein kleines Problemchen was ich mit eurer Hilfe gelöst bekommen habe. Super lieben dank noch mal. Jedoch habe ich nun ein CHAIN Problemchen..

Ich muss wegen diesem Befehl aus dem Free raus und dann wieder rein... sieht nicht gut aus... aber es geht. nur wie kann ich dieses Chain ins Free umwandeln?

hier der Code



FAVML01 IF E K DISK PREFIX(A_) Lieferantenstamm
FAVE IF E K DISK PREFIX(K_) Kontaktdatei
FLPCL04 IF E K DISK PREFIX(O_) LKZ Postleitzahlen
FBPCRRLK O E PRINTER OFLIND(*IN10) PREFIX(P_) Druckliste
C KPLZ KLIST
C KFLD KLK 4
C KFLD KLZ 10
/free
// Beginn Hauptprogramm
// Lesen des Lieferantenstamms (Schleife)
P_PAGNBR = 1;
write KOPF;
DOW (1=1);
read IPA100VM;
if %eof(AVML01);
leave;
endif;
if A_VNSTAT = 'A';
EVAL P_LIEFNR = A_VENDOR;
EVAL P_LIEFKZ = A_VNALPH;
EVAL P_LIEFNAME = A_VNDNAM;
EVAL P_LIEFADR = A_VPAD1;
EVAL P_LIEFPLZ = A_VPSTE + A_VPPST;
/end-free
C kplz CHAIN LPCL04 // das hier ist das Problem
/free
EVAL P_LIEFORT = O_PCLCTN;
EVAL P_PMMKONT = A_VCON;
EVAL P_LIEFKT_ML = A_VNDAD3 + A_VPAD3;
EVAL P_LIEFTEL = A_VPHONE;
EVAL P_LIEFFAX = A_VMVFAX;
write LIEFKOPF;
EXSR Blatt;
EXSR KONTAKTE;
endif;
ENDDO;
// Ende Hauptprogramm
write FUSS; // nach Ende der Eingabedatei
*INLR = *ON;
// Beginn Subroutine
BEGSR KONTAKTE;
setll (A_VENDOR) AVE;
DOW (1=1);
reade (A_VENDOR) AVE;
if %eof(AVE);
leave;
endif;
if %found(AVE);
EVAL P_LKSE = K_ESTRE;
EVAL P_LKNAME = K_ENAMEH;
EVAL P_LKVNAME = K_ENAMEV;
EVAL P_LKMAIL = K_EMAIL;
EVAL P_LKTEL1 = K_EPHONE;
EVAL P_LKTEL2 = K_EFUNK;
EVAL P_LKFKT = K_EFKT;
write KONTAKT;
EXSR Blatt;
endif;
ENDDO;
ENDSR;
// Ende Subroutine
BEGSR Blatt;
if *in10 = *on;
P_PAGNBR = P_PAGNBR + 1;
Write Kopf;
write LIEFKOPF;
eval *in10 = *off;
ENDIF;
ENDSR;

/end-free


Ich hoffe mir ist noch zu helfen...

Fuerchau
26-02-10, 13:57
In Free brauchst du keine KLIST mehr.
Einfach
chain (K1:k2:...) MyFormat;

Das gilt für alle Befehle, die früher eine KLIST brauchten.

DISCOME
26-02-10, 14:34
Oh doch so "Einfach".
Danke. Hat geklappt.

Super lieben dank an dich.

:)

Pikachu
26-02-10, 14:47
Hier ist die offizielle Beschreibung des CHAIN-Befehls (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c0925086701.htm#HDRZZCHAIN) mit Angabe der free-Form-Syntax.