[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 ENDThis 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