We are trying to do a conditional styling on a scatter graph but it does not work. On changing to a bar graph the styling starts working. Below is a sample code with the car master file:
GRAPH FILE CAR SUM CNT.CAR ACROSS COUNTRY ON GRAPH SET LOOKGRAPH SCATTERS 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 PCHOLD FORMAT PNG ON GRAPH SET GRAPHSTYLE * setMarkerDisplay(true); setConnectLineMarkers(false); setConnectScatterMarkers(false); setO1LabelDisplay(true); setO1AxisSide(0); setO1MajorGridDisplay(true); setO1MajorGridStyle(0); setO1MinorGridDisplay(false); setAxisAssignment(0,0); setSeriesType(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); setLegendTextAutofit(true); setFontSizeAbsolute(getY1Title(),true); setFontSizeAbsolute(getY1Label(),true); setFontSizeAbsolute(getY2Title(),true); setFontSizeAbsolute(getY2Label(),true); setFontSizeAbsolute(getO1Title(),true); setO1LabelAutofit(true); setPlace(false); 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 LE 4, $ TYPE=REPORT, GRID=OFF, FONT='TIMES NEW ROMAN', SIZE=10, BACKCOLOR='NONE', STYLE=NORMAL, $ TYPE=DATA, ACROSSCOLUMN=N1, COLOR=RGB(0 51 0), MACRO=COND0001, $ ENDSTYLE END
But if I change from ON GRAPH SET LOOKGRAPH SCATTERS to ON GRAPH SET LOOKGRAPH BAR the conditions apply and the styling works correctly.
WF dev version - 7.6.x
May 16, 2006, 05:56 AM
Nitu Jain
Tony, I tried replacing N1 with C2 . But it didn't work.
GRAPH FILE CAR SUM CNT.CAR ACROSS COUNTRY ON GRAPH SET LOOKGRAPH SCATTERS 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 PCHOLD FORMAT PNG ON GRAPH SET GRAPHSTYLE * setMarkerDisplay(true); setConnectLineMarkers(false); setConnectScatterMarkers(false); setO1LabelDisplay(true); setO1AxisSide(0); setO1MajorGridDisplay(true); setO1MajorGridStyle(0); setO1MinorGridDisplay(false); setAxisAssignment(0,0); setSeriesType(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); setLegendTextAutofit(true); setFontSizeAbsolute(getY1Title(),true); setFontSizeAbsolute(getY1Label(),true); setFontSizeAbsolute(getY2Title(),true); setFontSizeAbsolute(getY2Label(),true); setFontSizeAbsolute(getO1Title(),true); setO1LabelAutofit(true); setPlace(false); 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=C2 LE 3, $ TYPE=REPORT, GRID=OFF, FONT='TIMES NEW ROMAN', SIZE=10, BACKCOLOR='NONE', STYLE=NORMAL, $ TYPE=DATA, COLOR=RGB(255 51 030), MACRO=COND0001, $ ENDSTYLE END
WF dev version - 7.6.x
May 16, 2006, 06:36 AM
Tony A
I know, that's why I deleted the post!
If I have time later, then I will see if I can fathom it out.
T
In FOCUS since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2
WebFOCUS App Studio 8.2.06 standalone on Windows 10
May 16, 2006, 09:10 AM
Kamesh
Tried your code against my server. It works fine. If I understand, this is where you are doing condition then it works fine for me for both bar and scatters.
That's what I thought initially, and then I realised all values were 3 or less and therefore changed the condition to be LE 2. Try it and see that the markers are still all red even though they are not all 2 or less.
Add a new line to color the markers to blue (or some other colour) to double check.
T
In FOCUS since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2
WebFOCUS App Studio 8.2.06 standalone on Windows 10
May 16, 2006, 01:50 PM
<JG>
Sorry it's got to be another API call as markers do not behave the same as risers.
(although in this particular case you must reference the markers as risers. Not totally logical but then again java is an island, coffee or a programming language depending on your age and interests. So it's not surprising that some implementers get confused and so make it very difficult for those of us who have to use it).
look at the following example using the car file
TABLE FILE CAR SUM CNT.CAR NOPRINT COMPUTE COUNTER/I9= LAST COUNTER +1; NOPRINT -* required because the java API starts counting from 0 COMPUTE COUNTER/I9= COUNTER -1; NOPRINT COMPUTE FRED/A100= IF C1 LE 2 THEN 'setExceptionalRiser(0,' || EDIT(C3) || '); ' | 'setFillColor(getExceptionalRiser(0,' || EDIT(C3) || '),new Color(255,0,0));' ELSE ' '; BY COUNTRY NOPRINT ON TABLE SET HOLDLIST PRINTONLY ON TABLE SAVE END -RUN GRAPH FILE CAR SUM CNT.CAR ACROSS COUNTRY ON GRAPH SET LOOKGRAPH SCATTERS ON GRAPH SET GRAPHEDIT OFF ON GRAPH SET BARNUMB OFF ON GRAPH SET 3D OFF ON GRAPH SET VZERO ON ON GRAPH SET GRID ON ON GRAPH PCHOLD FORMAT PNG ON GRAPH SET GRAPHSTYLE * setMarkerDisplay(true); setConnectLineMarkers(false); setConnectScatterMarkers(false); setO1LabelDisplay(true); setSeriesType(0,0); setY1LabelDisplay(true); setY1AxisSide(0); setY1MinorGridDisplay(false); setLegendDisplay(true);
-INCLUDE SAVE
setPlace(false); ENDSTYLE ON GRAPH SET STYLE * PAGESIZE='Letter', LEFTMARGIN=0.250000, RIGHTMARGIN=0.250000, TOPMARGIN=0.250000, BOTTOMMARGIN=0.250000, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='TIMES NEW ROMAN', SIZE=10, BACKCOLOR='NONE', STYLE=NORMAL, $ ENDSTYLE ENDThis message has been edited. Last edited by: <JG>,