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 have a report is in HTML format using multiple drilldowns. It runs inside a frame on an HTML page, and it works fine. Now I want to style that report using JQuery Themes. In order to be able to put in the SCRIPT tags that JQuery needs, I took my report and added ON TABLE HOLD AS filename FORMAT HTMTABLE, and at the end of the code I used HTMLFORM BEGIN followed by !IBI.FIL.filename followed by HTMLFORM END. The report displays as expected, but the drilldowns no longer work, and I think it's because the IBI-generated javascript is not there any more. Has anyone downe anything like this?This message has been edited. Last edited by: Mike in DeLand,
First off, you don't have to hold as format HTMLTABLE, you can just hold as format HTML.
Secondly, what kind of drill downs are you using? If you are using javascript drilldowns, you will need to reference parent and have the javascript code within the html file. Drilldowns still work, but you may need to adjust them to work in the context of the frame. Example:
TYPE=DATA,
COLUMN=N2,
JAVASCRIPT=parent.add( \
ID \
),
$
ENDSTYLE
END
-HTMLFORM BEGIN
<html>
<body>
!IBI.FIL.RESULT_X;
</body>
</html>
-HTMLFORM END
WebFOCUS 7.7.03/8.0.08 Dev Studio 7.7.03/8.0.08 App Studio 8.0.08 Windows 7 ALL Outputs
Posts: 402 | Location: Upland, IN | Registered: June 08, 2012
Then, after I do the HOLD file, I have some HTML stuff that I was trying to put together. By using the browser debugger, I was able to see which IBI javascript files were necessary, so I added those in one at a time, but it's still not working. I'm convinced that I must be making this harder than it should be. Thanks again.
-HTMLFORM BEGIN
<HTML>
<HEAD>
<!-- these are the scripts needed by jquery for theme application -->
<LINK rel=stylesheet href="https://code.jquery.com/ui/1.10.4/themes/pepper-grinder/jquery-ui.css" UserSuppliedFullPath="1">
<SCRIPT id=ITEM1 src="https://code.jquery.com/jquery-1.11.0.js" UserSuppliedFullPath="1"></SCRIPT>
<SCRIPT id=ITEM2 src="https://code.jquery.com/ui/1.10.4/jquery-ui.js" UserSuppliedFullPath="1"></SCRIPT>
<!-- these are the IBI scripts that I thought I had to add in manually -->
<script id="IBI_ibigbl" src="/ibi_html/javaassist/ibi/html/js/ibigbl.js"></script>
<script id="IBI_ibirls3" src="/ibi_html/javaassist/ibi/html/js/ibirls3.js"></script>
<script id="IBI_ibidropmenu" src="/ibi_html/javaassist/ibi/html/js/ibidropmenu.js"></script>
<script id="IBI_ibimultidrill" src="/ibi_html/javaassist/ibi/html/js/ibimultidrill.js"></script>
</HEAD>
<BODY class=ui-widget>
<SCRIPT>
$(function() {
$( "span" ).css( "z-index", "50");
$( ".x3" ).css( "border", "0" );
$( ".x4" ).css( "border", "0" );
$( ".x6" ).css( "border", "0" );
$( "TABLE" ).css( "border", "0" );
$( "TR" ).css( "border", "0" );
$( "TD" ).css( "border", "0" );
$( "table" ).css( "border", "0" );
$( "tr" ).css( "border", "0" );
$( "td" ).css( "border", "0" );
$( "table" ).addClass( "ui-widget-content" );
$( ".x1" ).css( "border", "0" );
});
</SCRIPT>
<div class=ui-widget-content style="width:90%; border:0";>
!IBI.FIL.P3;
</div>
</BODY>
</HTML>
-HTMLFORM END
J Looks like it's working! I changed it from HTMTABLE to format HTML, and that worked. Then I commented out my manually-added javascript lines, and it still worked! Thanks!
With HOLD format HTMTABLE you do not get the JavaScript that is used for the multi-drilldown. You need to run the fex once with no HOLD statement, capture the generated HTML, then add the HOLD statement. This would result in the code below. In your example, you did not have the MDitems code, which is generated for each of the drill-down items.
-SET &ECHO=ALL;
TABLE FILE CAR
PRINT SALES
BY COUNTRY
BY MODEL
ON TABLE HOLD AS HOLD1 FORMAT HTMTABLE
ON TABLE SET PAGE NOLEAD
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, FONT='VERDANA', SIZE=8, $
TYPE=TITLE, STYLE=BOLD, $
TYPE=DATA, COLUMN=COUNTRY,
DRILLMENUITEM='Drilldown 1',
JAVASCRIPT=RunReportDD('MULTIDRILL3DD1' 'R1' COUNTRY),
DRILLMENUITEM='Drilldown 2',
JAVASCRIPT=RunReportDD('MULTIDRILL3DD2' 'R2' COUNTRY),
$
ENDSTYLE
END
-RUN
-HTMLFORM BEGIN
<html>
<head>
<meta name="HandheldFriendly" content="True">
<meta name="PalmComputingPlatform" content="True">
<title>WebFOCUS Report</title>
<base href="http://localhost:8080/approot/App/">
<script language='javascript'>
var ibiOptions = new Array("multidrill");
var focexurl = "/ibi_apps/WFServlet?IBIF_webapp=/ibi_apps&IBIC_server=EDASERVE&IBIWF_msgviewer=OFF&IBIAPP_app=App%20Name&";
var fochtmlurl = "/ibi_html";
var serverLanguage='en';
</script>
<script language='javascript' src='/ibi_html/javaassist/nls.js'></script>
<script language='javascript' src='/ibi_html/javaassist/ibi/html/js/ibigbl.js'></script>
<script language='javascript'>
ibigblloadCss(null);
</script>
<SCRIPT LANGUAGE=JAVASCRIPT>var MDitems=new Array();var MDSingleEncode = true;MDitems[0]=new Object();MDitems[0].text="Drilldown 1";MDitems[0].url="javascript:RunReportDD";MDitems[0].target="";MDitems[1]=new Object();MDitems[1].text="Drilldown 2";MDitems[1].url="javascript:RunReportDD";MDitems[1].target="";</script></head>
<!-- My Javascript here -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.js"></script>
<body ONLOAD='ibigblOnLoad();'>
!IBI.FIL.HOLD1;
</body>
</html>
-HTMLFORM END
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
Hi Francis, That's exactly what I was doing - capturing the html and then stuffing it back in. That's when I realized that there must be a better way. I tried J's suggestion of using just HTML instead, and that did the trick.
The interesting thing about J's method, which I also use all over is that the html page has non standards-compliant HTML - it will have two tags... Luckily the browsers are forgiving.
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