Focal Point Banner


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.


Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     53 Graph Engine - here's a nice example

Read-Only Read-Only Topic
Go
Search
Notify
Tools
53 Graph Engine - here's a nice example
 Login/Join
 
<JG>
posted
Sorry guys I don't have an online url to load the image, but give the code a try.

I had to build this a few weeks ago and have made it generic with data and metadata embeded.

It shows the power of the annotation feature in the 53 engine.

(using annotations could have been an alternative approach for Jims
Pie chart: Show slice label, % value AND true value of slice problem because you could display them as a table in the chart)

For the annotation part of the code It should really be in dm loops but for clarity it's fully expanded.

***** Note 53 and up only.



-*
-* the master
FILEDEF XDATAMAS DISK XDATA.MAS
-RUN
-WRITE XDATAMAS FILE=XDATA ,SUFFIX=FIX
-WRITE XDATAMAS SEGNAME=XDATA,SEGTYPE=S02
-WRITE XDATAMAS FIELDNAME =COUNTER ,E01 ,I1 ,A1 ,$
-WRITE XDATAMAS FIELDNAME =COMPANY ,E02 ,A25 ,A25 ,$
-WRITE XDATAMAS FIELDNAME =AREA ,E03 ,A32 ,A32 ,$
-WRITE XDATAMAS FIELDNAME =VALUE ,E04 ,D10.1 ,A10 ,$

-*
-* The data
FILEDEF XDATA DISK XDATA.FTM
-RUN
-WRITE XDATA 1Company A Measure A 63.0
-WRITE XDATA 1Company A Measure B 98.0
-WRITE XDATA 1Company A Measure C -34.7
-WRITE XDATA 1Company A Measure D 64.0
-WRITE XDATA 1Company A Measure E -34.4
-WRITE XDATA 1Company A Measure F 42.0
-WRITE XDATA 1Company A Measure G -38.1
-WRITE XDATA 1Company A Measure H 26.0
-WRITE XDATA 1Company A Measure I -76.9
-WRITE XDATA 1Company A Measure J 15.0
-WRITE XDATA 1Company A Measure k 6.0
-WRITE XDATA 1Company A Measure L 102.7
-WRITE XDATA 1Company A Measure M 16.0
-WRITE XDATA 1Company A Measure N 3.1
-WRITE XDATA 1Company A Measure O 5.6
-WRITE XDATA 1Company A Measure P 8.7
-RUN
-* The setup
-SET &L1= 'Measure A \nMeasure B';
-SET &L2= 'Measure D';
-SET &L3= 'Measure F';
-SET &L4= 'Measure H \nMeasure J';
-SET &L5= 'Measure K';
-SET &L6= 'Measure L\n.\nMeasure M\n.\nMeasure N\n.\nMeasure O';

DEFINE FILE XDATA
P1/D10.1 MISSING ON=IF AREA EQ 'Measure A' THEN VALUE ELSE
IF AREA EQ 'Measure D' THEN MISSING ELSE
IF AREA EQ 'Measure F' THEN MISSING ELSE
IF AREA EQ 'Measure H' THEN MISSING ELSE
IF AREA EQ 'Measure J' THEN VALUE ELSE
IF AREA EQ 'Measure K' THEN MISSING ELSE 0;

P2F/D10.1 MISSING ON=IF AREA EQ 'Measure A' THEN 0 ELSE
IF AREA EQ 'Measure B' THEN VALUE ELSE
IF AREA EQ 'Measure D' THEN VALUE ELSE
IF AREA EQ 'Measure F' THEN VALUE ELSE
IF AREA EQ 'Measure H' THEN VALUE ELSE
IF AREA EQ 'Measure J' THEN 0 ELSE
IF AREA EQ 'Measure K' THEN VALUE ELSE 0;

BARS/A34=IF AREA EQ 'Measure A' THEN '1 Measure A \nMeasure B' ELSE
IF AREA EQ 'Measure B' THEN '1 Measure A \nMeasure B' ELSE
IF AREA EQ 'Measure C' THEN ' ' ELSE
IF AREA EQ 'Measure D' THEN '2 Measure D' ELSE
IF AREA EQ 'Measure E' THEN ' ' ELSE
IF AREA EQ 'Measure F' THEN '3 Measure F' ELSE
IF AREA EQ 'Measure G' THEN ' ' ELSE
IF AREA EQ 'Measure H' THEN '4 Measure H Measure J' ELSE
IF AREA EQ 'Measure I' THEN ' ' ELSE
IF AREA EQ 'Measure J' THEN '4 Measure H Measure J' ELSE
IF AREA EQ 'Measure K' THEN '5 Measure K' ELSE ' ';
END
TABLE FILE XDATA
SUM P1
COMPUTE P2/D10.1=IF BARS EQ '1 Measure A \nMeasure B' THEN P2F - P1 ELSE
IF BARS EQ '4 Measure H Measure J ' THEN P2F - P1 ELSE P2F;
BY BARS
WHERE BARS NE ' '
ON TABLE HOLD AS H1
END
-RUN
TABLE FILE XDATA
SUM VALUE
ACROSS AREA COLUMNS 'Measure C' AND 'Measure E'
AND 'Measure G' AND 'Measure I'
AND 'Measure L' AND 'Measure M'
AND 'Measure N' AND 'Measure O'
BY COMPANY
WHERE BARS EQ ''
ON TABLE SAVE AS PCENTS
END
-RUN
-READ PCENTS &TITLE.A25. &PC1.A10. &PC2.A10. &PC3.A10. &PC4.A10. &PC5.A10. &PC6.A10. &PC7.A10. &PC8.A10.
-RUN
-* The Graph
GRAPH FILE H1
SUM P1 P2
BY BARS AS ''

