Tom, Your problem is due to the fact the fact that you are -READing the CF file with NOCLOSE and also trying to report from it with TABLE. Because CF is open, TABLE doesn't have access to it. You can do the following:
-SET &ECHO=ALL;
-* File tomsweb8.fex
TABLE FILE CAR
BY COUNTRY
ON TABLE HOLD AS TW FORMAT ALPHA
END
-* Save another copy of the HOLD file
HOLD AS CF FORMAT ALPHA
-RUN
-SET &LIMIT = &LINES ;
-SET &I = 1;
-REPEAT ENDLOOP &LIMIT TIMES
-READ CF NOCLOSE &COUNTRY.10.
-SET &COUNTRY.&I = &COUNTRY;
-SET &WB = ' ';
-SET &ZOUNTRY = ' ';
-SET &ZOUNTRY.&I = TRUNCATE(&COUNTRY.&I);
-TYPE ZOUNTRY = &ZOUNTRY.&I
-****
-SET &WA = 'WHERE COUNTRY EQ';
-SET &WB = '''' | &ZOUNTRY.&I | '''';
-SET &CDA = ';';
-SET &WZX = &WA | ' ' | &WB | ' ' | &CDA ;
TABLE FILE TW
HEADING
" TEST THIS LOOP "
BY COUNTRY
&WZX.EVAL
END
-RUN
-SET &I = &I + 1;
-ENDLOOP
-EXIT
You probably have a reason for building the WHERE statement as you do it. However in the simple example that you show, I would do:
-SET &ECHO=ALL;
-* File tomsweb8.fex
TABLE FILE CAR
BY COUNTRY
ON TABLE HOLD AS TW FORMAT ALPHA
END
-* Save another copy of the HOLD file
HOLD AS CF FORMAT ALPHA
-RUN
-SET &LIMIT = &LINES ;
-SET &I = 1;
-REPEAT ENDLOOP &LIMIT TIMES
-READ CF NOCLOSE &COUNTRY.10.
TABLE FILE TW
HEADING
" TEST THIS LOOP "
BY COUNTRY
WHERE COUNTRY EQ '&COUNTRY';
END
-RUN
-SET &I = &I + 1;
-ENDLOOP
-EXIT
Daniel In Focus since 1982 wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF
April 07, 2014, 02:20 PM
Tomsweb
Thanks Danny,
I like the idea of creating the data file from the file that I'm next going to go against for my reports.