As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
I am trying to get the color or my pie slices to appear the same based on the Series name. So for example if the slice is 'After 2pm', that slice should be red and if the slice is 'Before 9AM' the slice should be green. I formatted each of the series individually through App Studio but if there is 2 or less slices, the slices are not the correct color. It seems to be alphabetical, not linked to the series name. Does anyone know how to make this appear consistently, even if there is only one slice? Thank you in advance!This message has been edited. Last edited by: <Emily McAllister>,
WebFOCUS 8.2, Server 2008 R2, SQL 2014 data warehouse
Hello Rosie, I live in St Augustine, so right down the road from ya. Welcome to FocalPoint!
I don't think there is a way to set color based on value for a pie chart. I usually set my colors based on the order of the pie, not the value with the use of:
However, you can order the data the way you need by the use of DECODE.
Example:
DEFINE FILE CAR ADD
MYSORT/A1=DECODE CAR.ORIGIN.COUNTRY ('JAPAN' 'a' 'ENGLAND' 'b' 'W GERMANY' 'c' 'ITALY' 'd');
END
ENGINE INT CACHE SET ON
-DEFAULTH &WF_STYLE_UNITS='PIXELS';
-DEFAULTH &WF_STYLE_HEIGHT='405.0';
-DEFAULTH &WF_STYLE_WIDTH='770.0';
GRAPH FILE CAR
-* Created by Info Assist for Graph
SUM CAR.BODY.SALES
BY MYSORT NOPRINT
BY CAR.ORIGIN.COUNTRY
ON GRAPH PCHOLD FORMAT JSCHART
ON GRAPH SET VZERO OFF
ON GRAPH SET HTMLENCODE ON
ON GRAPH SET GRAPHDEFAULT OFF
ON GRAPH SET UNITS &WF_STYLE_UNITS
ON GRAPH SET HAXIS &WF_STYLE_WIDTH
ON GRAPH SET VAXIS &WF_STYLE_HEIGHT
ON GRAPH SET GRMERGE ADVANCED
ON GRAPH SET GRMULTIGRAPH 0
ON GRAPH SET GRLEGEND 0
ON GRAPH SET GRXAXIS 2
ON GRAPH SET LOOKGRAPH PIEMULTI
ON GRAPH SET AUTOFIT ON
ON GRAPH SET STYLE *
*GRAPH_SCRIPT
setPieDepth(0);
setPieTilt(0);
setDepthRadius(0);
setCurveFitEquationDisplay(false);
setPlace(true);
setPieFeelerTextDisplay(1);
*END
INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$
TYPE=REPORT, TITLETEXT='WebFOCUS Report', $
*GRAPH_SCRIPT
setReportParsingErrors(false);
setSelectionEnableMove(false);
setDisplay(getLegendArea(),false);
setPieFeelerTextDisplay(3);
setDisplay(getPieLabel(),false);
*END
ENDSTYLE
END
- FOCUS Man, just FOCUS! ----------------------------- Product: WebFOCUS Version: 8.1.04 Server: Windows 2008 Server
Hi! Nice to hear from a neighbor! Thanks for the welcome. The thing is, there may be 1 slice and up to 8 slices depending on how they are doing, so no order will accommodate for all the different possibilities to ensure the right color appears. I was hoping to have a visual representation of how we are doing so a larger green slice is good (since we want everyone to be before 9). Hmm
WebFOCUS 8.2, Server 2008 R2, SQL 2014 data warehouse
I'll add my welcome to that from Gavin, although I am much further away!
The answer to your question, as Doug normally suggests, is "Yes, we can do that in WebFOCUS'.
I would add, that it depends on how much you want to stray from the GUI.
Using the ability to INCLUDE a file within any report or chart etc., you could extract the code that you need to colourise your series and INCLUDE it. The downside is that the GUI doesn't allow you to add an INCLUDE within the JSCHART script.
Anyhow, this sample code will demonstrate what I mean. Notice that I've used colour names, rgb values and hash values as the colours. The JSCHART engine permits any of these values.
TABLE FILE CAR
SUM SALES NOPRINT
COMPUTE COLOUR/A16 = DECODE COUNTRY ('ENGLAND' 'rgb(0,142,126)'
'FRANCE' 'yellow'
'ITALY' '#f00'
'JAPAN' '#0cccfc'
'W GERMANY' 'rgb(173,204,189)' ELSE '#f00'); NOPRINT
-* Series numbering begins from 0 so the next two computes cater for this.
COMPUTE COUNTER/I2 = IF SALES EQ 0 THEN LAST COUNTER ELSE LAST COUNTER + 1; NOPRINT
COMPUTE SERIES/I2 = COUNTER - 1; NOPRINT
COMPUTE SERIES_COLOUR/A50 = '{series: '|LJUST(2,FPRINT(SERIES,'I2','A2'),'A2')||', color: '''||COLOUR||'''},';
BY COUNTRY NOPRINT
-* We only want data where the SUM.SALES ne 0
WHERE TOTAL SALES NE 0
-* Only hold the ouput that we need - exclude the NOPRINTs
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE SAVE AS seriesprops
END
-RUN
GRAPH FILE CAR
SUM SALES
BY COUNTRY
-* We only want data where the SUM.SALES ne 0 - to match the series properties extract
WHERE TOTAL SALES NE 0
ON GRAPH PCHOLD FORMAT JSCHART
ON GRAPH SET VZERO OFF
ON GRAPH SET HTMLENCODE ON
ON GRAPH SET GRAPHDEFAULT OFF
ON GRAPH SET GRMERGE ADVANCED
ON GRAPH SET GRMULTIGRAPH 0
ON GRAPH SET GRLEGEND 0
ON GRAPH SET GRXAXIS 1
ON GRAPH SET LOOKGRAPH PIEMULTI
ON GRAPH SET AUTOFIT ON
ON GRAPH SET STYLE *
*GRAPH_SCRIPT
setPieDepth(0);
setPieTilt(0);
setDepthRadius(0);
setPlace(true);
setPieFeelerTextDisplay(1);
setReportParsingErrors(false);
setSelectionEnableMove(false);
setDisplay(getLegendArea(),false);
setPieFeelerTextDisplay(3);
setDisplay(getPieLabel(),false);
*END
TYPE=REPORT, TITLETEXT='Pie Chart - Custom Colours', $
*GRAPH_JS
series: [
-INCLUDE seriesprops.ftm
]
*END
ENDSTYLE
END
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
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004
The result of Step 1, programmatically creating the API code to be included in the GRAPH FILE step... Very useful in maintaining continuity/uniformity, use it all the time....
Rosie When it prompts for what_col type 2. I keep the code in a separate fex so I can include it into multiple files keeping consistent colors throughout the code.
GRAPH FILE CAR SUM RETAIL_COST BY COUNTRY ON GRAPH PCHOLD FORMAT HTML ON GRAPH SET PAGE-NUM NOLEAD ON GRAPH SET EMPTYREPORT ON ON GRAPH SET HTMLENCODE ON ON GRAPH SET GRAPHDEFAULT OFF ON GRAPH SET ARGRAPHENGIN JSCHART ON GRAPH SET VZERO OFF ON GRAPH SET GRMERGE OFF ON GRAPH SET GRMULTIGRAPH 0 ON GRAPH SET GRLEGEND 0 ON GRAPH SET GRXAXIS 3 ON GRAPH SET LOOKGRAPH PIE ON GRAPH SET AUTOFIT ON ON GRAPH SET STYLE * PAGESIZE='Letter',$ DEFMACRO=COND0001,COLUMN=&WHAT_COL,MACTYPE=RULE,WHEN=COUNTRY EQ 'ENGLAND',$ DEFMACRO=COND0002,COLUMN=&WHAT_COL,MACTYPE=RULE,WHEN=COUNTRY EQ 'FRANCE',$ DEFMACRO=COND0003,COLUMN=&WHAT_COL,MACTYPE=RULE,WHEN=COUNTRY EQ 'GERMANY',$ DEFMACRO=COND0004,COLUMN=&WHAT_COL,MACTYPE=RULE,WHEN=COUNTRY EQ 'ITALY',$ DEFMACRO=COND0005,COLUMN=&WHAT_COL,MACTYPE=RULE,WHEN=COUNTRY EQ 'JAPAN',$ TYPE=DATA,COLOR=RGB(194 11 11),MACRO=COND0001,$ TYPE=DATA,COLOR=RGB(158 188 94),MACRO=COND0002,$ TYPE=DATA,COLOR=RGB(130 103 162),MACRO=COND0003,$ TYPE=DATA,COLOR=RGB(251 192 8),MACRO=COND0004,$ TYPE=DATA,COLOR=RGB(0 0 0),MACRO=COND0005,$ ENDSTYLE END
Thank you everyone! J.L. It looks like your post has exactly what I am looking for! Although, I am pretty new to WebFOCUS so if you would be so kind as to pardon my amateur questions... So in the example below, could I just copy the DEFMACRO= and TYPE= lines into mychart.fex (changing the colors and conditions appropriately)? Am I right in inferring that this example isn't looking to a separate fex for the formatting? And finally, where will it prompt me for what_col - it looks like it will be a report parameter? If that is the case, could I add a -SET in the code to keep it from prompting? This chart will be in a portal. Thanks so much!
WebFOCUS 8.2, Server 2008 R2, SQL 2014 data warehouse
where will it prompt me for what_col - it looks like it will be a report parameter?
You can replace the &WHAT_COL with RETAIL_COST and get the same results, without a prompt.
Something to note about Columns.. When it comes to what column number you looking at, start with "BY". So BY COUNTRY = column 1, where SUM RETAIL_COST = column 2. Odd how its laid out, but that is how they do it.
TABLE NAME SUM COLUMN3 COLUMN4 BY COLUMN1 BY COLUMN2
Columns sometimes are referenced as N as well.. N1, N2, N3, etc..
I had tried to do colors before with no success, so I also learned something.. Always learning in this product.
- FOCUS Man, just FOCUS! ----------------------------- Product: WebFOCUS Version: 8.1.04 Server: Windows 2008 Server
Rosie You can copy it in and change &what_col to the column number the field is in. I have the code in a separate fex and include it. That way I can adjust it to color on what column my sort field is in.