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

Code:

FAVML01 IFEKDISK PREFIX(A_) Lieferantenstamm
FAVE IFEKDISK PREFIX(K_) Kontaktdatei
FLPCL04 IFEKDISK PREFIX(O_) LKZ Postleitzahlen
FBPCRRLK OEPRINTEROFLIND(*IN10) PREFIX(P_) Druckliste
CKPLZ KLIST
CKFLD KLK 4
CKFLD KLZ 10
/free
// Beginn Hauptprogramm
// Lesen des Lieferantenstamms (Schleife)
P_PAGNBR = 1;
writeKOPF;
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
Ckplz 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;
writeLIEFKOPF;
EXSR Blatt;
EXSR KONTAKTE;
endif;
ENDDO;
// Ende Hauptprogramm
writeFUSS; // nach Ende der Eingabedatei
*INLR = *ON;
// Beginn Subroutine
BEGSRKONTAKTE;
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;
writeKONTAKT;
EXSR Blatt;
endif;
ENDDO;
ENDSR;
// Ende Subroutine
BEGSRBlatt;
if *in10 = *on;
P_PAGNBR = P_PAGNBR + 1;
WriteKopf;
writeLIEFKOPF;
eval *in10 = *off;
ENDIF;
ENDSR;
 
/end-free 
Ich hoffe mir ist noch zu helfen...