[SOLVED] Passing checkbox value from fex to the same fex
Is it possible to use checkboxes in the header of a fex application. This is needed to make a print mechanism so we can indicate which columns will and will not be printed in PDF. We now use a script, and by clicking on the right mouse a box appears to select 'show in EXCEL or PDF' and then the same fex will be called.This message has been edited. Last edited by: Kerry,
September 09, 2009, 09:49 AM
Francis Mariani
If you mean is it possible to use checkboxes in the header of an HTML report that are subsequently passed back to the same program to rerun the report in PDF format, then yes, but you most likely will not be able to do that with the GUI tools in Dev Studio or MRE. You will manually have to add code to add check-box html objects to the column titles of the report (HTML only) and then add JavaScript to collect the check-boxes and add them to the focexec call. It sounds like an interesting challenge for you, MrM.
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
September 09, 2009, 10:17 AM
j.gross
It may be easiest to create hidden parameter controls (via the GUI) in the static html, for each of the checkable columns. Then your onsubmit code need only copy values between controls, and IBI will take it from there.
- Jack Gross WF through 8.1.05
September 09, 2009, 01:43 PM
Darin Lee
Or easier yet, if you're just putting them in the heading, add a line that says something like "Output Types" and then add a multidrill to that heading line which passes all the necessary parms with an output type as an additional parm. That still gives you the pop-up box type functionality, but handles everything as a url (drilldown) so no additional javascript or report coding is necessary and this can all be done in Dev Studio / MRE.
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
September 10, 2009, 05:16 AM
MrM
First thanks all for your reply.
Would it be possible to show checkboxes by using code like below. The code below don't show me the right result.
-* File checkcar.fex -SET &ECHO=ALL;
DEFINE FILE CAR COL001/A1=''; CHKBOX001/A50=''; END
TABLE FILE CAR PRINT CAR.COUNTRY COL001 AS CHKBOX001 CAR.CAR CAR.MODEL CAR.BODYTYPE HEADING "" FOOTING "" ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9, $ ENDSTYLE END
September 10, 2009, 07:11 AM
<JG>
I would tend to look at something like this so that the check box is associated with the column title
-DEFAULTH &FMT = 'HTML'
-DEFAULTH &COUNTRY ='COUNTRY'
-DEFAULTH &CAR ='CAR'
-DEFAULTH &MODEL ='MODEL'
-DEFAULTH &BODYTYPE='BODYTYPE'
-SET &ASCOUNTRY = IF '&FMT.EVAL' EQ 'HTML' THEN 'AS '|''''||'Country <INPUT TYPE=CHECKBOX ID="COUNTRY" NAME="COUNTRY" VALUE="COUNTRY">'|'''' ELSE 'AS '|''''||'Country' ||'''';
-SET &ASCAR = IF '&FMT.EVAL' EQ 'HTML' THEN 'AS '|''''||'Car <INPUT TYPE=CHECKBOX ID="CAR" NAME="CAR" VALUE="CAR">'||'''' ELSE 'AS '|''''||'Car' ||'''';
-SET &ASMODEL = IF '&FMT.EVAL' EQ 'HTML' THEN 'AS '|''''||'Model <INPUT TYPE=CHECKBOX ID="MODEL" NAME="MODEL" VALUE="MODEL">'||'''' ELSE 'AS '|''''||'Model' ||'''';
-SET &ASBODYTYPE = IF '&FMT.EVAL' EQ 'HTML' THEN 'AS '|''''||'Bodytype <INPUT TYPE=CHECKBOX ID="BODYTYPE" NAME="BODYTYPE" VALUE="BODYTYPE">'|'''' ELSE 'AS '|''''||'Bodytype' ||'''';
TABLE FILE CAR
PRINT
&COUNTRY &ASCOUNTRY
&CAR &ASCAR
&MODEL &ASMODEL
&BODYTYPE &ASBODYTYPE
HEADING
"Export"
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT &FMT
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
UNITS=IN,
SQUEEZE=ON,
ORIENTATION=PORTRAIT,
$
-IF '&FMT.EVAL' NE 'HTML' GOTO NONHTM;
TYPE=HEADING,DRILLMENUITEM='PDF',FOCEXEC=test02(FMT='PDF'),
DRILLMENUITEM='Excel',FOCEXEC=test02(FMT='EXL2K'),$
-NONHTM
ENDSTYLE
END
-RUN
September 10, 2009, 11:10 AM
Francis Mariani
JG,
In your example, the check-box values are not passed back to the program, so the program does not know which columns were selected by the user.
Some JavaScript added to your code and a few tweaks solves the problem:
-SET &ECHO=ALL;
-DEFAULTH &FMT = 'HTML'
-DEFAULTH &COUNTRY =''
-DEFAULTH &CAR =''
-DEFAULTH &MODEL =''
-DEFAULTH &BODYTYPE=''
-SET &HEAD1 = IF &FMT EQ 'HTML' THEN 'Export' ELSE '';
-SET &PCOUNTRY = IF &COUNTRY EQ 'N' THEN '-*' ELSE 'COUNTRY ';
-SET &PCAR = IF &CAR EQ 'N' THEN '-*' ELSE 'CAR ';
-SET &PMODEL = IF &MODEL EQ 'N' THEN '-*' ELSE 'MODEL ';
-SET &PBODYTYPE = IF &BODYTYPE EQ 'N' THEN '-*' ELSE 'BODYTYPE';
-SET &ASCOUNTRY = IF &FMT EQ 'HTML' THEN 'AS ''<input type=checkbox id="COUNTRY" > Country ''' ELSE 'AS ''Country''';
-SET &ASCAR = IF &FMT EQ 'HTML' THEN 'AS ''<input type=checkbox id="CAR" > Car ''' ELSE 'AS ''Car''';
-SET &ASMODEL = IF &FMT EQ 'HTML' THEN 'AS ''<input type=checkbox id="MODEL" > Model ''' ELSE 'AS ''Model''';
-SET &ASBODYTYPE = IF &FMT EQ 'HTML' THEN 'AS ''<input type=checkbox id="BODYTYPE"> Bodytype''' ELSE 'AS ''Bodytype''';
TABLE FILE CAR
PRINT
COUNTRY NOPRINT
&PCOUNTRY.EVAL &ASCOUNTRY
&PCAR.EVAL &ASCAR
&PMODEL.EVAL &ASMODEL
&PBODYTYPE.EVAL &ASBODYTYPE
HEADING
"Customized Car Report"
"&HEAD1"
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT &FMT
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
UNITS=IN,
SQUEEZE=ON,
ORIENTATION=PORTRAIT,
$
-IF &FMT NE 'HTML' GOTO NONHTM;
TYPE=HEADING, LINE=2,
DRILLMENUITEM='PDF', JAVASCRIPT = RerunReport('PDF'),
DRILLMENUITEM='Excel', JAVASCRIPT = RerunReport('EXL2K'),
$
-NONHTM
ENDSTYLE
END
-RUN
-NONHTM
ENDSTYLE
END
-RUN
-HTMLFORM BEGIN
<script language='javascript'>
function RerunReport(FMT)
{
focexurl1 = document.location +
'&|FMT=' + FMT +
'&|COUNTRY=' + GetCheckBoxValue(document.getElementById('COUNTRY')) +
'&|CAR=' + GetCheckBoxValue(document.getElementById('CAR')) +
'&|MODEL=' + GetCheckBoxValue(document.getElementById('MODEL')) +
'&|BODYTYPE=' + GetCheckBoxValue(document.getElementById('BODYTYPE'));
;
window.open(focexurl1,'win1');
}
// Return Y or N depending on the checked status of a check box
function GetCheckBoxValue(CheckBox)
{
if (CheckBox.checked == true) x = 'Y'; else x = 'N';
return(x);
}
</script>
-HTMLFORM END
I realize this is antiquated but it does work.
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
September 11, 2009, 01:57 AM
<JG>
Francis,
Thanks for adding the finishing touches, I know that what I posted did not return the values it was meant only to illustrate a method of actually displaying the check boxes in reply to the sample code posted by MrM.
And bye the way Francis there is definitely nothing wrong with some the older ways of doing things. To be honest they are generally much more reliable and user friendly than of some of the newer rubbish that is around now.
September 11, 2009, 02:30 AM
MrM
thanks all.
I will use the examples.
September 11, 2009, 02:57 AM
<JG>
MrM
To get Francis's modified code to work you need to change