Focal Point
How To Use The '&' Character In A Literal

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

May 08, 2007, 02:44 PM
Ron Woods
How To Use The '&' Character In A Literal
Is there a method to escape the & character to keep it from being used as an & variable. The code below errors out on the &body statement:
-* File emailtest.fex
SET BYDISPLAY = ON
-RUN

TABLE FILE CAR
PRINT
MODEL
COMPUTE BODY/A19 = "&body=This is the email body";
BY COUNTRY
BY CAR
ON TABLE HOLD FORMAT HTMTABLE
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=8, $
TYPE=DATA, COLUMN=COUNTRY, JavaScript='fnMail(COUNTRY CAR BODY)', $
ENDSTYLE
END
-RUN
-HTMLFORM BEGIN
<script LANGUAGE=JAVASCRIPT>
function fnMail(Email,Subject,Body)
{
window.location = 'mailto: someone@somewhere.com' + '?Subject=' + Subject + Body;}

!IBI.FIL.HOLD;
-HTMLFORM END


Ron Woods
San Antonio Express-News
Release: WebFOCUS 7.1.1
OS/Platform: Windows XP SP2 x86 32bit
O/P Formats: Primarily pdf and xls
May 08, 2007, 03:08 PM
Leah
Have you tried using default. We use it to keep WebFOCUS from prompting when the '&' is in a report heading

-DEFAULT &S = '&S'


Leah
May 08, 2007, 03:49 PM
Kamesh
Try this,

SET BYDISPLAY = ON
-RUN

TABLE FILE CAR
PRINT
MODEL
COMPUTE BODY/A30 = 'body=This is the email body';
BY COUNTRY
BY CAR
ON TABLE HOLD FORMAT HTMTABLE
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=8, $
TYPE=DATA, COLUMN=COUNTRY, JavaScript='fnMail(COUNTRY CAR BODY)', $
ENDSTYLE
END
-RUN
-HTMLFORM BEGIN

<script LANGUAGE=JAVASCRIPT>
function fnMail(Email,Subject,Body)
{
alert("BODY : " + Body);
var tt='mailto: someone@somewhere.com' + '?Subject=' + Subject + '&' + Body ;
alert("tt : "+ tt);
-*window.location = 'mailto: someone@somewhere.com' + '?Subject=' + Subject + '&' + Body;}
}


!IBI.FIL.HOLD;


-HTMLFORM END
-EXIT


WFConsultant

WF 8105M on Win7/Tomcat
May 08, 2007, 04:37 PM
Francis Mariani
Simply add a concatenation character whenever there's HTMLFORM involved (by the way, I made a couple of other small changes to make the program work:

-* File emailtest.fex

-SET &ECHO=ALL;

SET BYDISPLAY = ON
-RUN

TABLE FILE CAR
PRINT
MODEL
COMPUTE BODY/A30 = '&|body=This is the email body'; NOPRINT
BY COUNTRY
BY CAR
ON TABLE HOLD AS H001 FORMAT HTMTABLE
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=8, $
TYPE=DATA, COLUMN=COUNTRY, JavaScript='fnMail(COUNTRY CAR BODY)', $
ENDSTYLE
END
-RUN

-HTMLFORM BEGIN
<SCRIPT LANGUAGE=JAVASCRIPT>
function fnMail(Email,Subject,Body)
{
window.location = 'mailto: someone@somewhere.com' + '?Subject=' + Subject + Body;}
</SCRIPT>
!IBI.FIL.H001;
-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
May 09, 2007, 01:55 PM
Darin Lee
I think Francis' idea is the quickest and the one I use most. I find that simply inserting a concatenation | symbol after the ampersand works in most cases.


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