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.
Hi, i am trying to create a report in which i need to add an information image to each row of the first column and when the user points the mouse on that image it should pop up the related information of that row.please suggest me how this can be done .i have around 20 rows so doo i need to crreate a diff image for each row or i can use the same image but can pop up different data depending upon the row. ThanksThis message has been edited. Last edited by: Kerry,
I'm not sure with what code you're adding the image to each column, but this should get you started, it's an example that uses the "title" tag for HTML elements to display a pop-up:
-*-- Hover / Mouseover example using html title --------------------------------
-SET &TITLE_MSG =
- '<span style="cursor: default;" ' | 'title="View details">Country</span>';
DEFINE FILE CAR
CONTINENT/A10 =
IF COUNTRY IN ('FRANCE', 'W GERMANY', 'ITALY', 'ENGLAND') THEN 'Europe' ELSE
IF COUNTRY IN ('JAPAN') THEN 'Asia' ELSE '???';
MOUSEOVER/A255 =
'<span style="cursor: default;" title="The continent is ' |
CONTINENT | '">' | COUNTRY | '</span>';
END
TABLE FILE CAR
PRINT
MOUSEOVER AS '&TITLE_MSG'
MODEL AS 'Model'
BY COUNTRY NOPRINT
ON TABLE PCHOLD FORMAT HTML
END
This message has been edited. Last edited by: Francis Mariani,
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
chelsea, are you coming to Summit? part of my presentation tuesday at 4 will cover exactly how to do this, with javascript; Francis' method is quite crisp, and will very nicely show you row-specific information in situ; what i'll show at summit is a way to show a bit more, but still in situ, using more js.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, 2003
Francis i tried your code and its working fine but i couldnt figure out how i can insert an image and how i can mke the pop-up work on that image near each title heading. Hi Susannah, sorry i am not comming to the summit because of my project deadlines.can you please suggest me how this can be accomplished using js .it would be very greatful and if posssible after the summit can you please post your presentation so that people like can be benifited . Thanks thanks
-*-- Hover / Mouseover example using html title --------------------------------
-SET &TITLE_MSG = '<span style="cursor: default;" ' | 'title=''View details''>Image</span>';
DEFINE FILE CAR
CONTINENT/A10 =
IF COUNTRY IN ('FRANCE', 'W GERMANY', 'ITALY', 'ENGLAND') THEN 'Europe' ELSE
IF COUNTRY IN ('JAPAN') THEN 'Asia' ELSE '???';
MOUSEOVER/A255 =
'<span style="cursor: default;" title=''The continent is ' |
CONTINENT | '''><img src=/ibi_html/web.gif border=0></span>';
END
TABLE FILE CAR
PRINT
MOUSEOVER AS '&TITLE_MSG'
CONTINENT
MODEL AS 'Model'
BY COUNTRY NOPRINT
ON TABLE PCHOLD FORMAT HTML
END
Karanth,
It depends on how you are creating your graph. If you save it as an image (gif) file then you will only be able to apply the mouseover event to the image. If you are using the API then refer to the API programmers manual for using tooltips - or search this forum for previously posted examples.
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
Tony, I had posted this question earlier regarding tooltip on Graphs but it really did not work. The label and the tool tip would always be the same. Anything can be dne on this?
-* File emplgraph.fex -SET &ECHO = ALL; SET HOLDLIST = PRINTONLY SET ASNAMES = ON
DEFINE FILE ABC RATING/A30= IF LAST_REVIEW_RATING EQ 'E' THEN 'Exceeds Expectations' ELSE IF LAST_REVIEW_RATING EQ 'O' THEN 'Oustanding' ELSE IF LAST_REVIEW_RATING EQ 'P' THEN 'Proficient' ELSE IF LAST_REVIEW_RATING EQ 'N' THEN 'Needs Improvement' ELSE IF LAST_REVIEW_RATING EQ 'NR' THEN 'Not Rated' ELSE 'Not Rated';
ORDEROFVALS/D10= IF LAST_REVIEW_RATING EQ 'E' THEN 2 ELSE IF LAST_REVIEW_RATING EQ 'O' THEN 1 ELSE IF LAST_REVIEW_RATING EQ 'P' THEN 3 ELSE IF LAST_REVIEW_RATING EQ 'N' THEN 4 ELSE IF LAST_REVIEW_RATING EQ 'NR' THEN 5 ELSE 5; END
TABLE FILE ABC SUM PCT.CNT.CORP_ID AS PERCENTRANK CNT.CORP_ID AS RANKCOUNT BY LOWEST ORDEROFVALS BY RATING AS 'Rating' WHERE BON_ELIG_FLAG EQ 'Y'; ON TABLE HOLD AS HOLD1 END
TABLE FILE HOLD1 SUM
-*COMPUTE GVALUES/A100='"' || FTOA(RANKCOUNT, '(D10)', 'A14') -* || ' Employees with'| RATING | 'Ranking(' || FTOA(PERCENTRANK, '(D5.2)', 'A8') || '%)",'; AS NOPRINT COMPUTE GVALUES/A100='"' || FTOA(PERCENTRANK, '(D5.2)', 'A8') || '%' | '\n'| RATING; BY RATING NOPRINT ON TABLE SAVE END -RUN
GRAPH FILE HOLD1 HEADING "Bonus Rating" PRINT RANKCOUNT AS '' ACROSS RATING FOOTING " n = ON GRAPH SET LOOKGRAPH PIEMULTI ON GRAPH SET GRAPHEDIT ON ON GRAPH SET BARNUMB ON ON GRAPH SET 3D ON ON GRAPH SET VZERO ON ON GRAPH SET GRID OFF ON GRAPH PCHOLD FORMAT PNG ON GRAPH SET GRAPHSTYLE * setSeriesLabelArray( -INCLUDE SAVE ); setLegendPosition (2); setSize(400,200); setLegendAutomatic(true); setFillColor(getSeries(0), new Color(141,9,0)); setFillColor(getSeries(1), new Color(249,133,0)); setFillColor(getSeries(2), new Color(231,231,34)); setFillColor(getSeries(3), new Color(4,159,33)); setFillColor(getSeries(4), new Color(40,40,142)); setPieDepth(45); setLegendAutomatic(true); setY1AxisSide(0); setTextWrap(getLegendText(),true); 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(0); setTextFormatPreset(getPieSliceLabel(),1); setRiserBorderMode(1); setSeriesDefaultTransparentBorderColor(true); setUseSeriesBorderDefaults(true); setLegendDisplay(true); setTitleString("Bonus rating\n \n"); setFontName(getTitle(),"VERDANA"); setFontSizeAbsolute(getTitle(),true); setFontSize(getTitle(),10); setSubtitleString("\n\n\nJohn Smith1535's Hierarchy\nJob Type : All"); setFontName(getSubtitle(),"VERDANA"); setFontSizeAbsolute(getSubtitle(),true); setFontSizeAbsolute(getLegendText(),true); setFontSize(getLegendText(),8); setTextWrap(getLegendText(),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, $ TYPE=REPORT, GRAPHCOLOR='WHITE', $ TYPE=REPORT, GRID=ON, FONT='VERDANA', SIZE=6, BACKCOLOR=RGB(250 250 250), STYLE=NORMAL, RIGHTGAP=0.125000, TOPGAP=0.013889, BOTTOMGAP=0.027778, $ TYPE=DATA, ACROSSCOLUMN=N1, FOCEXEC=ACCORD, ALT='hello', $ TYPE=HEADING, LINE=1, OBJECT=TEXT, ITEM=1, SIZE=9, COLOR='WHITE', STYLE=BOLD, TOPGAP=0.013889, BOTTOMGAP=0.027778, $ TYPE=FOOTING, LINE=1, OBJECT=TEXT, ITEM=1, COLOR='BLACK', STYLE=BOLD, TOPGAP=0.013889, BOTTOMGAP=0.027778, $ TYPE=FOOTING, LINE=1, OBJECT=FIELD, ITEM=1, COLOR='BLACK', STYLE=BOLD, TOPGAP=0.013889, BOTTOMGAP=0.027778, $ ENDSTYLE END
I HAVE DONE A SETSERIESLABEL BUT IT DOESN'T HELP AS BOTH THE TOOLTIP AND THE LABEL WILL BE THE SAME. I NEED SOMETHING DIFFERENT ON BOTH. ANY WAY OUT>
Hi Francis/Tony, Thanks for your info its working with the images also.the only thing i wanted to ask is can we define the size of the pop up window and also can we do styling on the data that is displayed and also i tried displaying in multiple lines but couldn't do it.if the data is large then its displaying in different lines but can i control the data that is displayed in different lines. Thanks
You can control the size etc. of the pop-up by using CSS within the SPAN tag. Just extend the contents of style="cursor: default;". The settings you will need are top, left, width, height. To force these to use absolute positioning on the report you would use position with a value of absolute. Be careful if your report is larger than the screen area when using absolute positioning. Remember to seperate the style attribute from the value with a full colon and terminate the pairing with a semi colon -
Thanks Tony, i tried ur sample code but it is not increasing the pop window size instead its changing the position of my image.i need to increrase the size of the window that appears when i bring the mouse on to my image. thanks
I had to make a few adjustments to give a generalised function, but cut and paste this into a file called dynmsg.js in your baseapp folder on the webserver (not the reporting server).
This javascript requires three parameters - the text for display, the width and the height of the required pop-up. The method is dynamic HTML and the div (id=MsgDiv) is destroyed (if exists) and created on the fly at the browser e.g. Viewing the source will not show the div. The advantage is that you don't have to remember to create the div in your DEFINEs and there is no messy setting of the "visibilty" attribute within the div styling. The positioning of the pop-up is controlled by the current mouse placement + 10px (both x and y coords) and can be changed as you require.
The text is enclosed within a TABLE tag and the table is styled within the javascript. You could remove this and pass all the HTML code to be displayed making it truly flexible.
Now use the basics of Francis' sample to include the call to the javascript in a mouseover event -
-*-- Hover / Mouseover example using html title --------------------------------
SET JSURL = '/approot/baseapp/dynmsg.js'
-SET &TITLE_MSG = '<span style="cursor: default;" ' | 'title=''View details''>Image</span>';
DEFINE FILE CAR
CONTINENT/A10 =
IF COUNTRY IN ('FRANCE', 'W GERMANY', 'ITALY', 'ENGLAND') THEN 'Europe' ELSE
IF COUNTRY IN ('JAPAN') THEN 'Asia' ELSE '???';
MOUSEOVER/A255 =
'<span style="cursor: default;" onMouseover="CrMsgDiv(''' ||
CONTINENT || ''',250,100);" onMouseout="document.body.removeChild(MsgDiv);">' ||
'<img src=/ibi_html/web.gif border=0></span>';
END
TABLE FILE CAR
PRINT
MOUSEOVER AS '&TITLE_MSG'
CONTINENT
MODEL AS 'Model'
BY COUNTRY NOPRINT
ON TABLE PCHOLD FORMAT HTML
END
The javascript module is pulled in using the JSURL setting which is why the JS file is required to be on the webserver and therefore available via a URL.
Note that I have added a mouseout event to remove the dynamic div.
T
Edited to amend the JS pop-up positioning to allow for scrolled windows. Note only tested in I.E.This message has been edited. Last edited by: Tony A,
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
How about sharing the code? "returns zero rows" without an error - is this caused by your mouseover code? The FML FOR column data content is what makes up the report rows, which means the data can't be manipulated.
I'll try to knock together something using the CAR file.
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
Here is an example using the CAR file code example you provided originally.
DEFINE FILE CAR
CONTINENT/A10 =
IF COUNTRY IN ('FRANCE', 'W GERMANY', 'ITALY', 'ENGLAND') THEN 'Europe' ELSE
IF COUNTRY IN ('JAPAN') THEN 'Asia' ELSE '???';
MOUSEOVER/A255 = '<span style="cursor: default;"' | 'title="The continent is ' | CONTINENT | '">' | COUNTRY | '</span>';
END
TABLE FILE CAR
SUM SALES
-*FOR COUNTRY AS 'Country'
FOR MOUSEOVER AS 'Country'
'ENGLAND' AS 'England' OVER
'FRANCE' AS 'France' OVER
'W GERMANY' AS 'West Germany' OVER
'ITALY' AS 'Italy' OVER
'JAPAN' AS 'Japan'
-*MOUSEOVER AS 'Country'
-*MODEL AS 'Model'
-*BY COUNTRY NOPRINT
ON TABLE PCHOLD FORMAT HTML
END
I get zero results with this because the column MOUSEOVER will never have a value of 'ENGLAND' or 'FRANCE', etc - the value will be '<span style="cursor: default;" title="The continent is ENGLAND">EUROPE</span>'.This message has been edited. Last edited by: Francis Mariani,
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
OK - that makes sense. So, it doesn't appear this solution is really feasible for the FOR column on FML reports.
What I have gotten to work, at least partially, is to use the ALT element in the stylesheet. Most of the FOR columns already have drillable links, and simply adding the ALT element is working as requested by my client.