[SOLVED] Dynamic Bands in Gauge Chart - Format GIF or PNG
Hi,
I am trying to make a gauge chart that shows current sales, 1st target and 2nd target. The min/max values of each band are calculated using the total sales and therefore, are dynamic.
I was able to do it using the scripts below but the format is JSCHART. I'd like to make it as an image (png/gif...) Does anyone know how to do it?
-*Use Car as an example: BTW The scripts is running well in App Studio but returns an error message in info assistant and I don't know why...
SET HOLDLIST=PRINTONLY TABLE FILE CAR SUM SALES COMPUTE 1ST_TARGET/I10=TOT.SALES * 1.15; COMPUTE 2ND_TARGET/I10=1ST_TARGET * 1.15; BY COUNTRY WHERE COUNTRY EQ 'ENGLAND'; ON TABLE HOLD AS A1 END -RUN
TABLE FILE A1 SUM A1.A1.1ST_TARGET NOPRINT COMPUTE REDMAX/I10=C1/3; COMPUTE YELLOWMIN/I10=C1/3*2; COMPUTE YELLOWMAX/I10=C1; COMPUTE DARKGREENMIN/I10=C1*1.15; COMPUTE DARKGREENMAX/I10=C1*1.33; ON TABLE HOLD AS VALUES FORMAT ALPHA PRINT * END -RUN -READ VALUES &REDMAX.A10 &YELLOWMIN.A10.&YELLOWMAX.A10.&DARKGREENMIN.A10.&DARKGREENMAX.A10.
GRAPH FILE CAR SUM SALES COMPUTE 1ST_TARGET/I10=TOT.SALES * 1.15; COMPUTE 2ND_TARGET/I10=1ST_TARGET * 1.15; BY COUNTRY WHERE COUNTRY EQ 'ENGLAND'; ON GRAPH PCHOLD FORMAT JSCHART ON GRAPH SET VZERO OFF ON GRAPH SET HTMLENCODE ON ON GRAPH SET GRMERGE ADVANCED ON GRAPH SET GRMULTIGRAPH 0 ON GRAPH SET GRLEGEND 0 ON GRAPH SET GRXAXIS 1 ON GRAPH SET LOOKGRAPH GAUGE1 ON GRAPH SET AUTOFIT ON ON GRAPH SET STYLE * *GRAPH_SCRIPT setPieDepth(0); setPieTilt(0); setDepthRadius(0); setCurveFitEquationDisplay(false); setPlace(true); *END INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$ TYPE=REPORT, TITLETEXT=&WF_TITLE.QUOTEDSTRING, $ *GRAPH_SCRIPT setReportParsingErrors(false); setSelectionEnableMove(false); setY1ExcludeMaxLabel(true); setPlace(true); setGaugeBackgroundStyle(6); setGaugeStopAngle(0.0); setGaugeSizeMode(false); setGaugeStartAngle(180.0); setTransparentFillColor(getFrame(),true); setTextFormatPreset(getY1Label(),0); setFillColor(getSeries(0),new Color(255,128,0)); setFillColor(getSeries(1), new Color(187,0,187,38)); setFillColor(getSeries(2), new Color(187,0,187,38)); setGaugeMinorTickRelativeTickLength(0.02); setGaugeMajorTickRelativeTickLength(0.06); setGaugeNeedleStyle(0);
ENDSTYLE END -RUNThis message has been edited. Last edited by: FP Mod Chuck,
November 08, 2018, 03:24 PM
YY
Thanks in advance!
November 09, 2018, 03:30 AM
Tony A
quote:
the format is JSCHART. I'd like to make it as an image (png/gif...) Does anyone know how to do it?
JSCHART is HTML and JavaScript which, as you've found out, only result in your chart when using FORMAT JSCHART.
If you were to change the format to an image format then the code that would be used would be the PFJ (Perspective for Java) engine which would result in a different looking chart.
You could use PhantomJS - as has been mentioned before in other posts. Unfortunately, this is too involved for this forum
Your code, saved within App Studio, runs perfectly OK in InfoAssist.
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
November 09, 2018, 04:19 PM
YY
Hi Tony,
Thanks a lot for your reply!
I tried with InfoAssist 8.1.09 and it worked but with 8.2.03 it asked me to put values in parameters "&REDMAX.A10 &YELLOWMIN.A10.&YELLOWMAX.A10.&DARKGREENMIN.A10.&DARKGREENMAX.A10.". It seems the "-Read Values" does not work very well.
I also tried to call values from database to define band starts and band ends. I almost got the gauge chart I need. The only problem is that the ScaleMax is a bit smaller than the value I defined. I will post the sample codes using car data later.
Best,
November 12, 2018, 07:33 AM
MartinY
And if you try with the following, is that look better and make any differences under 8.2.0.3 ?
-DEFAULTH &REDMAX = 0
-DEFAULTH &YELLOWMIN = 0
-DEFAULTH &YELLOWMAX = 0
-DEFAULTH &DARKGREENMIN = 0
-DEFAULTH &DARKGREENMAX = 0
TABLE FILE A1
SUM A1.A1.1ST_TARGET NOPRINT
COMPUTE REDMAX/I10=C1/3;
COMPUTE YELLOWMIN/I10=C1/3*2;
COMPUTE YELLOWMAX/I10=C1;
COMPUTE DARKGREENMIN/I10=C1*1.15;
COMPUTE DARKGREENMAX/I10=C1*1.33;
ON TABLE HOLD AS VALUES
END
-RUN
-READFILE VALUES
-RUN
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