Focal Point
[CLOSED] Replicate / Repeat Rows in a HOLD File

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

November 02, 2010, 09:29 AM
Ramkumar - Webfous
[CLOSED] Replicate / Repeat Rows in a HOLD File
Say, I have 3 area codes coming from Parameter page....

I need to replicate all the rows in a Hold file for every area code....


-SET &INAREA_CODE = '''AA'' OR ''BB'' OR ''CC''';

TABLE FILE CAR
PRINT
DST.COUNTRY
ON TABLE HOLD AS HLD1
END



For every entry in &INAREA_CODE All the rows in HLD1 has to be replicated.

I need the output like...



I hope I have made it clear.

How to go about this ?

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


Thanks,

Ramkumar.
WebFOCUS/Tableau
Webfocus 8 / 7.7.02
Unix, Windows
HTML/PDF/EXCEL/AHTML/XML/HTML5
November 02, 2010, 10:11 AM
Francis Mariani
There are many ways to do this, here is one:

-SET &ECHO=ALL;

SET ASNAMES    = ON
SET HOLDLIST   = PRINTONLY
SET HOLDFORMAT = ALPHA
SET BYDISPLAY  = ON
-RUN

FILEDEF MASTER DISK areacode.mas
-RUN

-WRITE MASTER FILENAME=AREACODE, SUFFIX=FIX
-WRITE MASTER SEGNAME=AREACODE
-WRITE MASTER FIELDNAME=AREACODE, USAGE=A02, ACTUAL=A02, $
-RUN

FILEDEF AREACODE DISK areacode.txt
-RUN

-WRITE AREACODE AA
-WRITE AREACODE BB
-WRITE AREACODE CC

TABLE FILE AREACODE
SUM
COMPUTE DUMMY1/A1 = '';
BY AREACODE
ON TABLE HOLD AS HAREACODE FORMAT FOCUS INDEX DUMMY1
END
-RUN

?FF HAREACODE
-RUN

JOIN CLEAR *
JOIN DUMMY1 WITH COUNTRY IN CAR TO ALL DUMMY1 IN HAREACODE AS J1
-RUN

DEFINE FILE CAR
DUMMY1/A1 WITH COUNTRY = ' ';
END
-RUN

TABLE FILE CAR
SUM
AREACODE NOPRINT
BY COUNTRY
BY AREACODE
-*ON TABLE HOLD AS HCAR
END
-RUN

This is called the "MacGyver" technique - here is a detailed description of this: MacGyver Techniques.


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 02, 2010, 04:55 PM
Waz
Another option is to use the FOR command. It forces the existence of the specified values, as long as one of them exists.

DEFINE FILE CAR
AREACODE/A3 = ' ';
END

-RUN

TABLE FILE CAR
BY COUNTRY
FOR AREACODE
' ' OVER
'AAA' OVER
'BBB' OVER
'CCC'
ON TABLE HOLD AS HCAR
END

-RUN

DEFINE FILE HCAR
 AREACODE/A3=E02 ;
END

TABLE FILE HCAR
BY COUNTRY
BY AREACODE
WHERE AREACODE NE ' '
END

-RUN



Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!