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 use this code: "<0 <-1 " " "<0 This is to confirm we have received your cancellation for the " " "<0 We are processing your refund of attend future meetings."
and get this .doc file (we can't us pdf because it won't word-wrap) Note the leading space in the fist line of each paragraph. We don't know how to stop this from occurring.
Dear Davidson:
This is to confirm we have received your cancellation for the CLINFAC210-7 N/A Clinical Faculty Workshop 2 class on 2007/10/18 .
We are processing your refund of $210.00. We hope that you will be able to attend future meetings.
Any ideas would be appreciated.This message has been edited. Last edited by: Kerry,
Dev Studio /7.6.11/7.7.02M MVS/USS AIX/SOLARIS Windows WF Client 7.6.8/7.6.11
Posts: 64 | Location: Eastern and middle NC | Registered: March 13, 2007
Hard to see leading spaces when they disappear in HTML. when you post code, please included it inside the code tages. Also, you can go to options and click on "disable HTML."
Here's my guess. After each of your spot markers you are leaving a space which tells WF to put a space there. If you don't want those spaces, don't put them there - just close your spot markers with a right caret > immediately followed by your text. Like
HEADING
"<5>This eliminates leading spaces."
"<5 This does not."
On a related note, you CAN word wrap in a PDF document, but WF isn't a word processor so it's not done the same way. If you put your whole paragraph, including field values into a single string, and then use the PARAG function, it subdivides the string into a specified character length and then you can use GETTOK to pull out the individual lines. Here's an example:
-* File car.fex
DEFINE FILE CAR
RCOSTA/A20=EDIT(RCOST);
SEATSA/A20=EDIT(SEATS);
LONGSTRING/A1800='If you would like to create a paragraph that contains word wrapping features for country '|COUNTRY||' and car '|CAR||
' you could include the cost field ('||RCOSTA||') and car information (Bodytype='||BODYTYPE||',SEATS='||SEATSA||
') and use the PARAG subroutine along with GETTOK to properly word wrap your document.';
PARAGSTR/A400=PARAG(400,LONGSTRIN,'~',50,PARAGSTR);
LINE1/A50=GETTOK(PARAGSTR,400,1,'~',50,LINE1);
LINE2/A50=GETTOK(PARAGSTR,400,2,'~',50,LINE2);
LINE3/A50=GETTOK(PARAGSTR,400,3,'~',50,LINE3);
LINE4/A50=GETTOK(PARAGSTR,400,4,'~',50,LINE4);
LINE5/A50=GETTOK(PARAGSTR,400,5,'~',50,LINE5);
LINE6/A50=GETTOK(PARAGSTR,400,6,'~',50,LINE6);
LINE7/A50=GETTOK(PARAGSTR,400,7,'~',50,LINE7);
LINE8/A50=GETTOK(PARAGSTR,400,8,'~',50,LINE8);
END
TABLE FILE CAR
BY COUNTRY NOPRINT
BY CAR NOPRINT PAGE-BREAK
HEADING
"<LINE1"
"<LINE2"
"<LINE3"
"<LINE4"
"<LINE5"
"<LINE6"
"<LINE7"
"<LINE8"
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
UNITS=IN,
SQUEEZE=ON,
ORIENTATION=PORTRAIT,
$
TYPE=REPORT,
GRID=OFF,
FONT='ARIAL',
SIZE=10,
COLOR='BLACK',
BACKCOLOR='NONE',
STYLE=NORMAL,
$
ENDSTYLE
END
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
Darin, I haven't asked to customer to try the pdf solution but that is really nice to know. They will try it today.
Sorry about the problem posting code. I hope this helps. I think you can see the leading spaces.
------ CODE --------------- "<0>"<0>"<0>"<0>" " " " "<0>" " "<0>This is to confirm we have received your cancellation for the class on ." " " "<0>We are processing your refund of " "
------ RESULTS in .doc format ------------ Troy Cecil 3820-A Bridges St Bonehead City, DC
Dear Troy:
This is to confirm we have received your cancellation for the Pool Inspection HCE6030307 Keeping Swimming Safe and Healthy: Pool Inspection and Plan Review class on 2007/02/07 .
We are processing your refund of $500.00. We hope that you will be able to attend future meetings.
Dev Studio /7.6.11/7.7.02M MVS/USS AIX/SOLARIS Windows WF Client 7.6.8/7.6.11
Posts: 64 | Location: Eastern and middle NC | Registered: March 13, 2007
I don't think you can do anything about this. I ran a simple test and the result reminded me of my mainframe days. There are always two blank characters at the beginning of each report lines, heading or data. You can suppress one of the blank characters with a <-1, but that's it.
SET PAGE=NOPAGE
TABLE FILE CAR
SUM
SALES
BY COUNTRY
BY CAR
BY MODEL
HEADING
"<-1 WEBFOCUS REPORT"
ON TABLE SET STYLESHEET *
TYPE=REPORT, ORIENTATION=LANDSCAPE, SQUEEZE=ON, FONT=ARIAL, SIZE=12, $
ENDSTYLE
ON TABLE PCHOLD FORMAT DOC
END
gives me:
WEBFOCUS REPORT
COUNTRY CAR MODEL SALES
------- --- ----- -----
ENGLAND JAGUAR V12XKE AUTO 0
XJ12L AUTO 12000
JENSEN INTERCEPTOR III 0
TRIUMPH TR7 0
FRANCE PEUGEOT 504 4 DOOR 0
ITALY ALFA ROMEO 2000 4 DOOR BERLINA 4800
2000 GT VELOCE 12400
2000 SPIDER VELOCE 13000
MASERATI DORA 2 DOOR 0
JAPAN DATSUN B210 2 DOOR AUTO 43000
TOYOTA COROLLA 4 DOOR DIX AUTO 35030
W GERMANY AUDI 100 LS 2 DOOR AUTO 7800
BMW 2002 2 DOOR 8950
2002 2 DOOR AUTO 8900
3.0 SI 4 DOOR 14000
3.0 SI 4 DOOR AUTO 18940
530I 4 DOOR 14000
530I 4 DOOR AUTO 15600
You can't set the font size, font face, page orientation...
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
JG is correct that you cannot get any true styling into HOLD FORMAT DOC - so if you are sending a letter out to a customer PDF is the way to go.
However, I am able to get output into column 1 with FORMAT DOC. The technique is somewhat limited - you cannot use PRINT with OVER - but it is useful in certain narrow situations - say if you want to generate some Dialoge Manager code from data. Here's a somewhat artificial example using CAR:
APP FILDEF MYCODE mycode.fex
-RUN
DEFINE FILE CAR
DFLT_LINE1/A80 WITH COUNTRY = '-DEFAULT &' | 'FOO = ''Hello world''' ;
DFLT_LINE2/A80 WITH COUNTRY = '-DEFAULT &' | 'GOO = ''Goodbye world'' ; ' ;
SET_LINE1/A80 WITH COUNTRY = '-SET &' | 'MYVAR = &' || 'FOO || '' - '' | &' || 'GOO ;' ;
TYPE_LINE1/A80 WITH COUNTRY = '-TYPE MYVAR: &' | 'MYVAR' ;
END
TABLE FILE CAR
PRINT
SET_LINE1 IN 0 AS ''
BY COUNTRY NOPRINT
ON COUNTRY SUBHEAD
"<0><DFLT_LINE1"
"<0><DFLT_LINE2"
ON COUNTRY SUBFOOT
"<0><TYPE_LINE1"
WHERE COUNTRY EQ 'ENGLAND'
ON TABLE SET EMPTYREPORT ON
ON TABLE SET PAGE-NUM NOPAGE AND LINES 999999
ON TABLE SAVE AS MYCODE FORMAT DOC
END
-RUN
-SET &ECHO = 'ALL' ;
-INCLUDE MYCODE
Dang it, I didn't notice that missing "E" in the FILEDEF. Good eyes there Susannah.
Interestingly enough, you don't need the FILEDEF at all in the latest releases of WebFOCUS (I happened to do my test on 7.68) It used to be that a -INCLUDE file needed a suffix of '.fex', which is why I instinctively put it in there; but somewhere along the line that rule must have been relaxed.
Posted this a couple of weeks ago, it explains it.
quote:
An INCLUDE must be named .fex if it resides in a location in the APP PATH however if the file is in the working edatemp directory or it's full path is specified it can be any extension.
The documentation on this is not very clear and contradictory.
When Francis Mariani said "reminded me of my mainframe days", that brought back memories! We are using Darin Lee's technique and that is working fine for this application.
Thanks to all............Steve
Dev Studio /7.6.11/7.7.02M MVS/USS AIX/SOLARIS Windows WF Client 7.6.8/7.6.11
Posts: 64 | Location: Eastern and middle NC | Registered: March 13, 2007
An interesting point: "An INCLUDE mustdoesn't need to be named .fex". You can do something like "-INCLUDE MYFEX.TXT" if "MYFEX.TXT" exists AND is valid FOCUS code. Just a point of interest. -Doug
Posts: 3132 | Location: Tennessee, Nashville area | Registered: February 23, 2005
This thread seems to have been "hi-jacked" by a discussion about FILEDEF. And it's all my fault for putting that typo in my code
But as long as we're here, I did a little digging to see what was going on. AFAICT, -INCLUDE seems to come in at least four "flavors":
A) -INCLUDE BLAH B) -INCLUDE blah.foo C) -INCLUDE [path]blah.foo D) -INCLUDE MYAPP/BLAH
Here's what I came up with. Taking these one at a time:
A) -INCLUDE BLAH We know that this will execute blah.fex if blah.fex is in your APP PATH, and we also know that this will execute any arbitrary file, provided that the file is FILEDEF'd. The question that I had was, "what happens if you have both of these?" The answer is that if blah.fex is in your APP PATH, it takes precedence over any FILEDEF. So going back to my example, if you have ON TABLE SAVE AS MYCODE FORMAT DOC, and you have a mycode.fex anywhere in your APP PATH, the mycode.fex in your APP PATH executes.
B) -INCLUDE blah.foo The only limitation here is that blah.foo needs to exist and be in your APP PATH. If blah.foo is not in your APP PATH, you get a "Procedure cannot be found" error (FOC227).
C) -INCLUDE [path]blah.foo [path]blah.foo must exist.
D) -INCLUDE MYAPP/BLAH blah.fex must be in myapp, however myapp does NOT have to be your APP PATH. It seems to work provided that either myapp is directly under your apps folder, or you can do an APP MAP on myapp.
Caveat #1: I did my testing on WF 7.68 on Wintel, your mileage may vary on other (in particular earlier) releases. If you're in doubt, consult the documentation for your environment.
Caveat #2: For A & D, I capitalized the app & filename to be consistent with the doc, but I believe these can be mixed case.
Caveat #2: I think someone else noted this, but to repeat, your -INCLUDE file should contain only legitimate WebFOCUS code. There is nothing to stop you from doing a -INCLUDE car.mas or car.foc.
Maybe I'm not understanding your question, but the "execution" (notice the quotes) of an INCLUDE file is the same regardless of the precise phrasing of the -INCLUDE (my options A-D). A -INCLUDE behaves almost as if you had placed that code directly inside the fex.
As to the "execution", it depends on whther you're talking about the Dialogue Manager exection or the FOCSTACK execution. Any Dialogue Manager execution is immediate. Any non-Dialogue Manager statements inside the -INCLUDE are put on the FOCSTACK. If you have a -RUN inside the -INCLUDE, then any code on the FOCSTACK will execute, then the Dialogue Manager interpreter takes control again. Rinse, lather, repeat.
If you're familiar with Dialogue Manager concepts, then you should understand what I'm talking about. If you're not familiar with Dialogue Manager (i.e., if you have no idea what I was just talking about), then I suggest you read the existing documention on Dialogue Manager and possibly take a training course or two.
Yeah EricH, I think you "mis-interpreted (my) question? ... At what point... ". It's not a non-understanding of DM on my part (as I've been doing this since close to its inception), but an understanding the scenario as it applies to the initial post (leading space, etc). This post seemed to have been hijacked beyond its original intend (filedefs, now dm, etc), as previously mentioned. So, I'll leave with that note as there seems to be enough information here to satisfy the initial question.
Posts: 3132 | Location: Tennessee, Nashville area | Registered: February 23, 2005