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.
We have a fairly wide and long report and being that most of our users are used to "Excel" type functionality, we need the ability to freeze the column headings as the user scrolls through several screens of rows. The other need is the ability to freeze the row title -- for example our leftmost column would be customer and then there are 20 columns of data associated with that customer and as the user scrolls left to right, the customer will disappear. Obviously the point of all this is the fact that the user cannot tell what column or row they are looking at unless they are constantly highlighting and scrolling back and forth/up and down.
A couple of considerations -- I know I can create a pagebreak to be more frequent so it simply repeats the column headings -- but honestly I think that looks pretty bad and simply blows the report out to be even longer than it is now. I've considered putting the customer as the right-most column ALSO, and although that might take care of the problem on reports 1 & 2, it may not work for reports 3 & 4 that are even wider. The last consideration is to put the report into an Excel template that has the "freeze panes" property already set. Haven't tried this yet, so don't know if it will work for certain, but I'm not a big fan of this. Not going to go into a lot explanation, but just would prefer the HTML format for now.
Any thoughts?This message has been edited. Last edited by: Kerry,
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
Okay, now this is a completely dumb response. Can't the user of the spreadsheet use the freeze functionality of Excel themselves or do the recipients lack that knowledge. The freeze panes is under the Excel Window option. Position cursor at point wanted and 'freeze'. Sorry I used to teach an Excel class
Leah
Posts: 1317 | Location: Council Bluffs, IA | Registered: May 24, 2004
Leah, sorry, but I think you might have skipped over some of my post. We prefer HTML output in this particular report -- I don't want to have to send it to an Excel output.
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
The JS sync() function within this FEX example will at least freeze your column headings, as well as allow you to scroll left and right. The trick is to create a TITLE file and a DATA file with exactly the same widths, so when you do scroll, they stay in sync, hence the 'width' setting in the SPAN commands. And because you're declaring the DEFINEd fields with the SPAN command in it as an Alpha, you have to convert all numbers to Alpha (FTOA).
You also have to 'play' with the !IBI.FIL Heights, as they can vary.
Good Luck!
Craig Kozlow
-*
-*-------------------------- T I T L E C R E A T I O N ----------------------------------------
-*
-SET &TITLE1 = '<SPAN STYLE="cursor:hand" STYLE="width:180px" STYLE="text-align:center"> Country';
-SET &TITLE2 = '<SPAN STYLE="cursor:hand" STYLE="width:180px" STYLE="text-align:center"> Car';
-SET &TITLE3 = '<SPAN STYLE="cursor:hand" STYLE="width:220px" STYLE="text-align:center"> Model';
-SET &TITLE4 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Body Type';
-SET &TITLE5 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Seats';
-SET &TITLE6 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Dealer Cost';
-SET &TITLE7 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Retail Cost';
-SET &TITLE8 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Length';
-SET &TITLE9 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Width';
-SET &TITLE10 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Height';
-SET &TITLE11 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Weight';
-SET &TITLE12 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Wheelbase';
-SET &TITLE13 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Fuel Cap';
-SET &TITLE14 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> BHP';
-SET &TITLE15 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> RPM';
-SET &TITLE16 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> MPG';
-SET &TITLE17 = '<SPAN STYLE="cursor:hand" STYLE="width:80px" STYLE="text-align:center"> Accel';
-*
SET PAGE = NOLEAD
SET LINES = 995
-RUN
TABLE FILE CAR
BY COUNTRY AS '&TITLE1'
BY CAR AS '&TITLE2'
PRINT MODEL AS '&TITLE3'
BODYTYPE AS '&TITLE4'
SEATS AS '&TITLE5'
DEALER_COST AS '&TITLE6'
RETAIL_COST AS '&TITLE7'
LENGTH AS '&TITLE8'
WIDTH AS '&TITLE9'
HEIGHT AS '&TITLE10'
WEIGHT AS '&TITLE11'
WHEELBASE AS '&TITLE12'
FUEL_CAP AS '&TITLE13'
BHP AS '&TITLE14'
RPM AS '&TITLE15'
MPG AS '&TITLE16'
ACCEL AS '&TITLE17'
-*
IF RECORDLIMIT IS 1
-*
ON TABLE NOTOTAL
ON TABLE SET STYLE *
PAGESIZE = 'SCREEN',
LEFTMARGIN = 0.000000,
RIGHTMARGIN = 0.000000,
TOPMARGIN = 0.000000,
BOTTOMMARGIN= 0.000000,
SQUEEZE = ON,
ORIENTATION = 'LANDSCAPE',
$
TYPE=REPORT,GRID = OFF,FONT = ARIAL,SIZE = 9,$
TYPE=TITLE,HGRID=ON,STYLE=BOLD,JUSTIFY=CENTER, BACKCOLOR=BLUE, COLOR=WHITE,$
ENDSTYLE
ON TABLE HOLD AS TFILE FORMAT HTML
END
-RUN
-*
-*-------------------------- D A T A C R E A T I O N ------------------------------------
-*
DEFINE FILE CAR
A_SEATS/A10 = FTOA(SEATS,'(D7B)',A_SEATS);
A_DEALER_COST/A10 = FTOA(DEALER_COST,'(D7B)',A_DEALER_COST);
A_RETAIL_COST/A10 = FTOA(RETAIL_COST,'(D7B)',A_RETAIL_COST);
A_SALES/A10 = FTOA(SALES,'(D7B)',A_SALES);
A_LENGTH/A10 = FTOA(LENGTH,'(D7B)',A_LENGTH);
A_WIDTH/A10 = FTOA(WIDTH,'(D7B)',A_WIDTH);
A_HEIGHT/A10 = FTOA(HEIGHT,'(D7B)',A_HEIGHT);
A_WEIGHT/A10 = FTOA(WEIGHT,'(D7B)',A_WEIGHT);
A_WHEELBASE/A10 = FTOA(WHEELBASE,'(D6.1B)',A_WHEELBASE);
A_FUEL_CAP/A10 = FTOA(FUEL_CAP,'(D6.1B)',A_FUEL_CAP);
A_BHP/A10 = FTOA(BHP,'(D7B)',A_BHP);
A_RPM/A10 = FTOA(RPM,'(D7B)',A_RPM);
A_MPG/A10 = FTOA(MPG,'(D7B)',A_MPG);
A_ACCEL/A10 = FTOA(ACCEL,'(D7B)',A_ACCEL);
-*
D_COUNTRY/A100 = '<SPAN STYLE="text-ALIGN:LEFT" STYLE="WIDTH:180px">'|COUNTRY||'</SPAN>';
D_CAR/A100 = '<SPAN STYLE="text-ALIGN:LEFT" STYLE="WIDTH:180px">'|CAR||'</SPAN>';
D_MODEL/A100 = '<SPAN STYLE="text-ALIGN:LEFT" STYLE="WIDTH:220px">'|MODEL||'</SPAN>';
D_BODYTYPE/A100 = '<SPAN STYLE="text-ALIGN:LEFT" STYLE="WIDTH:80px">'|BODYTYPE||'</SPAN>';
D_SEATS/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_SEATS||'</SPAN>';
D_DEALER_COST/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_DEALER_COST||'</SPAN>';
D_RETAIL_COST/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_RETAIL_COST||'</SPAN>';
D_LENGTH/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_LENGTH||'</SPAN>';
D_WIDTH/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_WIDTH||'</SPAN>';
D_HEIGHT/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_HEIGHT||'</SPAN>';
D_WEIGHT/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_WEIGHT||'</SPAN>';
D_WHEELBASE/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_WHEELBASE||'</SPAN>';
D_FUEL_CAP/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_FUEL_CAP||'</SPAN>';
D_BHP/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_BHP||'</SPAN>';
D_RPM/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_RPM||'</SPAN>';
D_MPG/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_MPG||'</SPAN>';
D_ACCEL/A100 = '<SPAN STYLE="text-ALIGN:RIGHT" STYLE="WIDTH:80px">'|A_ACCEL||'</SPAN>';
-*
END
-RUN
-*
TABLE FILE CAR
PRINT
D_COUNTRY AS ''
D_CAR AS ''
D_MODEL AS ''
D_BODYTYPE AS ''
D_SEATS AS ''
D_DEALER_COST AS ''
D_RETAIL_COST AS ''
D_LENGTH AS ''
D_WIDTH AS ''
D_HEIGHT AS ''
D_WEIGHT AS ''
D_WHEELBASE AS ''
D_FUEL_CAP AS ''
D_BHP AS ''
D_RPM AS ''
D_MPG AS ''
D_ACCEL AS ''
-*
BY COUNTRY NOPRINT
BY CAR NOPRINT
ON TABLE SET STYLE *
UNITS=IN, PAGESIZE='Letter', LEFTMARGIN=0.250000, RIGHTMARGIN=0.250000,
TOPMARGIN=0.0000000, BOTTOMMARGIN=0.000000, SQUEEZE=ON,
ORIENTATION=PORTRAIT,GRID=OFF, $
TYPE=REPORT, GRID=OFF, STYLE=NORMAL, FONT=ARIAL, SIZE=9, BACKCOLOR=NONE,$
TYPE=DATA,BACKCOLOR=(RGB(255 255 255) RGB(232 232 238)),$
ENDSTYLE
ON TABLE HOLD AS DFILE FORMAT HTML
END
-RUN
-*
-SET &RPTDATE = EDIT(&MDYY,'99/99/9999');
-**************
-HTMLFORM BEGIN
-**************
-*
<html>
<head>
-*
-******************************************************************
-* Function to Keep the titles aligned with the data (onscroll=).
-******************************************************************
-*
<script>
function sync()
{
var left = document.all("data").scrollLeft;
document.all("title").scrollLeft = left;
}
</script>
-*
</head>
-*
<body BGCOLOR="#FFFFFF" TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0" TEXT="#000000">
-*
-*
-**********************************************
-* Displays HEADING
-**********************************************
-*
<table width="95%" border="0" cellspacing="1" cellpadding="1" align="center">
<tr><td align="center"><font face=helvetica color="red" size=4>[b]Scrolling Example[/b]</td></tr>
<tr><td align="center"><font face=helvetica color="blue" size=4>[b]Additional Headings Here[/b]</td></tr>
<tr><td > </td></tr>
</table>
-*
-**********************************************
-* Displays TITLES
-**********************************************
-*
<tbody>
<tr width="95%">
<td>
<div id=title style="OVERFLOW:hidden; HEIGHT:25px; WIDTH:95%" ; style="position:relative;left:1.5%"; ALIGN=CENTER>
<table border=0>
<tbody>
<tr>
<td>
!IBI.FIL.TFILE;
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
-*
-**********************************************
-* Displays REPORT
-**********************************************
-*
<tr>
<td>
<div onscroll=sync[) id=data style="OVERFLOW:auto; HEIGHT:300px; WIDTH:97%"; style="position:relative;left:1.5%"; ALIGN=CENTER>
<table border=0 >
<tbody>
<tr>
<td>
!IBI.FIL.DFILE;
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</table>
</TBODY>
</TABLE>
</body>
</html>
-*
-************
-HTMLFORM END
-************
-*
This message has been edited. Last edited by: Kerry,
PROD:WebFOCUS 7.6.11 on UNIX accessing FOCUS, Oracle, SQLServer TEST: WebFOCUS 7.7.1 on UNIX accessing FOCUS, Oracle, SQLServer
Posts: 28 | Location: USA | Registered: March 24, 2005
Your example works great and I think I understand where you're going with it. I'm going to try to create a report on our end that does the same.
Thanks for the help -- I'll keep you posted.
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
simpler: SET WEBVIEWER = ON before generating your html output. see if you like ; you might not, but then again, you might. At least it will buy you some time, while you work on the scripting method (which DOES work in email, by the way )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
Originally posted by susannah: simpler: SET WEBVIEWER = ON before generating your html output. see if you like ; you might not, but then again, you might. At least it will buy you some time, while you work on the scripting method (which DOES work in email, by the way )
Actually I didn't see much change in behavior by using this method. Obviously it pops up in the webfocus viewer, but the headings still scroll off the page the same as before. Should I have seen a different behavior?
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
Well, actually I am not using page breaks, so I think I know what you're getting at. If I hadn't set my lines property then I'd see them repeated. I'll consider that as an option...
Thanks!
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
Trav, page breaks aren't an issue at all. make sure you've got SET WEBVIEWER = ON and then write any fex bits that will give you a nice long list, nothing fancy. What you see as a a result is a whole new window thing, with arrows on the bottom, to page you thru, one page at a time, each page has the header repeated; quite nice. SET LINES = 60 or some low numberThis 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
I guess I didn't look close enough last time because it is doing what you indicated. Just a little strange because even with this on, the headings still scroll off the page. I think that I saw that last time and just thought it didn't work...
Seems okay, nothing too exciting though.
I'm still working on the method that Craig suggested though as I think even though the effort is going to be high for me, that it will be the most seamless to the user.
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
I thought I'd post an update because I continued to work on this and found another method using CSS. I really like this because it doesn't require coding 2 separate report layouts and the column width can still be dynamic. You can also completely control the look and feel since it's using CSS. This is a very simple example, but should give you the idea of how it can be implemented.
First file is the CSS -- mine is called travtest.css, but you can call it anything as long as you put the appropriate name and path in the FEX:
Next file is the FEX -- should pretty much run as-is, just check the path and name of the CSS referenced herein:
TABLE FILE CAR
PRINT
CAR
MODEL
BODYTYPE
SEATS
DEALER_COST
RETAIL_COST
SALES
LENGTH
WIDTH
HEIGHT
WEIGHT
WHEELBASE
FUEL_CAP
BHP
RPM
MPG
ACCEL
ON TABLE SUBHEAD
"reportheading"
HEADING
"pageheading"
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE HOLD AS REPORT FORMAT HTML
ON TABLE SET PAGE NOLEAD
ON TABLE SET HTMLCSS ON
ON TABLE SET CSSURL 'c:\travtest.css'
ON TABLE SET STYLE *
UNITS=IN,
PAGESIZE='SCREEN',
LEFTMARGIN=0.000000,
RIGHTMARGIN=0.000000,
TOPMARGIN=0.000000,
BOTTOMMARGIN=0.000000,
SQUEEZE=ON,
ORIENTATION=LANDSCAPE,
GRID=OFF,
$
TYPE=REPORT,
FONT='ARIAL',
SIZE=8,
COLOR='BLACK',
BACKCOLOR='WHITE',
STYLE=NORMAL,
RIGHTGAP=0.0,
TOPGAP=0.0,
BOTTOMGAP=0.0,
GRID=OFF,
$
TYPE=DATA,
CLASS=report_data,
$
TYPE=DATA,
COLUMN=N1,
CLASS=locked,
$
TYPE=TITLE,
CLASS=column_title,
$
TYPE=TITLE,
COLUMN=N1,
CLASS=column_title_1,
$
TYPE=TABHEADING,
SIZE=12,
STYLE=BOLD,
HEADALIGN=BODY,
COLSPAN=20,
CLASS=report_title,
$
TYPE=HEADING,
SIZE=10,
STYLE=BOLD,
HEADALIGN=BODY,
COLSPAN=20,
CLASS=report_title,
$
ENDSTYLE
END
-HTMLFORM BEGIN
<HTML>
<DIV id=tbl-container>
!IBI.FIL.REPORT;
</DIV>
</HTML>
-HTMLFORM END
And because I want to give credit where credit is due, my inspiration came from the following website -- just click on examples and check out his stuff...
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
Forgot to mention, when you run the above example, the table will fit to the size of your browser window. So for the full effect, you'll want to resize your browser window to be smaller than the actual report data -- that way you have both horizontal and vertical scroll bars. Once you do that, try scrolling both ways and see the results...
Enjoy!
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
Trav, your code is beyond wicked cool. I'm having trouble with 1 thing, if you would help. 1. It seems that SET LINES=nnn totally kills the SET PAGE=NOLEAD feature which of course means that the databody re-appears above the tabhead as you scroll. Making me crazy. Any idea how i can fix? UPDATE: SET LINES = 999 kills the NOLEAD BUT... SET LINES =998 or lower WORKS! I remember tripping over this 'feature' before..in some other incarnation.
2.any idea how i can get the underlines out of the column titles? i figured out this icky workaround
<style>
u { text-decoration:none}
</style>
but i'ld like to know the FOCUS way to get the U tags to stop surrounding them. UPDATE: francis reminds (below) that we did figure out a cooler, more direct, way PRINT SALES AS 'SALES,' ...that comma nicely nukes the underline
3. a single drilldown works, but a multidrill throws the whole shebang out of whack.
and it works in email as an attachment, does work in exporting to excel as a webquery, but doesn't print. so a 'printer friendly version' button might be a good option for users to add, figuring out how to change the target.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
Its a script file that when added to a page will freeze the titles.
create a script file iba_freeze.js with the code below, save it in an app directory
and follow the instructions in the file.
This is a work in progress, but the titles doo freeze, columns may not.
// Add SET JSURLS = '/url1 /url2 /urln' to the fex // // SET JSURLS = '/approot/ibutil/js/iba_freeze.js [_Freeze={amt}]' // SET LINES = 999999 // // E.G. // SET JSURLS = '/approot/ibutil/js/iba_freeze.js _Freeze=2,1' // // Where // _Freeze={amt}: Optional // amt: either 'def' or 'n1,n2' // n1: number of heading lines and title lines // n2: number of columns // // _Freeze=2,1 (2 heading lines and title lines and 1 column) // // also set LINES to 999999 to remove other header and titles from the report // function iba_freezeOnLoadFunc() { var _Freeze = 'def' ; var _Toc = false ;
_Body = document.body ;
for (_c1=0;_c1<ibiOptions.length;_c1++) { var _Frz1 = ibiOptions[_c1].split('=') ; switch (_Frz1[0]) { case '_Freeze': if (_Frz1.length==1) { _Freeze = 'def' ; } else { _Freeze = _Frz1[1] ; } break ; case 'toc': _Toc = true ; break ; } } if (_Toc) { window.status = 'Freeze disabled for TOC' ; return ; } var _FRow = 1 ; var _FCol = 0 ; if (_Freeze!='def') { _FBits = _Freeze.split(',') ; _FRow = parseInt(_FBits[0]) ; if (_FBits.length<2) { _FCol = 0; } else { _FCol = parseInt(_FBits[1]) ; } }
var _Kids = _Body.children ; for (var _c1=0;_c1<_Kids.length;_c1++) { if (_Kids[_c1].tagName!='TABLE') continue ; funPrepRpt(_Kids[_c1],_FRow,_FCol) ; _c1+=2; } } function funPrepRpt(_Obj,_FRow,_FCol) { var _tble = _Obj.cloneNode(false) ; var _html = _tble.outerHTML ; _html = _html.substr(0,_html.length-8) ;
var _Rows = _Obj.rows ; var _xCols=0 ; var _xColn=0 ;
1. As far as the SET LINES=nnn problem, I don't know yet. I see the behavior you're talking about, but I have to set nnn pretty low.
We are actually using SET LINES=998 with success, but mostly because I wanted to set it so large that no titles repeated. I saw some wierd behavior with this and ultimately couldn't set it as high as I really wanted to. If I remember correctly, it seemed to just stop doing anything once I got into larger numbers. 998 is what I ended up using and am in production with.
3. Haven't tried multi-drill downs yet, but I'll play with it.
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
TABLE FILE CAR
SUM
SALES
BY COUNTRY
HEADING
"WEBFOCUS REPORT"
ON TABLE SET PAGE NOLEAD
ON TABLE SET STYLESHEET *
GRID=OFF,
FONT='ARIAL', SIZE=8, $
TYPE=TITLE, STYLE=-UNDERLINE, $
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
Originally posted by Francis Mariani: doesn't work in WF 5.3:
Dang, I think that's twice in the last 2 weeks I've suggested something that doesn't work in 5.3 but does in 7.1.x
I guess you all just need to upgrade so my suggestions work.
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
The other thing to remember is that the "CLASS=classname" in the WebFOCUS stylesheet is a reference to an external cascading style sheet (CSS) and therefore is not a true WebFOCUS solution (i.e. it uses a CSS file).
I think that this is the piece that is actually doing the work in your example as well Trav as Francis' sample fex above doesn't get rid of the underline in 7.1.3 either
Mind you, if you add the line "ON TABLE SET HTMLCSS ON" to the sample, then the underline is gone and does provide the pure WebFOCUS solution?
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
For across reports, I simply applied the "column_title" class to the ACROSSVALUE and ACROSSTITLE.
Here's an example -- no changes to the CSS:
TABLE FILE CAR
PRINT
CAR
MODEL
ACROSS BODYTYPE
ON TABLE SUBHEAD
"reportheading"
HEADING
"pageheading"
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE HOLD AS REPORT FORMAT HTML
ON TABLE SET PAGE NOLEAD
ON TABLE SET HTMLCSS ON
ON TABLE SET CSSURL 'c:\column_freeze.css'
ON TABLE SET STYLE *
UNITS=IN,
PAGESIZE='SCREEN',
LEFTMARGIN=0.000000,
RIGHTMARGIN=0.000000,
TOPMARGIN=0.000000,
BOTTOMMARGIN=0.000000,
SQUEEZE=ON,
ORIENTATION=LANDSCAPE,
GRID=OFF,
$
TYPE=REPORT,
FONT='ARIAL',
SIZE=8,
COLOR='BLACK',
BACKCOLOR='WHITE',
STYLE=NORMAL,
RIGHTGAP=0.0,
TOPGAP=0.0,
BOTTOMGAP=0.0,
GRID=OFF,
$
TYPE=DATA,
CLASS=report_data,
$
TYPE=TITLE,
CLASS=column_title,
$
TYPE=ACROSSVALUE,
CLASS=column_title,
$
TYPE=ACROSSTITLE,
CLASS=column_title,
$
TYPE=TABHEADING,
SIZE=12,
STYLE=BOLD,
HEADALIGN=BODY,
COLSPAN=20,
CLASS=report_title,
$
TYPE=HEADING,
SIZE=10,
STYLE=BOLD,
HEADALIGN=BODY,
COLSPAN=20,
CLASS=report_title,
$
ENDSTYLE
END
-HTMLFORM BEGIN
<HTML>
<DIV id=tbl-container>
!IBI.FIL.REPORT;
</DIV>
</HTML>
-HTMLFORM END
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF
I only had to make some DOM-modifications to my ready-made reports, but as soon my report fit the example, it worked fine.
But, the larger the reports get, the bigger is the amount of memory allocated, mostly due to the clonenode() methods involved (cpu as well). Not all my clients have >= 1GB RAM, so this gets quite slow - we switch to the Webviewer for Reports above a certain size.
i agree with werner about the memory issue , espec with both headers and columns frozen, its cool, but can be a memory hog, so we offer a switch to either a 'printer friendly' version or to the webviewer version;
In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003
It makes me feel rather old when people indicate that not all machines have > 1Gb ram.
Just think that about 15 years ago most PCs (386 cpus - I will not admit to owning a 286 machine ) you were lucky if you had a PC with a 40 Mb (yes megabyte not gigabyte) hard drive and 8 Mb of ram! When FOCUS first emerged on the MVS and VM mainframes all the programming was performed on 3179(?) dumb terminals (what was a PC anyway?) and Bill Gate$ was going to the bank to borrow $100,000 (or something like that) to buy an operating sytem.
Ah, progress ... or ... the good old days??????????
Pass me my zimmer frame
An Old Git
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004
In the bmerkey link from Trav's post, the following note appears within:
Note: For very large tables, avoid performance problems by applying Internet Explorer's client-side data binding feature to divide data tables into "pages" with a set number of visible rows. This means that scripts and styles have only to act on the visible portion of the table, dramatically improving performance. Using data binding, tables with 1200 rows and 20 columns were tested with absolutely no performance issues.
Has anybody ever worked with client side data binding - it's a complete unknown to me. I really like the bmerkey solution, but I am seeing the performance issues. I'd love to know if anyone has an example of this binding working in a WebFocus context.
Posts: 59 | Location: Minneapolis | Registered: September 01, 2004
I didn't look too deep into it because it didn't seem to relate to a WebFOCUS solution -- but I could be mistaken.
From what I was able to gather, you use ASP (or the like) to actually bind an HTML element/control to a datasource. So rather than producing and loading the entire result set, you only produce the first visible portion of it and load that. So the point was that it would only load a few rows instead of everything. I think WebFOCUS has a similar concept where you navigate through "pages" of results. susannah had mentioned it previously in this thread by using the "SET WEBVIEWER = ON" method.
In my particular case, that sort of defeats our purpose for using this since we wanted the entire result set to be scrollable rather than having to page through it. Using a combination though, you might still be able to put it to use.
At any rate, I have NOT used the data binding.
Production: 7.6.6 WF Server  <=>  7.6.6 WF Client  <=>  7.6.6 Dev Studio Testing: <none> Using MRE & BID.  Connected to MS SQL Server 2005 Output Types: HTML, Excel, PDF