Focal Point
WebFOCUS Report a Giant Table?

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/7241068331

May 27, 2005, 08:25 PM
suzy_smith
WebFOCUS Report a Giant Table?
Am I correct in guessing that a WebFOCUS report is a giant html table? I am trying to alter styling using css, and so far, the only tag that is responding to report output is TD. After many iterations, I tried changing the font, so it finally became obvious to me that the TD tag in my css stylesheet was about the only one that showed a change in output.

Do other people have suggestions on how to figure out what is what using css and not WebFOCUS stylesheets? Or do I have to use both? Or are there tag names that WebFOCUS uses that are specific to various document components?

I'm trying to make this simple, but I expect I either do not "get" it, or it's buried deep and only the developers know.

I have read the sections in the manual on styling at least 3 times.

Oh, and I have SET HTMLCSS=OFF, so that shouldn't interfere.

Any help will be appreciated.

Suzy
May 28, 2005, 06:59 AM
<JG>
Suzy
can you post a piece of your style sheet and the corresponding piece of the WebFocus inline styling that should be applying it,
that way we can see what you are expecting and might be able to help.
May 29, 2005, 03:49 PM
suzy_smith
Hi JG

Some background: We have been using FOCUS and a home-grown cgi to deliver web reports for 8 years and have accumulated 200+ user-runnable parameter-driven reports. We have used html for launch pages and .fex files to run the actual report. Since we always used the "pre" tag for output from FOCUS, we have never had to bother with stylesheets, except for the css that we use to "frame" the top and bottom of the preformatted report.

We have developed scripts that do 95% of the code conversion from FOCUS to WebFOCUS:

1. Focexecs always HOLD FORMAT HTMTABLE to t-basic.htm
2. t-basic.htm will be included using the IBI.FIL directive into a larger chunk of html that contains our css "frame" and any other css styling we need
3. We want to avoid using WF stylesheets for individual reports and always use an external WF stylesheet something like what I have included in the code below.

Here's a report that demonstrates what I don't understand how to accomplish. For the set of 200 reports that need to be converted, the HEADING is the most important component for us to get "right."

We have determined that spot markers are not observed; that HTMLCSS and HEADALIGN=INTERNAL do stuff, but we want to know how to "control" the stuff that they do. For example, if you uncomment HEADALIGN=INTERNAL, CNT.CAR in the heading gets pushed way over to the 3rd heading column. With HEADALIGN=INTERNAL commented out, everything gets mooshed over to the left and the WF stylesheet directives are ignored.

Any hints or references to documentation that you can provide will be very helpful.

Thanks. Suzy




-* ----------------------------------- Prepare Report
TABLE FILE CAR
HEADING
"Web Reporting System <0 Our Splendid Company <600 Date: &DATEMDYY"
"Report: &FOCFOCEXEC <30 Car Count: " "
SUM CNT.CAR NOPRINT
SUM SALES RCOST DCOST SEATS LENGTH WIDTH HEIGHT WEIGHT MPG ACCEL
BY COUNTRY
BY CAR
IF COUNTRY IS 'ENGLAND'
ON TABLE HOLD FORMAT HTMTABLE AS T-BASIC
ON TABLE SET HTMLCSS OFF
ON TABLE SET STYLE *
TYPE = REPORT, GRID=OFF,$
TYPE = HEADING,
COLSPAN=3,
-* HEADALIGN=INTERNAL,
$
TYPE = HEADING, ITEM=1, JUSTIFY=LEFT,$
TYPE = HEADING, ITEM=2, JUSTIFY=LEFT,$
TYPE = HEADING, ITEM=3, JUSTIFY=RIGHT,$
ENDSTYLE
END
-RUN
-* ----------------------------------- Show Report
-HTMLFORM BEGIN
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<br />TEST WF and css Styling<br />



!IBI.FIL.T-BASIC;


-HTMLFORM END

This message has been edited. Last edited by: <Mabel>,
May 30, 2005, 06:47 AM
<JG>
Suzy, look at the following. note how the spot makers are coded, giving a value does not work in HTML. Also if you use colspan it should be applied to an item not the whole line.