ON GRAPH SET LOOKGRAPH HBRSTK1
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET BARNUMB ON
ON GRAPH SET 3D OFF
ON GRAPH SET VAXIS 500
ON GRAPH SET HAXIS 900
ON GRAPH SET VZERO OFF
ON GRAPH SET GRID OFF
ON GRAPH SET GRAPHSTYLE *
setFontSizeAbsolute(true)
setFontSize(6);
setFontSize(getO1Label(),5);
setFontSize(getX1Label(),6);
setFontSize(getY1Label(),6);
setFontSize(getDataText(),6);
setPlace(false);
-*
-* Set new display rectangles for the graph and the footnote areas
setRect(getFrame(),new Rectangle(-10000,-3000,21000,17000));
setRect(getFootnote(),new Rectangle(-10000,-17000,5525,12303));
-*
-* Set the title according to company being processed
setTitleDisplay(true);
setTitleString("A Graph for &TITLE.EVAL");
setTextJustHoriz(getTitle(), 1);
-*
-* Set the footnote text
setTextJustHoriz(getFootnote(),1);
setFootnoteString("&L6.EVAL");
-*
-* Set the annotation text and position of the annotaion text box (1 block for each value)
setDisplay(getAnnotationBox(0), true);
setDisplay(getAnnotation(0), true);
setTextString(getAnnotation(0), "&PC1.EVAL%");
setFillColor(getAnnotation(0), new Color (0,0,0));
setFontSize(getAnnotation(0),6);
setFontStyle(getAnnotation(0), 0);
setFillColor(getAnnotationBox(0), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(0), false);
setRect(getAnnotation(0), new Rectangle (11000, 9000, 2700, 1800));

setDisplay(getAnnotationBox(1), true);
setDisplay(getAnnotation(1), true);
setTextString(getAnnotation(1), "&PC2.EVAL%");
setFillColor(getAnnotation(1), new Color (0,0,0));
setFontStyle(getAnnotation(1), 0);
setFillColor(getAnnotationBox(1), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(1), false);
setRect(getAnnotation(1), new Rectangle (11000, 6000, 2700, 1800));

setDisplay(getAnnotationBox(2), true);
setDisplay(getAnnotation(2), true);
setTextString(getAnnotation(2), "&PC3.EVAL%");
setFillColor(getAnnotation(2), new Color (0,0,0));
setFontStyle(getAnnotation(2), 0);
setFillColor(getAnnotationBox(2), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(2), false);
setRect(getAnnotation(2), new Rectangle (11000, 3000, 2700, 1800));

setDisplay(getAnnotationBox(3), true);
setDisplay(getAnnotation(3), true);
setTextString(getAnnotation(3), "&PC4.EVAL%");
setFillColor(getAnnotation(3), new Color (0,0,0));
setFontStyle(getAnnotation(3), 0);
setFillColor(getAnnotationBox(3), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(3), false);
setRect(getAnnotation(3), new Rectangle (11000, 0000, 2700, 1800));


setDisplay(getAnnotationBox(4), true);
setDisplay(getAnnotation(4), true);
setTextString(getAnnotation(4), "&PC5.EVAL");
setFillColor(getAnnotation(4), new Color (0,0,0));
setFontStyle(getAnnotation(4), 0);
setFillColor(getAnnotationBox(4), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(4), false);
setRect(getAnnotation(4), new Rectangle (0000, -6000, 2700, 1500));

setDisplay(getAnnotationBox(5), true);
setDisplay(getAnnotation(5), true);
setTextString(getAnnotation(5), "&PC6.EVAL");
setFillColor(getAnnotation(5), new Color (0,0,0));
setFontStyle(getAnnotation(5), 0);
setFillColor(getAnnotationBox(5), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(5), false);
setRect(getAnnotation(5), new Rectangle (0000, -9000, 2700, 1500));

setDisplay(getAnnotationBox(6), true);
setDisplay(getAnnotation(6), true);
setTextString(getAnnotation(6), "&PC7.EVAL");
setFillColor(getAnnotation(6), new Color (0,0,0));
setFontStyle(getAnnotation(6), 0);
setFillColor(getAnnotationBox(6), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(6), false);
setRect(getAnnotation(6), new Rectangle (0000, -12000, 2700, 1500));

