Focal Point
[CLOSED] Unable to Reset Drill Down Amper Variables

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

December 01, 2009, 02:56 AM
Tewy
[CLOSED] Unable to Reset Drill Down Amper Variables
I'm having some trouble drilling down to a query page. I have a report which when drilled on opens a new report, that displays a table using the variables passed to it from the original report, and some chained selections boxes so the user can change their selections and re-submit the report.

The problem is no matter what I do the drilled to report seems to remember the variables passed to it from the drilled from report and ignores the changes to the selection boxes entirely. When the drilled to report is run stand alone it works perfectly.

Is there some setting that I need to change to prevent it remembering the selections passed to it?

This message has been edited. Last edited by: Kerry,


WF 7.6.11
Output: HTML, PDF, Excel
December 01, 2009, 04:50 AM
Tony A
Tewy,

Try adding a a random number to the end of your parameter list so that caching is not an issue.

If you generate the URL from within a fex (TYPE=DATA, FOCEXEC....) then set a variable using RDNORM or the like. If you are generating the URL from within an HTML page then use JavaScript Rand=Math.random();

T



In FOCUS
since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2  
WebFOCUS App Studio 8.2.06 standalone on Windows 10 
December 01, 2009, 05:26 AM
Tewy
I've created a variable &RANDOM which I then send from the first report.

In the drill down report I have:

-SET &RANDOM=RDUNIF('D12.9') * 1000000;

and I've put this in a hidden field on the page. However this still doesn't work as it is using the random number generated by the first page.

No doubt I'm being totally thick here. I created this code using the CAR file to simulate what I'm doing. Hopefully you guys will spot my mistake straight away when you read it.

First Report

 
-SET &RANDOM=RDUNIF('D12.9') * 1000000;
-RUN
TABLE FILE CAR
SUM
DEALER_COST
BY COUNTRY
BY CAR
ACROSS BODYTYPE
ON TABLE SET STYLE *
TYPE=HEADING, LINE=1, STYLE=BOLD, JUSTIFY=LEFT, SIZE=10, BACKCOLOR=WHITE,$
TYPE=HEADING, STYLE=BOLD, SIZE=12, JUSTIFY=CENTER, BACKCOLOR=GREY,$
TYPE=SUBHEAD, STYLE=BOLD, SIZE=11, JUSTIFY=CENTER,$
TYPE=DATA, ACROSSCOLUMN=N1, FOCEXEC=MYFEX2(COUNTRY=N1 RANDOM=&RANDOM),$
TYPE=ACROSSVALUE, JUSTIFY=RIGHT,$
ENDSTYLE
END 


MYFEX2

  
-DEFAULT &COUNTRY='FOC_NONE';
-DEFAULT &CAR='FOC_NONE';
-RUN
-SET &RANDOM=RDUNIF('D12.9') * 1000000;
-RUN
TABLE FILE CAR
PRINT
RETAIL_COST
BY COUNTRY
BY CAR
BY MODEL
WHERE COUNTRY EQ '&COUNTRY';
WHERE CAR EQ '&CAR';
ON TABLE HOLD AS DATA1 FORMAT HTMTABLE
ON TABLE NOTOTAL
ON TABLE SET STYLESHEET *
TYPE=HEADING, LINE=1, STYLE=BOLD, JUSTIFY=LEFT,$
TYPE=HEADING, LINE=2, STYLE=BOLD, JUSTIFY=CENTER, SIZE=12,$
TYPE=HEADING, LINE=3, STYLE=BOLD, JUSTIFY=CENTER, SIZE=11,$
ENDSTYLE
END
-RUN
-HTMLFORM BEGIN
<HTML>
<HEAD>
<TITLE></TITLE>
<META content="WebFocus Report Layout Painter" name ="Generator">
<SCRIPT id=IbiOptionsScript type=text/javascript>
var rltVersion = "764";
var cgipath = "cgipath";
var ibirls = "ibirls2";
var rltdyncalendar = "rltdyncalendar";
var gmap = "ibigmap";
var olap="olap";
var olappanebase="olappanebase";
var olapdrill="olapdrill";
var ibixmltree="ibixmltree";
var ibiOptions = new Array(cgipath,ibirls);
</SCRIPT>
<SCRIPT id=nls src="/ibi_html/javaassist/nls.js" type=text/javascript></SCRIPT>
<SCRIPT id=ibigbl src="/ibi_html/javaassist/ibi/html/js/ibigbl.js" type=text/javascript></SCRIPT>
<SCRIPT id=ibigblloadCss type=text/javascript>
ibigblloadCss(null);</SCRIPT>
<SCRIPT id=clientEventHandlersJS type=text/javascript>
//Begin function window_onload
function window_onload() {
UpdateData();
// TODO: Add your event handler code here
//add onInitialUpdate() function to make changes before initial run of the reports
}
//End function window_onload