TABLE FILE CAR
HEADING
"<+0>Web Reporting System <+0> Our Splendid Company <+0> Date: &DATEMDYY"
"<+0>Report: &FOCFOCEXEC <+0> Car Count: " "
SUM CNT.CAR NOPRINT
SUM SALES RCOST DCOST SEATS LENGTH WIDTH HEIGHT WEIGHT MPG ACCEL
BY COUNTRY
BY CAR
IF COUNTRY IS 'ENGLAND'
ON TABLE HOLD FORMAT HTMTABLE AS T-BASIC
ON TABLE SET HTMLCSS OFF
ON TABLE SET STYLE *
TYPE = REPORT, GRID=OFF,$
-*TYPE = HEADING,COLSPAN=3,$
TYPE = HEADING, HEADALIGN=INTERNAL,$
TYPE = HEADING, LINE=1, ITEM=1, JUSTIFY=LEFT,$
TYPE = HEADING, LINE=1, ITEM=2, JUSTIFY=LEFT,$
TYPE = HEADING, LINE=1, ITEM=3, JUSTIFY=RIGHT,$
TYPE = HEADING, LINE=2, ITEM=2, JUSTIFY=RIGHT,$
ENDSTYLE
END

This message has been edited. Last edited by: <Mabel>,
May 30, 2005, 03:13 PM
suzy_smith
Thanks, JG, for your clarification of how each HEADING LINE and ITEM needs to be specified.

It is very annoying that fieldname left-caret markers act like a "tab" character, the same way that spot markers do, but there doesn't appear to be a way to control the spacing for the fieldname left-caret markers.

My revised code introduces the only way I know of to retain fieldnames in a heading without having them "tab" to the next column. While this report shows only one fieldname, our reports use the left and center column areas of the report HEADING to provide copius parameter- and data-based feedback to the user.

Do you happen to know of any way around this? Should I do more exploring of css as a possible solution?

Thanks. Suzy


-* ----------------------------------- Get all field values that will appear
-* ----------------------------------- in the leftmost 2 columns of a report
-* ----------------------------------- HEADING and put them into amper vars
TABLE FILE CAR
SUM CNT.CAR
IF COUNTRY IS ENGLAND
ON TABLE HOLD AS CARCOUNT FORMAT ALPHA
END
-RUN
-READ CARCOUNT &CARCOUNT.A9
-* ----------------------------------- Prepare Report
TABLE FILE CAR
HEADING
"<+0>Web Reporting System <+0> Our Splendid Company <+0> Date: &DATEMDYY"
"<+0>Report: &FOCFOCEXEC <+0> Car Count: "<+0>Report: &FOCFOCEXEC <+0> Car Count: &CARCOUNT "
" "
SUM CNT.CAR NOPRINT
SUM SALES RCOST DCOST SEATS LENGTH WIDTH HEIGHT WEIGHT MPG ACCEL
BY COUNTRY
BY CAR
IF COUNTRY IS 'ENGLAND'
ON TABLE HOLD FORMAT HTMTABLE AS T-BASIC
ON TABLE SET HTMLCSS OFF
ON TABLE SET STYLE *
TYPE = REPORT, GRID=OFF,$
TYPE = HEADING, HEADALIGN=INTERNAL,$
TYPE = HEADING, LINE=1, ITEM=1, JUSTIFY=LEFT,$
TYPE = HEADING, LINE=1, ITEM=2, JUSTIFY=LEFT,$
TYPE = HEADING, LINE=1, ITEM=3, JUSTIFY=RIGHT,$
TYPE = HEADING, LINE=2, ITEM=1, JUSTIFY=LEFT,$
TYPE = HEADING, LINE=2, ITEM=2, JUSTIFY=LEFT,$
ENDSTYLE
END
-RUN
-* ----------------------------------- Show Report
-HTMLFORM BEGIN
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<br />TEST WF and css Styling<br />



!IBI.FIL.T-BASIC;


-HTMLFORM END

This message has been edited. Last edited by: <Mabel>,
May 31, 2005, 08:22 AM
<JG>
Suzy, CSS is required for what your wanting to do.
Make sure that in the WebFocus styling that you include the OBJECT=. This is required when mixing data and text.

With CSS you can use absolute or relative positioning for your heading items.

The issue is that the report needs to be a fixed width and the items in the header need to be of fixed width otherwise it messes up. So that means that you may need multiple style sheets.


