Focal Point
drill down/conditional styling in a graph

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

December 07, 2004, 06:31 AM
<Kalyan>
drill down/conditional styling in a graph
Hi
I need to drill down from a graphical report to generate a detailed report.Additionally I also need to conditionally specify color coding of the bar graph I am generating .But Whatever URL or style sheet parameters I specify is not getting reflected in my report. Could anyone help me out with this?

-***************************************
code
-****************************************
REMOTE DEST=TEST
-REMOTE BEGIN
SET TRACEOFF=ALL
SET TRACEON=STMTRACE
SET TRACEON=SQLAGGR//CLIENT
SET TRACEON=STMTRACE//CLIENT
SET TRACEON=STMTRACE/2/CLIENT
SET TRACEUSER=ON

SET GRAPHEDIT =SERVER
SQL SQLDBC
SELECT D.AMOUNT,((CURRENT_DATE-D.BIL_DT) -C.TERMS) AS DPT FROM
TABLE A,TABLE B,TABLE C,TABLE D
WHERE
A.P_CD = C.P_CD
AND A.P_CD = B.P_CD
AND B.P_CD = C.P_CD
AND A.P_CD = D.B_CD
AND DPT >= '&START_DAY' AND DPT < ('&START_DAY'+10);
TABLE HOLD AS HOLD1
END
GRAPH FILE HOLD1

SUM AMOUNT
ACROSS DPT
ON GRAPH SET STYLE *
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=GREEN,WHEN=N1 LT 1000000,$
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=YELLOW,WHEN=N1 GT 1000000,$
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=RED,WHEN=N1 GT 2000000,$
ENDSTYLE
ON GRAPH SET LOOKGRAPH 3DBAR
ON GRAPH SET GRAPHSTYLE *
setLegendMarkerPosition(4);
setO1LabelRotate(0);
ENDSTYLE
END
-REMOTE END


IN THE ABOVE CODE Determinination of TABEL A,B,C,D are also through some sql's which I have removed for simple understanding.

My problem in the above code is that I am able to generate the graph.But the color coding conditions which i have speciied do not take effect.The graph always come out to have all bars in GREEN color !!! Also I tried to add a URl to each of teh bars to link to another web page.But here also I am not able to give a URL link.

Any suggestions to make it work??

Thanks in advance
kalyan.
December 07, 2004, 07:09 AM
joan_c
Try
GRAPH FILE HOLD1

SUM AMOUNT
ACROSS DPT
ON GRAPH SET STYLE *
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=RED,WHEN=N1 GT 2000000,$

TYPE=DATA,ACROSSCOLUMN=N1,COLOR=GREEN,WHEN=N1 LT 1000000,$
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=YELLOW,WHEN=N1 GT 1000000,$
ENDSTYLE
ON GRAPH SET LOOKGRAPH 3DBAR
ON GRAPH SET GRAPHSTYLE *
setLegendMarkerPosition(4);
setO1LabelRotate(0);
ENDSTYLE
END
December 07, 2004, 10:25 AM
<Kalyan>
This also gives the same result !!! green color graph
December 07, 2004, 11:58 AM
joan_c
Hi
I cannot do just like you, but

I have tested following

DEFINE FILE CAR
SEATS9/P15.2=SEATS*1000000;
END
GRAPH FILE CAR
SUM SEATS9
ACROSS MODEL
IF RECORDLIMIT EQ 500
ON GRAPH SET STYLE *
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=GREEN,WHEN=N1 LT 3000000,$
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=YELLOW,WHEN=N1 GT 3000000,$
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=RED,WHEN=N1 GT 4000000,$


ENDSTYLE
ON GRAPH SET LOOKGRAPH 3DBAR
ON GRAPH SET GRAPHSTYLE *
setLegendMarkerPosition(4);
setO1LabelRotate(0);
ENDSTYLE
END

this does not work


on the contrary

DEFINE FILE CAR
SEATS9/P15.2=SEATS*1000000;
END
GRAPH FILE CAR
SUM SEATS9
ACROSS MODEL
IF RECORDLIMIT EQ 500
ON GRAPH SET STYLE *
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=RED,WHEN=N1 GT 4000000,$
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=GREEN,WHEN=N1 LT 3000000,$
TYPE=DATA,ACROSSCOLUMN=N1,COLOR=YELLOW,WHEN=N1 GT 3000000,$



ENDSTYLE
ON GRAPH SET LOOKGRAPH 3DBAR
ON GRAPH SET GRAPHSTYLE *
setLegendMarkerPosition(4);
setO1LabelRotate(0);
ENDSTYLE
END

it works correctly


Sorry, but it is possible
this SUM AMOUNT is always LT 1000000 ?
December 07, 2004, 01:21 PM
<Kalyan>
You are right It works for the code you gave.I have been able to do the color coding earlier. But to improve the performace of my graph I changed the code to run a native sql and then hold that output to generate a graph.My graph was generated faster this way.
Now the problem with this is I am not able to add a URL link or the color coding.
Do we have to approach this case differently as to how we specify stylesheet attributes or is there a limitation with WebFOCUS here that we cannot do this??
December 07, 2004, 01:31 PM
Spence
This will drill from the graph to another fex.
Same example but only with the drill down.

