Focal Point
[CLOSED] Compound reports with multiple worksheets in EXL2K

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

May 27, 2014, 01:10 PM
Starr
[CLOSED] Compound reports with multiple worksheets in EXL2K
I wanted to know if it is possible to have multiple compound reports with multiple worksheets in EXL2K. I'm not sure I'm wording this correctly. I've created a sample of what I'd like using the CAR file below: Notice that there are three reports, each with multi-worksheets. Is there a way to run all three in one fex?

-*----Report 1----multitabs
DEFINE FILE CAR
COUNTRYCAR/A30='ENGLAND-' || CAR;
END

TABLE FILE CAR
PRINT
CAR.CARREC.MODEL
CAR.BODY.BODYTYPE
CAR.BODY.SEATS
CAR.BODY.DEALER_COST
CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR NOPRINT
BY CAR.ORIGIN.COUNTRY NOPRINT
BY CAR.COMP.CAR NOPRINT
HEADING
"ENGLAND WHERE COUNTRY EQ 'ENGLAND';
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET COMPOUND BYTOC
END

-*----Report 2----multitabs
DEFINE FILE CAR
COUNTRYCAR/A30='ITALY-' || CAR;
END

TABLE FILE CAR
PRINT
CAR.CARREC.MODEL
CAR.BODY.BODYTYPE
CAR.BODY.SEATS
CAR.BODY.DEALER_COST
CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR NOPRINT
BY CAR.ORIGIN.COUNTRY NOPRINT
BY CAR.COMP.CAR NOPRINT
HEADING
"ITALY WHERE COUNTRY EQ 'ITALY';
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET COMPOUND BYTOC
END

-*----Report 3----multitabs
DEFINE FILE CAR
COUNTRYCAR/A30='JAPAN-' || CAR;
END

TABLE FILE CAR
PRINT
CAR.CARREC.MODEL
CAR.BODY.BODYTYPE
CAR.BODY.SEATS
CAR.BODY.DEALER_COST
CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR NOPRINT
BY CAR.ORIGIN.COUNTRY NOPRINT
BY CAR.COMP.CAR NOPRINT
HEADING
"JAPAN WHERE COUNTRY EQ 'JAPAN';
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET COMPOUND BYTOC
END

This message has been edited. Last edited by: <Kathryn Henning>,


WebFOCUS 8206
Exl2k
May 27, 2014, 01:49 PM
Starr
I do realize that I can change the define but the question still lingers about multi-reports with multi-sheets in one fex. Here's my alternative:
DEFINE FILE CAR
COUNTRYCAR/A30=IF COUNTRY EQ 'ENGLAND' THEN 'ENGLAND-' || CAR ELSE IF COUNTRY EQ 'ITALY' THEN 'ITALY-' || CAR ELSE IF COUNTRY EQ 'JAPAN' THEN 'JAPAN-' || CAR ELSE ' ';
END

TABLE FILE CAR
PRINT
CAR.CARREC.MODEL
CAR.BODY.BODYTYPE
CAR.BODY.SEATS
CAR.BODY.DEALER_COST
CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR NOPRINT
BY CAR.ORIGIN.COUNTRY NOPRINT
BY CAR.COMP.CAR NOPRINT
HEADING
"WHERE COUNTRY EQ 'ENGLAND' OR 'ITALY' OR 'JAPAN';
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET COMPOUND BYTOC
END


WebFOCUS 8206
Exl2k
May 27, 2014, 02:03 PM
MartinY
Depending of what is your purpose but here two solutions.

Solution -1- which need more coding and only includes the 3 countries from your example (where you're not really filtering the country):
DEFINE FILE CAR
COUNTRYCAR/A30=COUNTRY || '-' || CAR;
END

TABLE FILE CAR
PRINT 
 CAR.CARREC.MODEL
 CAR.BODY.BODYTYPE
 CAR.BODY.SEATS
 CAR.BODY.DEALER_COST
 CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR
BY CAR.ORIGIN.COUNTRY
BY CAR.COMP.CAR
WHERE COUNTRY EQ 'ENGLAND';
ON TABLE HOLD AS HLD1
END

TABLE FILE CAR
PRINT 
 CAR.CARREC.MODEL
 CAR.BODY.BODYTYPE
 CAR.BODY.SEATS
 CAR.BODY.DEALER_COST
 CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR
BY CAR.ORIGIN.COUNTRY
BY CAR.COMP.CAR
WHERE COUNTRY EQ 'ITALY';
ON TABLE HOLD AS HLD2
END

TABLE FILE CAR
PRINT 
 CAR.CARREC.MODEL
 CAR.BODY.BODYTYPE
 CAR.BODY.SEATS
 CAR.BODY.DEALER_COST
 CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR
BY CAR.ORIGIN.COUNTRY
BY CAR.COMP.CAR
WHERE COUNTRY EQ 'JAPAN';
ON TABLE HOLD AS HLD3
END

DEFINE FILE HLD1
HEADTXT /A50 = DECODE COUNTRY (ENGLAND 'ENGLAND WHERE COUNTRY EQ ''ENGLAND''' ELSE '');
END
DEFINE FILE HLD2
HEADTXT /A50 = DECODE COUNTRY (ITALY 'ENGLAND WHERE COUNTRY EQ ''ITALY''' ELSE '');
END
DEFINE FILE HLD3
HEADTXT /A50 = DECODE COUNTRY (JAPAN 'ENGLAND WHERE COUNTRY EQ ''JAPAN''' ELSE '');
END
TABLE FILE HLD1
PRINT 
 MODEL
 BODYTYPE
 SEATS
 DEALER_COST
 RETAIL_COST
BY COUNTRYCAR NOPRINT
BY COUNTRY NOPRINT
BY CAR NOPRINT

HEADING
"<HEADTXT"
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET COMPOUND BYTOC
MORE
FILE HLD2
MORE
FILE HLD3
END



Solution -2- which is much more simple but includes all countries:
DEFINE FILE CAR
COUNTRYCAR/A30=COUNTRY || '-' || CAR;
HEADTXT /A50 = COUNTRY || ' WHERE COUNTRY EQ ''' || COUNTRY || '''';
END

TABLE FILE CAR
PRINT 
 CAR.CARREC.MODEL
 CAR.BODY.BODYTYPE
 CAR.BODY.SEATS
 CAR.BODY.DEALER_COST
 CAR.BODY.RETAIL_COST
BY CAR.COMP.COUNTRYCAR NOPRINT
BY CAR.ORIGIN.COUNTRY NOPRINT
BY CAR.COMP.CAR NOPRINT

HEADING
"<HEADTXT"
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET COMPOUND BYTOC
END




WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF
In Focus since 2007