-* ----------------------------------- Get all field values that will appear
-* ----------------------------------- in the leftmost 2 columns of a report
-* ----------------------------------- HEADING and put them into amper vars
TABLE FILE CAR
SUM CNT.CAR
IF COUNTRY IS ENGLAND
ON TABLE SAVE AS CARCOUNT FORMAT ALPHA
END
-RUN
-READ CARCOUNT &CARCOUNT.A5.
-RUN
-* ----------------------------------- Prepare Report
TABLE FILE CAR
HEADING
"<+0>Web Reporting System <+0> Our Splendid Company <+0> Date: &DATEMDYY"
"<+0>Report: &FOCFOCEXEC <+0> Car Count: "<+0>Report: &FOCFOCEXEC <+0> Car Count: &CARCOUNT "
" "
SUM CNT.CAR NOPRINT
SUM SALES RCOST DCOST SEATS LENGTH WIDTH HEIGHT WEIGHT MPG ACCEL
BY COUNTRY
BY CAR
-*IF COUNTRY IS 'ENGLAND'
ON TABLE HOLD FORMAT HTMTABLE AS T-BASIC
ON TABLE SET HTMLCSS OFF
ON TABLE SET STYLE *
TYPE = REPORT, GRID=OFF,$
TYPE = HEADING, HEADALIGN=INTERNAL,$
TYPE = HEADING, LINE=1, ITEM=1, CLASS=Ht1,$
TYPE = HEADING, LINE=1, ITEM=2, CLASS=Ht2,$
TYPE = HEADING, LINE=1, ITEM=3, CLASS=Ht3,$
TYPE = HEADING, LINE=2, OBJECT=TEXT,ITEM=1 ,CLASS=Ht1,$
TYPE = HEADING, LINE=2, OBJECT=TEXT,ITEM=2, CLASS=Ht2,$
TYPE = HEADING, LINE=2, OBJECT=FIELD,ITEM=1, CLASS=Hd1,$
TYPE = HEADING, LINE=3, OBJECT=TEXT,ITEM=1, CLASS=Ht1,$
TYPE = HEADING, LINE=3, OBJECT=TEXT,ITEM=2, CLASS=Ht2,$
ENDSTYLE
END

-RUN
-* ----------------------------------- Show Report
-HTMLFORM BEGIN
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
TEST WF and css Styling



!IBI.FIL.T-BASIC;


-HTMLFORM END

This message has been edited. Last edited by: <Mabel>,
May 31, 2005, 01:00 PM
suzy_smith
Thanks so much JG. Your explanation and code give us a great starting point for converting our "legacy" reports.

My only question is, why is this sort of thing either not in the manuals or buried deep in the manuals. With FOCUS, it's automatic to put DATA values in the HEADING.

Actually, another question that springs to mind is, if WF can distinguish between TEXT and DATA, why are there no WF stylesheet formatting options for DATA components of the HEADING.

Thanks again. Suzy
May 31, 2005, 01:49 PM
<JG>
It's a pain, but all of the documentation is there even though it can be hard to find sometimes, because knowing the required key words is important.
For headings the important thing is if you mix text and data then "OBJECT=" becomes very inportant. It should actually be required instead of optional and then would not be an issue.

With regard stylesheet options I would say a programming overtsight that has never been pushed as an NFR.
June 02, 2005, 02:12 AM
susannah
SUZ, try this for heading alignment

TABLE FILE CAR
HEADING
"Web Reporting System <+0> Our Splendid Company <+0> Date: &DATEMDYY"
"Report: &FOCFOCEXEC <+0> Car Count: " "
SUM CNT.CAR NOPRINT
SUM SALES RCOST DCOST SEATS LENGTH WIDTH HEIGHT WEIGHT MPG ACCEL
BY COUNTRY BY CAR
IF COUNTRY IS 'ENGLAND'

ON TABLE SET STYLE *
TYPE = REPORT, GRID=OFF,$
TYPE = HEADING,COLSPAN=12, HEADALIGN=BODY,$
TYPE = HEADING,LINE=1, ITEM=1,COLOR=GREEN,JUSTIFY=LEFT,COLSPAN=4,$
TYPE = HEADING, LINE=1,ITEM=2, JUSTIFY=CENTER,COLSPAN=4,BACKCOLOR=PINK,$
TYPE = HEADING,LINE=1, ITEM=3,COLOR=RED, JUSTIFY=RIGHT,COLSPAN=4,$
TYPE = HEADING,LINE=2, ITEM=1, JUSTIFY=LEFT,COLSPAN=8,$
TYPE = HEADING,LINE=2, ITEM=2, JUSTIFY=CENTER,COLSPAN=2,BACKCOLOR=YELLOW,$
TYPE = HEADING,LINE=2, ITEM=3, JUSTIFY=RIGHT,COLSPAN=2,$
END

This message has been edited. Last edited by: <Mabel>,