setDisplay(getAnnotationBox(7), true);
setDisplay(getAnnotation(7), true);
setTextString(getAnnotation(7), "&PC8.EVAL");
setFillColor(getAnnotation(7), new Color (0,0,0));
setFontStyle(getAnnotation(7), 0);
setFillColor(getAnnotationBox(7), new Color(255,255,255));
setTransparentBorderColor(getAnnotationBox(7), false);
setRect(getAnnotation(7), new Rectangle (0000, -15000, 2700, 1500));
-*
-* Set the O1 axis labels
setGroupLabelArray("&L1.EVAL",
"&L2.EVAL",
"&L3.EVAL",
"&L4.EVAL",
"&L5.EVAL");
setDataTextDisplay(true);
setDataTextPosition(4);
setFillColor(getSeries(1),new Color(169,171,195));
setFillColor(getSeries(0),new Color(222,224,226));
setMarkerDisplay(true);
setConnectLineMarkers(false);
setConnectScatterMarkers(false);
setO1LabelDisplay(true);
setO1MajorGridDisplay(false);
setO1MinorGridDisplay(false);
setAxisAssignment(0,0);
setAxisAssignment(1,0);
setAxisAssignment(2,0);
setAxisAssignment(3,0);

setY1LabelDisplay(true);

setY1AxisSide(0);
setO1AxisLineDisplay(false);

setY1MajorGridDisplay(false);
setY1MinorGridDisplay(false);

setTextFormatPreset(getY1Label(),-1);
setTextFormatPattern(getY1Label(),"#.##");

setSeriesDefaultTransparentBorderColor(false);
setUseSeriesBorderDefaults(false);
setLegendDisplay(false);

setMarkerSizeDefault(60);
setY1LabelAutofit(false);

setFontSizeAbsolute(true)
setFontSize(getY1Label(),7);
setX1LabelAutofit(false);
setO1LabelWrap(true);
setFontSize(getX1Label(),7);
setO1LabelAutofit(false);
setFontSize(getO1Label(),7);

setDepthRadius(0);
setFrameDisplay(false);
setFillColor(getChartBackground(), new Color(181,183,189));
setBorderColor(getChartBackground(), new Color(181,183,189));
setFillColor(getFrame(), new Color(181,183,189));
setFillColor(getLegendArea(),new Color(181,183,189));
ENDSTYLE
ON GRAPH PCHOLD FORMAT PNG
END
-RUN



JG

This message has been edited. Last edited by: <Mabel>,
 
Report This Post
Expert
posted Hide Post
thats so nice of you. thanks jg
say, how about an article for the developers' corner thing...you can include the screen shot of your image...

This message has been edited. Last edited by: susannah,




In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
 
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003Report This Post
<Maryellen>
posted
Good suggestion, Susannah!

JG we'll be contacting you shortly about turning this topic into an article for Focus on Developers.

I would also like to take this opportunity to invite all our Focal Point developers to consider writing an article for FOD. Or if you have some suggestions for topics of interest, please send those along too. Currently, we're trying to recruit writers for PDF related issues. You can reply to this thread, or private message me at your convenience.

Thanks all!

Maryellen
 
Report This Post
Virtuoso
posted Hide Post
Maryellen,

What kind of PDF related issues are you refering to when you say you would like articles for the FOD sections of Focal Point?

I have recently used the DEFINE FUNCTION features of the FOCUS language and would be willing to write up something about this for FOD.


Thanks!

Mickey

FOCUS/WebFOCUS 1990 - 2011
 
Posts: 995 | Location: Gaithersburg, MD, USA | Registered: May 07, 2003Report This Post
Guru
posted Hide Post
quote:
PDF related issues

Yes what type of PDF content are you looking for?
 
Posts: 406 | Location: Canada | Registered: May 31, 2004Report This Post
<Maryellen>
posted
Hi -- Let me throw this back to the community. What types of PDF-related articles/solutions are you interested in reading about?

A little while ago, one of the members asked why there were no PDF-related articles on Focus on Developers' Website.

Here's a new post regarding PDF's, ACROSS column wrapping in PDF.

Let me know what you think.

Thanks!

Maryellen
 
Report This Post
Guru
posted Hide Post
Here is the post you are talking about:
Why no PDF topics on Focal Point

Maybe this topic should be move there.

Here are some ideas I have:
1) Formating differences between HTML, EXL2K and PDF.
2) How to format headings, subheadings, footings and subfootings in PDF.
3) Using spot markers in PDF.
 
Posts: 406 | Location: Canada | Registered: May 31, 2004Report This Post
Expert
posted Hide Post
I agree with reFocusing.
all about the differences;
if there are any special features that pdf has that other format lack,
A comprehensive compendium, a tutorial.




In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
 
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003Report This Post
Guru
posted Hide Post
Sorry Susannah and Maryellen, I have not had time to put anything together on PDF. Perhaps someone else will volunteer!



WebFOCUS 7.6.6/TomCat/Win2k3
 
Posts: 428 | Location: Springfield, MA | Registered: May 07, 2003Report This Post
<Maryellen>
posted
Not a problem, Carol. Completely understand -- I believe everybody is swamped this time of year.

Thanks and let me know if I can help with anything.

Maryellen

Wink
 
Report This Post
  Powered by Social Strata  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     53 Graph Engine - here's a nice example

Copyright © 1996-2020 Information Builders