//Begin function button1_OnClick
function button1_OnClick(ctrl) {
// TODO: Add your event handler code here
OnExecute(ctrl)
}
//End function button1_OnClick
</SCRIPT>
<SCRIPT for=window eventname="onload">window.onload = function() { window_onload(); }</SCRIPT>
</HEAD>
<BODY>
<!--startibiitems-->
<div id="div2" style="z-index:-1000; top: 80;">
<FORM onsubmit=SaveValues() method=post name ="form">
<INPUT type=hidden value=C1P_TEST1 name ="IBIF_ex">
<INPUT id=IBIAPP_app type=hidden value=C1P name ="IBIAPP_app">
<INPUT NAME="RANDOM" TYPE="HIDDEN" VALUE="!IBI.AMP.RANDOM;">
<table>
<tr>
<td>[b]Country[/b]</td>
<td>[b]Car[/b]</td>
</tr>
  <tr>
    <td>
<SELECT id=combobox2 tabIndex=8 size=1 name=COUNTRY dfformat="A4" ibiformat="A4" addalloption="1" accept="0" operation displayfield="COUNTRY" datafield="COUNTRY" selectedvalue datasource="CAR.mas" boundtovariable="1" requiredfield="1468626" datatype="1" sourcetype="typeMaster" cacheruntimedata="1" inchainindex="1" chainnumber="0" dynalldisplayvalue="ALL" newchainnumber="0"></SELECT>
</td>
<td>
<SELECT id=combobox4 tabIndex=12 size=1 name=CAR dfformat="A50" ibiformat="A50" addalloption="1" accept="0" operation displayfield="CAR" datafield="CAR" selectedvalue datasource="CAR.mas" boundtovariable="1" requiredfield="1468626" datatype="1" sourcetype="typeMaster" cacheruntimedata="1" inchainindex="2" chainnumber="0" dynalldisplayvalue="ALL" newchainnumber="0"></SELECT>
</td>
</tr>
<tr><td>
<INPUT type=submit value=Submit name ="button4" elementname="button4" elementtype="button" targetname targettype="0" onclickset="0" sourcetype="typeUrl"></td>
<td>
<INPUT type=reset value=Reset name ="button5" elementname="button5" elementtype="button" targetname targettype="0" onclickset="0" sourcetype="typeUrl">
</td></tr></table></p>
</FORM>
</div>
<SCRIPT type=text/javascript>
<!--
window.chain0=new Array(1);
window.chain0[0]=new String("combobox2;combobox4");
window.chain0[1]=1
//-->
</SCRIPT>
<!--endibiitems-->
!IBI.FIL.DATA1;
</BODY>
</HTML>

-HTMLFORM END

This message has been edited. Last edited by: Tewy,


WF 7.6.11
Output: HTML, PDF, Excel
December 01, 2009, 10:35 AM
Tony A
Tewy,

Generate the random number in the HTML JavaScript just before doing a document.form.submit(); to ensure that the random number is unique (ish) for each call.

The idea is to ensure that the URL generated is unlikely to have been called from the client machine before, thus forcing it to be read afresh upon execution and not fed from cache - which we all know MSIE is crap at!

T



In FOCUS
since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2  
WebFOCUS App Studio 8.2.06 standalone on Windows 10