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 need to create a pdf with outout from many hold files on one page. The problem is that I want the output to be side by side, not one after the other. I know how to do this with HTML output... but how can I do this with pdf? I tried saving the reports as GIFS and then specifying where the gifs go but I cant save a TABLE request as a gif. Any ideas? Something easy that I am missing?
Do you have an example of what you need? That would help. But generally speaking, the number of hold files isn't an issue. You can certainly create a single report from multiple hold files. I presume you want multiple reports on a single page, each with it's own page heading. That's very different. So an image of what you are looking for, and some description of the incoming data would help.
Posts: 135 | Location: Portland, OR | Registered: March 23, 2005
Here is a sample. I need something like this but in pdf not html. Before you suggest it, in my case the hold files cannot possibly be combined into one hold file. So as I said originally, how can I place two completely separate reports side by side (not one after the other) on a pdf?
Here is a sample html version.
TABLE FILE CAR PRINT CAR WHERE CAR EQ 'JAGUAR'; ON TABLE HOLD AS A FORMAT HTMTABLE END
TABLE FILE CAR PRINT CAR WHERE CAR EQ 'JAGUAR'; ON TABLE HOLD AS B FORMAT HTMTABLE END -HTMLFORM BEGIN <table WIDTH='100' cellpadding='0' cellspacing='0' border='0'> <tr> <td width="40%" align='left' valign='top'>!IBI.FIL.A;</td> <td width="60%" align='left' valign='top'>!IBI.FIL.B;</td> </tr> </table> -HTMLFORM END
I personally don't know of any way to do what you're asking. Maybe someone else out there does. I'd certainly be interested in the answer.
It is theoretically possible to use Modify to build a file in which each record contains one line from both reports. Then as you print each record, you are, in effect, printing two reports. But it would be painfully complicated, and probably nothing you want to undertake. If you decide you do want to undertake that - and we're talking probably weeks of work - email me, and I could at least lay out the theory for you.
Posts: 135 | Location: Portland, OR | Registered: March 23, 2005
Thanks for the answer. I didn't expect that it was possible to control pdf layout like that. I am trying to reproduce the layout of an old MS Access Report. I will just change it a bit. Thanks.
I've built it with both graphs and report output (sorry the codes so long but even a simple example needs a lot of work. 7.1 has a gui tool for doing it) The reason for using WP as an intermediate format is that it allows you to take forward total lines
USE C:\IBI\APPS\IBISAMP\CAR.FOC AS CAR END SET ASNAMES=ON
SET PAGE=NOPAGE SET LINES=99999 SET WIDTH=150 SET PANEL=150 SET EMPTYREPORT=OFF FILEDEF WP1MAS DISK .\WP1.MAS FILEDEF WP2MAS DISK .\WP2.MAS FILEDEF WP1 DISK .\WP1.WP FILEDEF WP2 DISK .\WP2.WP SET ALL=PASS SET HOLDLIST=PRINTONLY TABLE FILE CAR SUM DEALER_COST RETAIL_COST BY COUNTRY ON TABLE NOTOTAL ON TABLE HOLD AS WP1 FORMAT WP END -RUN TABLE FILE CAR SUM DEALER_COST RETAIL_COST SEATS BY BODYTYPE ON TABLE NOTOTAL ON TABLE HOLD AS WP2 FORMAT WP END -RUN FILEDEF WP1 DISK .\WP1.WP (LRECL 80 FILEDEF WP2 DISK .\WP2.WP (LRECL 80 -RUN -WRITE WP1MAS FILE=WP1 ,SUFFIX=FIX -WRITE WP1MAS SEGNAME=WP1 ,SEGTYPE=S0 -WRITE WP1MAS FIELDNAME =FILLER1 ,E01 ,A1 ,A2 ,$ -WRITE WP1MAS FIELDNAME =R1C1 ,E02 ,A10 ,A10 ,$ -WRITE WP1MAS FIELDNAME =FILLER2 ,E03 ,A1 ,A2 ,$ -WRITE WP1MAS FIELDNAME =R1C2 ,E04 ,A11 ,A11 ,$ -WRITE WP1MAS FIELDNAME =FILLER3 ,E05 ,A1 ,A2 ,$ -WRITE WP1MAS FIELDNAME =R1C3 ,E06 ,A11 ,A11 ,$ -WRITE WP1MAS FIELDNAME =FILLER4 ,E07 ,A1 ,A42 ,$ -RUN -WRITE WP2MAS FILE=WP2 ,SUFFIX=FIX -WRITE WP2MAS SEGNAME=WP2 ,SEGTYPE=S0 -WRITE WP2MAS FIELDNAME =FILLER1 ,E01 ,A1 ,A2 ,$ -WRITE WP2MAS FIELDNAME =R2C1 ,E02 ,A12 ,A12 ,$ -WRITE WP2MAS FIELDNAME =FILLER2 ,E03 ,A1 ,A2 ,$ -WRITE WP2MAS FIELDNAME =R2C2 ,E04 ,A11 ,A11 ,$ -WRITE WP2MAS FIELDNAME =FILLER3 ,E05 ,A1 ,A2 ,$ -WRITE WP2MAS FIELDNAME =R2C3 ,E06 ,A11 ,A11 ,$ -WRITE WP2MAS FIELDNAME =FILLER4 ,E07 ,A1 ,A2 ,$ -WRITE WP2MAS FIELDNAME =R2C4 ,E08 ,A5 ,A5 ,$ -WRITE WP2MAS FIELDNAME =FILLER5 ,E09 ,A1 ,A33 ,$ -RUN DEFINE FILE WP1 RPTLN/I5=0; END TABLE FILE WP1 SUM R1C1 R1C2 R1C3 COMPUTE R2C1/A12=' '; COMPUTE R2C2/A11=' '; COMPUTE R2C3/A11=' '; COMPUTE R2C4/A5=' '; BY RPTLN ON TABLE HOLD AS BLOCK1 FORMAT FOCUS INDEX RPTLN END -RUN CREATE FILE BLOCK1 -RUN MODIFY FILE BLOCK1 COMPUTE FILLER1/A2=' '; COMPUTE FILLER2/A2=' '; COMPUTE FILLER3/A2=' '; COMPUTE FILLER4/A40=' '; FIXFORM FROM WP1 COMPUTE RPTLN=LAST RPTLN + 1; DATA ON WP1 START 4 END -RUN MODIFY FILE BLOCK1 COMPUTE FILLER1/A2=' '; COMPUTE FILLER2/A2=' '; COMPUTE FILLER3/A2=' '; COMPUTE FILLER4/A2=' '; COMPUTE FILLER5/A33=' '; FIXFORM FROM WP2 COMPUTE RPTLN=LAST RPTLN + 1; MATCH RPTLN ON MATCH UPDATE R2C1 R2C2 R2C3 R2C4 ON NOMATCH INCLUDE DATA ON WP2 START 5 END -RUN GRAPH FILE CAR SUM RETAIL_COST AS '' ACROSS COUNTRY ON GRAPH SET LOOKGRAPH PIE ON GRAPH SET GRAPHEDIT SERVER ON GRAPH SET BARNUMB OFF ON GRAPH SET 3D OFF ON GRAPH SET VZERO ON ON GRAPH SET GRID OFF ON GRAPH SET VAXIS 350 ON GRAPH SET HAXIS 550 ON GRAPH HOLD AS G1 FORMAT GIF ON GRAPH SET GRAPHSTYLE * setSeriesType(0,0); setLegendMarkerPosition(4); setMarkerDisplay(false); setConnectLineMarkers(false); setConnectScatterMarkers(false); setO1LabelDisplay(false); setO1MajorGridDisplay(false); setO1MinorGridDisplay(false); setAxisAssignment(0,0); setTextJustHoriz(getTitle(),0); setFontSizeAbsolute(getTitle(),true); setFontSize(getTitle(),16); setY1LabelDisplay(false); setY1MajorGridDisplay(false); setY1MinorGridDisplay(false); setTextFormatPreset(getY1Label(),-1); setTextFormatPattern(getY1Label(),"#.##"); setPieDepth(0); setPieFeelerTextDisplay(3); setPieLabelDisplay(2); setTextFormatPreset(getPieSliceLabel(),1); setLegendDisplay(false); setLegendTextAutofit(true); setFontSizeAbsolute(getY1Title(),true); setFontSizeAbsolute(getY1Label(),true); setFontSizeAbsolute(getY2Title(),true); setFontSizeAbsolute(getY2Label(),true); setFontSizeAbsolute(getO1Title(),true); setO1LabelAutofit(true); ENDSTYLE ON GRAPH SET STYLE * UNITS=IN, PAGESIZE='SCREEN', LEFTMARGIN=0.000000, RIGHTMARGIN=0.000000, TOPMARGIN=0.000000, BOTTOMMARGIN=0.000000, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='TIMES NEW ROMAN', SIZE=12, BACKCOLOR='NONE', STYLE=NORMAL, $ TYPE=HEADING, LINE=1, OBJECT=TEXT, ITEM=1, SIZE=10, $ TYPE=FOOTING, LINE=1, OBJECT=TEXT, ITEM=1, SIZE=10, $ ENDSTYLE END -RUN GRAPH FILE CAR SUM DEALER_COST ACROSS COUNTRY ON GRAPH SET LOOKGRAPH STACK ON GRAPH SET GRAPHEDIT SERVER ON GRAPH SET BARNUMB OFF ON GRAPH SET 3D OFF ON GRAPH SET VZERO ON ON GRAPH SET GRID OFF ON GRAPH SET VAXIS 250 ON GRAPH SET HAXIS 450 ON GRAPH HOLD AS G2 FORMAT GIF ON GRAPH SET GRAPHSTYLE * setSeriesType(0,0); setO1MajorGridDisplay(false); setO1MinorGridDisplay(false); setAxisAssignment(0,0); setAxisAssignment(1,0); setY1MajorGridDisplay(false); setY1MinorGridDisplay(false); setTextJustHoriz(getTitle(),0); setFontSizeAbsolute(getTitle(),true); setFontSize(getTitle(),16); setTextFormatPreset(getY1Label(),-1); setTextFormatPattern(getY1Label(),"#.##"); setPieDepth(0); setPieFeelerTextDisplay(1); setPieLabelDisplay(0); setTextFormatPreset(getPieSliceLabel(),1); setLegendDisplay(false); setLegendTextAutofit(true); setTextJustHoriz(getY1Title(),0); setFontSizeAbsolute(getY1Title(),true); setTextRotation(getY1Title(),0); setTextJustHoriz(getY1Label(),0); setFontSizeAbsolute(getY1Label(),true); setFontSizeAbsolute(getY2Title(),true); setFontSizeAbsolute(getY2Label(),true); setFontSizeAbsolute(getO1Title(),true); setO1LabelAutofit(false); setFrameDisplay(false); setY1AxisLineDisplay(false); setTextRotation(getO1Label(),0); ENDSTYLE ON GRAPH SET STYLE * UNITS=IN, PAGESIZE='A5', LEFTMARGIN=0.00000, RIGHTMARGIN=0.00000, TOPMARGIN=0.00000, BOTTOMMARGIN=0.00000, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='TIMES NEW ROMAN', SIZE=4, COLOR='WHITE', BACKCOLOR='NONE', STYLE=NORMAL, $ TYPE=HEADING, LINE=1, OBJECT=TEXT, ITEM=1, SIZE=4, $ TYPE=FOOTING, LINE=1, OBJECT=TEXT, ITEM=1, SIZE=4, $ TYPE=DATA, ACROSSCOLUMN=N2, COLOR='AQUA', $ ENDSTYLE END -RUN
SET SHOWBLANKS=ON TABLE FILE BLOCK1 PRINT R1C1 NOPRINT IF RECORDLIMIT EQ 1 HEADING "Compound side by side PDF" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " FOOTING "footing if required " ON TABLE PCHOLD FORMAT PDF OPEN NOBREAK ON TABLE SET STYLE * UNITS=IN, PAGESIZE='A4', LEFTMARGIN=0.250000, RIGHTMARGIN=0.250000, TOPMARGIN=0.250000, BOTTOMMARGIN=0.250000, SQUEEZE=ON, ORIENTATION=LANDSCAPE, $ TYPE=REPORT, FONT='TIMES NEW ROMAN', SIZE=10, COLOR='BLACK', BACKCOLOR='NONE', STYLE=NORMAL, RIGHTGAP=0.05, LEFTGAP=0.05, $ TYPE=HEADING, IMAGE=.\G1.GIF, POSITION=(-.5 0.1), $ TYPE=HEADING, IMAGE=.\G2.GIF, POSITION=(6 .6), $ ENDSTYLE END -RUN TABLE FILE BLOCK1 PRINT R1C1 AS 'Country' R1C2 AS 'Dealer,Cost' R1C3 AS 'Retail,Cost' R2C1 AS 'Body,Type' R2C2 AS 'Dealer,Cost' R2C3 AS 'Retail,Cost' R2C4 AS 'Seats' HEADING "Second Part of side by side PDF" " " ON TABLE PCHOLD FORMAT PDF CLOSE ON TABLE SET STYLE * UNITS=IN, PAGESIZE='A4', LEFTMARGIN=0.250000, RIGHTMARGIN=0.250000, TOPMARGIN=0.250000, BOTTOMMARGIN=0.250000, SQUEEZE=ON, ORIENTATION=LANDSCAPE, $ TYPE=REPORT, FONT='TIMES NEW ROMAN', SIZE=10, COLOR='BLACK', BACKCOLOR='NONE', STYLE=NORMAL, RIGHTGAP=0.05, LEFTGAP=0.05, $ TYPE=REPORT,COLUMN=N4,POSITION=5.8,$ TYPE=REPORT,COLUMN=N5,POSITION=7.5,$ TYPE=REPORT,COLUMN=N6,POSITION=8.6,$ TYPE=REPORT,COLUMN=N7,POSITION=9.8,$ ENDSTYLE END -RUN
Thanks for that I will try it today. Man talk about alot of code to do something simple. I don't know if I will be able to use this approach since my report is already really complicated without this!
TABLE FILE CAR PRINT COUNTRY AS 'CNTRY01' CAR AS 'CAR01' COMPUTE C_COUNTRY/A10 = ' '; AS 'CNTRY02' COMPUTE C_CAR/A16 = ' '; AS 'CAR02' COMPUTE C_CTR/I5 = LAST C_CTR + 1; BY COUNTRY NOPRINT ON TABLE HOLD AS TOUT FORMAT ALPHA ON TABLE SET HOLDLIST PRINTONLY ON TABLE SET ASNAMES ON END
FILEDEF TOUT CLEAR FILEDEF TOUT DISK TOUT.FTM (APPEND
TABLE FILE CAR PRINT COMPUTE C_COUNTRY/A10 = ' '; AS 'CNTRY01' COMPUTE C_CAR/A16 = ' '; AS 'CAR01' COUNTRY AS 'CNTRY02' CAR AS 'CAR02' COMPUTE C_CTR/I5 = LAST C_CTR + 1; BY COUNTRY NOPRINT WHERE COUNTRY CONTAINS 'ENGLAND'; ON TABLE HOLD AS TOUT FORMAT ALPHA ON TABLE SET HOLDLIST PRINTONLY ON TABLE SET ASNAMES ON END
TABLE FILE TOUT SUM MAX.CNTRY01 AS 'Country' MAX.CAR01 AS 'Car' MAX.CNTRY02 AS 'Country' MAX.CAR02 AS 'Car' BY C_CTR NOPRINT ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * UNITS=IN, PAGESIZE='A4', SQUEEZE=OFF, ORIENTATION=LANDSCAPE, $ TYPE=REPORT, GRID=ON, $ ENDSTYLE END
The idea is to account for all the columns that you need to see in the doc for every request, then append the results together as one output file. From there you can report like it is one big output file. This works better for interleafing distictly different reports into one pdf doc.
While I agree that what you've posted is a much simpler way to achive side by side pdf output the issue is that your reports have to have any totals at the same level. which means if the first report has 10 lines and the second 5 then the second report is going to have 5 blank lines before printing the totals. By using WP as an intermediate format you can take through any headings, subtotals, footings etc and so they appear at the correct place in the printed report.