DEFINE FILE CAR
SEATS9/D15=SEATS * 1000000;
END
GRAPH FILE CAR
HEADING
"Seats * 1,000,000 by Model with drill down"
SUM SEATS9
ACROSS MODEL
ON GRAPH SET LOOKGRAPH 3D_BAR
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET BARNUMB OFF
ON GRAPH SET 3D OFF
ON GRAPH SET VZERO ON
ON GRAPH SET GRID ON
ON GRAPH SET GRAPHSTYLE *
setMarkerDisplay(true);
setConnectLineMarkers(false);
setConnectScatterMarkers(false);
setO1LabelDisplay(true);
setO1AxisSide(0);
setO1MajorGridDisplay(true);
setO1MajorGridStyle(0);
setO1MinorGridDisplay(false);
setAxisAssignment(0,0);
setY1LabelDisplay(true);
setY1AxisSide(0);
setY1MajorGridDisplay(true);
setY1MajorGridStyle(0);
setY1MinorGridDisplay(false);
setTextFormatPreset(getY1Label(),-1);
setTextFormatPattern(getY1Label(),"#.##");
setPieFeelerTextDisplay(1);
setPieLabelDisplay(0);
setTextFormatPreset(getPieSliceLabel(),1);
setRiserBorderMode(1);
setSeriesDefaultTransparentBorderColor(true);
setUseSeriesBorderDefaults(true);
setLegendDisplay(true);
setFontSizeAbsolute(getY1Title(),true);
setFontSizeAbsolute(getY1Label(),true);
setFontSizeAbsolute(getY2Title(),true);
setFontSizeAbsolute(getY2Label(),true);
setFontSizeAbsolute(getO1Title(),true);
setPlace(true);
ENDSTYLE
ON GRAPH SET STYLE *
PAGESIZE='Letter',
LEFTMARGIN=0.250000,
RIGHTMARGIN=0.250000,
TOPMARGIN=0.250000,
BOTTOMMARGIN=0.250000,
SQUEEZE=ON,
ORIENTATION=PORTRAIT,
$
DEFMACRO=COND0001,
MACTYPE=RULE,
WHEN=N1 GT 4000000,
$
DEFMACRO=COND0002,
MACTYPE=RULE,
WHEN=N1 LT 3000000,
$
DEFMACRO=COND0003,
MACTYPE=RULE,
WHEN=N1 GE 3000000,
$
TYPE=REPORT,
GRID=OFF,
FONT='TIMES NEW ROMAN',
SIZE=10,
BACKCOLOR='NONE',
STYLE=NORMAL,
$
TYPE=DATA,
ACROSSCOLUMN=N1,
COLOR='RED',
MACRO=COND0001,
FOCEXEC=CARGRAPHDRILL(MODEL=A1),
$
TYPE=DATA,
ACROSSCOLUMN=N1,
COLOR='LIME',
MACRO=COND0002,
FOCEXEC=CARGRAPHDRILL(MODEL=A1),
$
TYPE=DATA,
ACROSSCOLUMN=N1,
COLOR='YELLOW',
MACRO=COND0003,
FOCEXEC=CARGRAPHDRILL(MODEL=A1),
$
ENDSTYLE
END
December 11, 2004, 06:13 AM
<Kalyan>
Well the colour coding is not woorking in my case. Guess we ahve to implement it differently when we run the query as a remote sql.
But I tried to implement a drill down. I used the graphstyle attributes setURL(),setURLTarget() to do this. Here I am stuck up with one issue where I am not able to pass he value of the X axis as a parameter in the URL
************************************
my code:
************************************
REMOTE DEST=TEST
-REMOTE BEGIN
SQL SQLDBC
SELECT D.AMOUNT,(CURRENT_DATE-D.BIL_DT) -C.TERMS) AS DPT FROM
TABLE A,TABLE C, TABLE D
---
TABLE
ON TABLE HOLD AS HOLD1
END
GRAPH FILE HOLD1
SUM AMOUNT
ACROSS DPT
ON GRAPH SET LOOKGRAPH 3DBAR
ON GRAPH SET GRAPHSTYLE *
setLegendMarkerPosition(4);
setO1LabelRotate(0);
setMarkerDisplay(true);
setConnectLineMarkers(false);
setConnectScatterMarkers(false);
setO1LabelDisplay(true);
setO1AxisSide(0);
setO1MajorGridDisplay(true);
setO1MajorGridStyle(0);
setO1MinorGridDisplay(false);
setAxisAssignment(0,0);
setY1LabelDisplay(true);
setY1AxisSide(0);
setY1MajorGridDisplay(true);
setY1MajorGridStyle(0);
setY1MinorGridDisplay(false);
setTextFormatPreset(getY1Label(),-1);
setTextFormatPattern(getY1Label(),"$#.##");
setPieFeelerTextDisplay(1);
setPieLabelDisplay(0);
setTextFormatPreset(getPieSliceLabel(),1);
setRiserBorderMode(1);
setSeriesDefaultTransparentBorderColor(true);
setUseSeriesBorderDefaults(true);
setLegendDisplay(true);
setFontSizeAbsolute(getY1Title(),true);
setFontSizeAbsolute(getY1Label(),true);
setFontSizeAbsolute(getY2Title(),true);
setFontSizeAbsolute(getY2Label(),true);
setFontSizeAbsolute(getO1Title(),true);
setURL(getO1Label(),
"http://myservername/myapp?pgName=value1&|actionName=value2&|dayspastterms=DPT");

setURLTarget(getO1Label(),"_top");
ENDSTYLE


I need a way to pass the value of DPT in the URL. Can anyone suggest a way to do it. The code at present does not work...

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