Focal Point
[SOLVED] double looping

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/9257006216

November 09, 2011, 08:50 AM
FrankDutch
[SOLVED] double looping
I created this fex to loop through a number of masters and see the first record of each

but for some reason it stops after the first found table

any suggestions on how to solve this?


-SET &ECHO = ALL;

TABLE FILE SYSCOLUM
BY TBNAME
WHERE TBNAME CONTAINS 'KCO_' ;
ON TABLE HOLD AS TABELLEN FORMAT ALPHA
ON TABLE SET HOLDLIST PRINTONLY
END
-SET &AANTAL=&RECORDS ;
? HOLD TABELLEN
-RUN
-READ TABELLEN NOCLOSE &TABELNAME.A64
-REPEAT :Loop1 WHILE &IORETURN EQ 0;
-READ TABELLEN NOCLOSE &TABELNAME.A64
-SET &AANTAL=&AANTAL-1 ;
-TYPE &TABELNAME
-RUN


TABLE FILE SYSCOLUM
PRINT 
NAME
      USAGE
   BY SEGNAME NOPRINT
   BY SEGNO   NOPRINT
WHERE TBNAME EQ '&TABELNAME.EVAL' ;

ON TABLE HOLD AS VELDEN FORMAT ALPHA
ON TABLE SET HOLDLIST PRINTONLY
END


-RUN
TABLE FILE &TABELNAME.EVAL
PRINT
-READ VELDEN &FIELDNAME.A66. &FORMAAT.A8.
-REPEAT :LOOP WHILE &IORETURN EQ 0;
&FIELDNAME.EVAL AS '&FIELDNAME - &FORMAAT'
-READ VELDEN &FIELDNAME.A66. &FORMAAT.A8.
-:LOOP
IF RECORDLIMIT EQ 1
HEADING
"&TABELNAME"
END

-:Loop1





This message has been edited. Last edited by: Kerry,




Frank

prod: WF 7.6.10 platform Windows,
databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7
test: WF 7.6.10 on the same platform and databases,IE7

November 09, 2011, 09:45 AM
Francis Mariani
Frank,

You're missing NOCLOSE in the last two _READ statements. But that isn't the problem!

Is it possible that the &IORETURN in the second loop stops the first loop?

Try using &LINES in the -REPEAT statements instead...

-SET &ECHO = ALL;

TABLE FILE SYSCOLUM
BY TBNAME
WHERE TBNAME CONTAINS 'gg' ;
ON TABLE HOLD AS TABELLEN FORMAT ALPHA
ON TABLE SET HOLDLIST PRINTONLY
END
-RUN

-SET &AANTAL=&RECORDS ;
-SET &TABLINES=&LINES ;
? HOLD TABELLEN
-RUN

-READ TABELLEN NOCLOSE &TABELNAME.A64
-REPEAT :Loop1 &TABLINES TIMES;
-READ TABELLEN NOCLOSE &TABELNAME.A64
-SET &AANTAL=&AANTAL-1 ;
-TYPE &TABELNAME
-RUN

TABLE FILE SYSCOLUM
PRINT 
NAME
      USAGE
   BY SEGNAME NOPRINT
   BY SEGNO   NOPRINT
WHERE TBNAME EQ '&TABELNAME' ;

ON TABLE HOLD AS VELDEN FORMAT ALPHA
ON TABLE SET HOLDLIST PRINTONLY
END
-RUN
-SET &COLLINES=&LINES ;

TABLE FILE &TABELNAME
PRINT

-READ VELDEN NOCLOSE &FIELDNAME.A66. &FORMAAT.A8.
-REPEAT :LOOP &COLLINES TIMES;
&FIELDNAME.EVAL AS '&FIELDNAME - &FORMAAT'
-READ VELDEN NOCLOSE &FIELDNAME.A66. &FORMAAT.A8.
-:LOOP
IF RECORDLIMIT EQ 1
HEADING
"&TABELNAME"
END
-RUN

-:Loop1



Francis


Give me code, or give me retirement. In FOCUS since 1991

Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
November 09, 2011, 10:15 AM
FrankDutch
Francis

that worked well
thanks a lot
sometimes you just do not see the error anymore




Frank

prod: WF 7.6.10 platform Windows,
databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7
test: WF 7.6.10 on the same platform and databases,IE7