Is it possible to have a dynamic BY field in a Report.
For Eg:
TBALE FILE XYZ PRINT * BY &VAR ON TABLE HOLD AS MYHOLD END
Here &VAR will be passed from either a jsp or html.
Any thoughts?This message has been edited. Last edited by: <Kathryn Henning>,
June 18, 2013, 07:59 AM
MichaelBalle
try this:
-SET &var1 = 'COUNTRY';
-SET &var2 = 'CAR';
-SET &var3 = 'MODEL';
-*
TABLE FILE CAR
SUM
DEALER_COST
RETAIL_COST
BY &var1
BY &var2
BY &var3
END
-RUN
-SET &var1 = 'MODEL';
-SET &var2 = 'COUNTRY';
-SET &var3 = 'CAR';
-*
TABLE FILE CAR
SUM
DEALER_COST
RETAIL_COST
BY &var1
BY &var2
BY &var3
END
WebFOCUS 7.6, 7.7 Windows, All Output formats
June 18, 2013, 08:26 AM
electricbright
Thanks Michael for your suggestion.
I will try this and get back to you.
June 18, 2013, 08:34 AM
Doug
Use -DEFAULT or -DEFAULTH instead of the -SET to allow the value to change to that which is incoming from your jsp or html page...
June 18, 2013, 05:46 PM
Waz
Because Dialog Manager (& vars and - commands) are a preprocessor, this is quite possible, and every part of the TABLE request can be parameterised.
Waz...
Prod:
WebFOCUS 7.6.10/8.1.04
Upgrade:
WebFOCUS 8.2.07
OS:
Linux
Outputs:
HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!
June 19, 2013, 01:01 PM
njsden
quote:
and every part of the TABLE request can be parameterised.
True! That's once of the amazing and powerful things of the Dialogue Manager and [Web]FOCUS language combination.
-DEFAULT &VTABLE = 'CAR';
-DEFAULT &VVERB = 'PRINT';
-DEFAULT &VFIELD = 'CAR AND MODEL AND SEATS';
-DEFAULT &VBY = 'COUNTRY';
-DEFAULT &VWHERE = 'COUNTRY EQ ''JAPAN''';
-DEFAULT &VFORMAT = 'HTML';
TABLE FILE &VTABLE
&VVERB
&VFIELD
BY &VBY
WHERE &VWHERE
ON TABLE PCHOLD FORMAT &VFORMAT
END
That's a very simplistic way to implement some sort of adhoc reporting functionality.
Or course, one can go to extremes and make that code even more "dynamic" than what the example shows, but I wouldn't like to be the one maintaining it in the future