Focal Point Banner


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.


Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [SOLVED] Date Interval Chaining w/ HTML Composer

Read-Only Read-Only Topic
Go
Search
Notify
Tools
[SOLVED] Date Interval Chaining w/ HTML Composer
 Login/Join
 
Member
posted
I'm trying to chain two calendar controls (begin/end date), set to relative YYMD format, to a chain of listbox controls. I need the listbox content to filter based on a given date interval. Which means the listbox should only display content selections that exist within that time frame. This seems simple enough, but I believe the real obstacle lies in chaining two controls to one control. As well as referencing a valid date parameter that's tied to the date controls.

Though the CAR file doesn't have a date field, I've made a sample html page to illustrate my desired output. The two calender controls should have to start at the top of the chain to filter the following controls accordingly. The first picture displays the parameter tab layout for the chain. Assuming COUNTRY, CAR, MODEL will only display values that exist within that date range, the second picture looks similar to what I need.

Listbox1 will use an external procedure that includes two unformatted fields for begin/end date and two where statements ( WHERE CAR.BEGIN_DATE GT &bd; WHERE CAR.END_DATE LT &ed; ).





I've searched the forums extensively, but haven't found a topic tailored to this particular case. If you need to see anything else let me know. Thanks in advance.

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


WebFOCUS 7.7.03
Dev Studio 7.7.03
Windows 7
ALL Outputs

 
Posts: 14 | Location: Upland, IN | Registered: March 26, 2013Report This Post
Expert
posted Hide Post
1) I don't see any ilustrations.
2) Please post the code which you have already created, or a link to it.
3) Consider using a fex to populate the first chained listbox (which comes after the two calendar controls) which uses the values from the calendar controls as the inputs / filters.
 
Posts: 3132 | Location: Tennessee, Nashville area | Registered: February 23, 2005Report This Post
Member
posted Hide Post
Thanks Doug,

There should be a couple pictures shown on my post, as they are visible to me. Maybe your view settings are different from mine? I am using an external procedure (fex) to populate the first chained listbox, which comes after the two calendar controls. The fex code will follow the same format as this...
 
TABLE FILE CAR
SUM FST.COUNTRY
BY COUNTRY
WHERE BEGIN_DATE GE &BEGIN_DATE;
WHERE END_DATE LE &END_DATE;
ON TABLE PCHOLD FORMAT XML
END
 

The calendar controls are pointing to two parameters (bd/ed) which are used to filter my graph when ran. The question is, what should I use to reference the calendar control values for my fex where statements and is the above syntax appropriate?

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


WebFOCUS 7.7.03
Dev Studio 7.7.03
Windows 7
ALL Outputs

 
Posts: 14 | Location: Upland, IN | Registered: March 26, 2013Report This Post
Member
posted Hide Post
quote:
Originally posted by Doug:
1) I don't see any ilustrations.
2) Please post the code which you have already created, or a link to it.
3) Consider using a fex to populate the first chained listbox (which comes after the two calendar controls) which uses the values from the calendar controls as the inputs / filters.

Doug here are direct links to the images I posted.

Parameters Tab (Chain Visual)
Desired Output
Listbox1 External Procedure

Also.. I'd post the code here but I've been advised not to modify the code in HTML Composer, as it screws with the GUI build. Overall I'm trying to chain two calendar controls that represent a date range, to a listbox that filters its values within that range. If anyone knows a successful method to doing this could you showcase your build? I've been stuck on this for quite some time..

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


WebFOCUS 7.7.03
Dev Studio 7.7.03
Windows 7
ALL Outputs

 
Posts: 14 | Location: Upland, IN | Registered: March 26, 2013Report This Post
Virtuoso
posted Hide Post
quote:
I'd post the code here but I've been advised not to modify the code in HTML Composer, as it screws with the GUI build.


How does that prevent you from posting the code? Just copy it from the text view of HTML Composer and paste it here between a couple of code tags. You're not modifying anything doing that.

There are claims that what you're attempting is possible; to have multiple links to a control from different other controls. It involves applying some kind of voodoo to the link logic, but I've never been able to pull that off. As far as I'm concerned, that just doesn't work.


WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010
: Member of User Group Benelux :
 
Posts: 1669 | Location: Enschede, Netherlands | Registered: August 12, 2010Report This Post
Member
posted Hide Post
quote:
How does that prevent you from posting the code? Just copy it from the text view of HTML Composer and paste it here between a couple of code tags. You're not modifying anything doing that.


Here it is.

 <HTML>
<HEAD>
<META id=mycharsetmeta content="text/html; charset=ISO-8859-1" http-equiv=Content-Type>
<META id=Generation content="Created in release 7703, Generation 3.0">
<SCRIPT id=IBI_RelCallBack type=text/javascript>function AdjustChildrenPosition(){
}
</SCRIPT>

<SCRIPT id=IBI_OptionsScript type=text/javascript>
var cgipath = "cgipath";
var ibirls = "ibirls3";

var rltdyncalendar = "rltdyncalendar";
var gmap = "ibigmap";
var olap="olap";
var olappanebase="olappanebase";
var olapdrill="olapdrill";

var ibixmltree="ibixmltree";

var ibiOptions = new Array(cgipath,ibirls,rltdyncalendar);
</SCRIPT>

<SCRIPT id=IBI_nls type=text/javascript src="/ibi_html/javaassist/nls.js"></SCRIPT>

<SCRIPT id=IBI_nlsVars type=text/javascript src="/ibi_html/javaassist/nlsvars.js"></SCRIPT>

<SCRIPT id=IBI_ibigbl type=text/javascript src="/ibi_html/javaassist/ibi/html/js/ibigbl.js"></SCRIPT>

<SCRIPT id=IBI_ibigblloadCss type=text/javascript>
ibigblloadCss(null);
addIntlTranslatedJS("composertrans.js");
</SCRIPT>
<TITLE>HtmlPage</TITLE>
<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
</SCRIPT>

<SCRIPT for=window type=text/javascript eventname="onload">window.onload = function() { window_onload(); }</SCRIPT>
</HEAD>
<BODY style="OVERFLOW: auto" edaconnectionrequired="true" nextelementuniquenumber="15" thumbnailscale="3" elementtype="21">
<FORM style="Z-INDEX: 19; POSITION: absolute; WIDTH: 370px; HEIGHT: 610px; TOP: 0px; LEFT: 0px" id=form2 onsubmit="OnExecute(this);return false;" method=post tempheight="674" tempwidth="402" persistentuniqueid="compUid_14" fexlist_list="graph1" form_newline_chain="1" default_slider_type="4" form_type="1" form_prompt_location="1" form_number_of_visible_rows="4" form_number_of_columns="4" vert_dist_between_controls="10" form_hor_dist_between_controls="10" form_dist_between_desc_and_input="10" requests_list="0" name="form2">
<INPUT style="BACKGROUND-IMAGE: url(htmlpathsub/javaassist/ibi/html/describe/run16.gif); Z-INDEX: 20; POSITION: absolute; BACKGROUND-COLOR: lavender; WIDTH: 38px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 22px; TOP: 580px; LEFT: 20px" id=form2Submit tabIndex=18 value=" " type=submit StyleBack_UserSuppliedFullPath="1" defaultselection="1" name="submit2"> 
<INPUT style="BACKGROUND-IMAGE: url(htmlpathsub/javaassist/ibi/html/describe/reset.gif); Z-INDEX: 21; POSITION: absolute; BACKGROUND-COLOR: lavender; WIDTH: 38px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 22px; TOP: 580px; LEFT: 70px" id=form2Reset tabIndex=19 value=" " type=reset StyleBack_UserSuppliedFullPath="1" defaultselection="1" name="reset2"> 
<SELECT style="Z-INDEX: 17; POSITION: absolute; WIDTH: 180px; HEIGHT: 160px; TOP: 80px; LEFT: 180px" id=listbox2 tabIndex=16 multiple size=3 persistentuniqueid="compUid_9" defaultselection="1" name="listbox2"></SELECT> 
<INPUT style="Z-INDEX: 7; POSITION: absolute; OVERFLOW-Y: visible; WIDTH: 140px; HEIGHT: 22px; OVERFLOW: visible; TOP: 30px; LEFT: 10px" id=calendar1 tabIndex=6 hspace=0 value=!IBI.AMP.BEGDT; size=5 elementtype="14" persistentuniqueid="compUid_1" defaultselection="1" defaultlocation="0,0,22,77" boundtovariable="1" requiredfield="1" name="calendar1"> 
<INPUT style="Z-INDEX: 9; POSITION: absolute; OVERFLOW-Y: visible; WIDTH: 160px; HEIGHT: 22px; OVERFLOW: visible; TOP: 30px; LEFT: 180px" id=calendar2 tabIndex=8 hspace=0 value=!IBI.AMP.ENDDT; size=5 elementtype="14" persistentuniqueid="compUid_2" defaultselection="1" defaultlocation="0,0,22,77" boundtovariable="1" requiredfield="1" tempatt_lastelement_ofline="1" name="calendar2"> 
<SELECT style="Z-INDEX: 16; POSITION: absolute; WIDTH: 160px; HEIGHT: 160px; TOP: 80px; LEFT: 10px" id=listbox1 tabIndex=15 multiple size=3 persistentuniqueid="compUid_8" defaultselection="1" name="listbox1"></SELECT> 
<SELECT style="Z-INDEX: 18; POSITION: absolute; WIDTH: 350px; HEIGHT: 310px; TOP: 260px; LEFT: 10px" id=listbox3 tabIndex=17 multiple size=3 persistentuniqueid="compUid_10" defaultselection="1" name="listbox3"></SELECT> 
<SPAN style="Z-INDEX: 15; POSITION: absolute; WIDTH: 110px; HEIGHT: 20px; TOP: 60px; LEFT: 180px" id=text2 tabIndex=14 persistentuniqueid="compUid_6">sub_mod</SPAN> 
<SPAN style="Z-INDEX: 14; POSITION: absolute; WIDTH: 110px; HEIGHT: 20px; TOP: 60px; LEFT: 10px" id=text1 tabIndex=13 defaultselection="1">mod</SPAN> 
<LABEL style="Z-INDEX: 8; POSITION: absolute; WIDTH: 16px; HEIGHT: 19px; CURSOR: default; TOP: 10px; LEFT: 180px" id=label2 tabIndex=7 for=calendar2 name="calendar2">ed</LABEL> 
<LABEL style="Z-INDEX: 6; POSITION: absolute; WIDTH: 17px; HEIGHT: 19px; CURSOR: default; TOP: 10px; LEFT: 10px" id=label1 tabIndex=5 for=calendar1 name="calendar1">bd</LABEL> 
<LABEL style="Z-INDEX: 10; POSITION: absolute; WIDTH: 48px; HEIGHT: 19px; CURSOR: default; TOP: 240px; LEFT: 10px" id=label3 tabIndex=9 for=listbox1 name="listbox1">dw_job</LABEL></FORM>
<IFRAME style="Z-INDEX: 22; POSITION: absolute; WIDTH: 530px; HEIGHT: 370px; TOP: 10px; LEFT: 380px" id=graph1 title=test_runtime.fex tabIndex=20 src="" scrolling=no elementtype="3" persistentuniqueid="compUid_15" requests_list="0" HEIGHTOLD="370" WIDTHOLD="530" size_to_fit="1" autoExecute="False" name="graph1"></IFRAME>   
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=layoutinfo type=hidden resourcectrlids="form2Submit;form2Reset">
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=ibiapp_app value=zach_shanks type=hidden name="ibiapp_app">
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=ibic_server value=EDASERVE type=hidden isdataserversarea="1" name="ibic_server">
<xml id=focus_xmlelement>
<script type="text/xml" nextelementuniquenumber="23">
	
<rootxmlnode focoption="_FOC_NULL" top="100" left="10" width="150" height="130">
		
<variables>
			
<variable controltype="7" parametercreatedinreslay="0" type="unresolved" desc="bd" name="bd" default="" textvarname="" accept="0" select="0" create="1" top="70" left="30" width="60" height="20" inbinding="1">
				
<link linktype="default" persistentuniqueid="compUid_20" from="compUid_1">
					
<condition default="1" name="Default" whattodowithcontrol="4" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						
<data_info checkForDuplicateValues="0" displayfield="bd" datafield="bd" datasource="sqlout.mas" datatype="0" selectedvalue="" operation="" slider_range_from="" slider_range_to="" previewvalue="" sourcetype="typeMaster" linktype="none"></data_info></condition></link>
				
<requestid id="0"></requestid></variable>
			
<variable controltype="7" parametercreatedinreslay="0" type="unresolved" desc="ed" name="ed" default="" textvarname="" accept="0" select="0" create="1" top="70" left="470" width="60" height="20" inbinding="1">
				
<link linktype="default" persistentuniqueid="compUid_19" from="compUid_2">
					
<condition default="1" name="Default" whattodowithcontrol="4" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						
<data_info checkForDuplicateValues="0" displayfield="ed" datafield="ed" datasource="sqlout.mas" datatype="0" selectedvalue="" operation="" slider_range_from="" slider_range_to="" previewvalue="" sourcetype="typeMaster" linktype="none"></data_info></condition></link>
				
<requestid id="0"></requestid></variable>
			
<variable controltype="9" parametercreatedinreslay="0" type="unresolved" desc="dw_job" name="dw_job" default="" textvarname="" accept="0" select="1" create="1" top="70" left="360" width="60" height="20" inbinding="1">
				
<link linktype="default" persistentuniqueid="compUid_22" from="compUid_10">
					
<condition default="1" name="Default" whattodowithcontrol="4" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						
<data_info checkForDuplicateValues="0" displayfield="dw_job" datafield="dw_job" datasource="SQLOUT.mas" datatype="1" selectedvalue="" operation="OR" slider_range_from="" slider_range_to="" previewvalue="" linktype="none"></data_info></condition></link>
				
<requestid id="0"></requestid></variable></variables>
		
<input_controls>
			
<input_control bindcontrolid="compUid_1" elementtype="14" name="calendar1" id="calendar1" multiple="0" inbinding="1" top="20" left="30" width="60" height="20" onetimepopulated="1">
				
<link linktype="default" persistentuniqueid="compUid_2">
					
<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						
<data_info checkForDuplicateValues="0" datatype="0" datasource="" addalloption="0" sourcetype="typeMaster" cacheruntimedata="0" calendardata="0/0/-10;0/0/0" calendardatatype="1" ibiformat="YYMD" accept="0" operation="NONE" selectedvalue="" displayfield="" datafield="" modifiedrequest="1">
							
<![CDATA[]]>
							
<static_values>
<static value="!IBI.AMP.BEGDT;" display="!IBI.AMP.BEGDT;" selected="1" noinput="0"></static></static_values></data_info></condition></link></input_control>
			
<input_control bindcontrolid="compUid_2" elementtype="14" name="calendar2" id="calendar2" multiple="0" inbinding="1" top="20" left="470" width="60" height="20" onetimepopulated="1">
				
<link linktype="default" persistentuniqueid="compUid_1">
					
<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						
<data_info checkForDuplicateValues="0" datatype="0" datasource="" addalloption="0" sourcetype="typeMaster" cacheruntimedata="0" calendardata="0/0/-10;0/0/0" calendardatatype="1" ibiformat="YYMD" accept="0" operation="NONE" selectedvalue="" displayfield="" datafield="" modifiedrequest="1">
							
<![CDATA[]]>
							
<static_values>
<static value="!IBI.AMP.ENDDT;" display="!IBI.AMP.ENDDT;" selected="1" noinput="0"></static></static_values></data_info></condition></link></input_control>
			
<input_control bindcontrolid="compUid_8" elementtype="9" name="listbox1" id="listbox1" multiple="1" inbinding="1" top="20" left="130" width="60" height="20" onetimepopulated="0">
				
<link linktype="default" persistentuniqueid="compUid_10" from="compUid_2">
					
<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						
<data_info checkForDuplicateValues="0" sourcetype="typeFex" datatype="1" modifiedrequest="1" datasource="del.fex" displayfield="DW_MODULE" datafield="DW_MODULE" ibiapp_app="zach_shanks" addalloption="1" dynalldisplayvalue="ALL">
							
<![CDATA[]]></data_info></condition></link>
				
<link linktype="none" from="compUid_1">
					
<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0" resolveparameterfq="bd" resolveparameter="bd">
						
<data_info checkForDuplicateValues="0"></data_info></condition></link></input_control>
			
<input_control bindcontrolid="compUid_9" elementtype="9" name="listbox2" id="listbox2" multiple="1" inbinding="1" top="20" left="250" width="60" height="20" onetimepopulated="0">
				
<link linktype="default" persistentuniqueid="compUid_11" from="compUid_8">
					
<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0" resolveparameterfq="DW_MODULE" resolveparameter="DW_MODULE">
						
<data_info checkForDuplicateValues="0" sourcetype="typeFex" datatype="1" modifiedrequest="1" datasource="filsubmodule.fex" displayfield="SUB_MODULE" datafield="SUB_MODULE" ibiapp_app="zach_shanks" addalloption="1" dynalldisplayvalue="ALL">
							
<![CDATA[]]></data_info></condition></link></input_control>
			
<input_control bindcontrolid="compUid_10" elementtype="9" name="listbox3" id="listbox3" multiple="1" inbinding="1" top="20" left="360" width="60" height="20" onetimepopulated="0">
				
<link linktype="default" persistentuniqueid="compUid_12" from="compUid_9">
					
<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0" resolveparameterfq="SUB_MODULE" resolveparameter="SUB_MODULE">
						
<data_info checkForDuplicateValues="0" sourcetype="typeFex" datatype="1" modifiedrequest="1" datasource="filjob.fex" displayfield="DW_JOB" datafield="DW_JOB" ibiapp_app="zach_shanks" addalloption="0" dynalldisplayvalue="ALL" selectedvalue="" accept="0" operation="OR">
							
<![CDATA[]]></data_info></condition></link></input_control></input_controls>
		
<other_bound_objects></other_bound_objects>
		
<requests nextrequestsid="1">
			
<request requestid="0" targettype="iframe" targetname="graph1" sourcetype="typeFex" ibif_ex="test_runtime.fex" ibiapp_app="zach_shanks" activereport="0" reportcolumns="" reportrealcolumns=""></request></requests></rootxmlnode></script>
</xml></BODY>
<SCRIPT id=IBI_loadcalendar type=text/javascript>
if(ibigblInitInfo.testOptions(rltdyncalendar)){
     setDateRange();
     setupDocCalendars();
}</SCRIPT>

<SCRIPT id=IBI_loader type=text/javascript>
doBeforeLoad();
</SCRIPT>
</HTML> 

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


WebFOCUS 7.7.03
Dev Studio 7.7.03
Windows 7
ALL Outputs

 
Posts: 14 | Location: Upland, IN | Registered: March 26, 2013Report This Post
Virtuoso
posted Hide Post
This may help.


- Jack Gross
WF through 8.1.05
 
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005Report This Post
Member
posted Hide Post
Sorry, I thought the images could explain the concept better and I wasn't sure it was safe to post the original code but I just got permission. In addition, If there's another way to filter a date range for my chain controls without using multiple links to a control, I'd be more than happy to use that as well. This just appears to be the only way... Does anyone know such sorcery!? Eeker


WebFOCUS 7.7.03
Dev Studio 7.7.03
Windows 7
ALL Outputs

 
Posts: 14 | Location: Upland, IN | Registered: March 26, 2013Report This Post
Virtuoso
posted Hide Post
Well... I sort of do know such sorcery.
I created our own javascript library for dealing with launch-pages that fetches form element contents by calling the Adhoc-fex directly with a fragment of user-provided WebFOCUS code.

At one hand, it is far more flexible than what HTML Composer offers; it can deal with form controls with input from several other form controls and vice versa and supports much more flexible embedded procedures (anything goes, really).
OTOH, it's still incomplete (haven't worked on it for a while now), requires that you know how to hand-code HTML pages and requires some hand-coded embedded XML (which is fairly simple, but it won't work without or with errors in it) - no convenient WYSISYG editor, I'm afraid. It's also mostly undocumented...

Oh, and deploying that HTML using Developer Studio will only make you giggle. Or cry. DS breaks it trying to "adjust" paths (that don't need adjusting) to how they are on the server and meanwhile change a whole bunch of content to things that are not very standards compliant.

That is the way we went for such cases. They're lucky to have me here Smiler


WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010
: Member of User Group Benelux :
 
Posts: 1669 | Location: Enschede, Netherlands | Registered: August 12, 2010Report This Post
Virtuoso
posted Hide Post
HTML Composer's calendar control consists of two parts
-- an INPUT control (part of the generated static HTML: ID=calendar1 etc.) for the resulting parameter value string
and
-- the calendar widget (the icon and associated functionality dynamically added by the "setupDocCalendars();" call at the bottom of the file) that allows the user to select a date and updates the INPUT control accordingly.

Unfortunately, the browser does not fire an onchange of the INPUT control when it is altered programmatically. It would help a lot if IBI would trigger an "onchange" event in the INPUT control whenever the widget stuffs a new value there. Until then, there are methods to accomplish that. See the article, for example.

SO:
- create two hidden inputs, bd and ed,
- associate the parameters &bd and &ed with them
- reconstruct the chain as bd -> ed -> listbox1 ...
When value of either calendar1 or 2 changes,
* copy them both to bd and ed, respectively,
using IbComposer_getCurrentSelection() and IbComposer_setCurrentSelection()
* trigger refresh of the chain from listbox1 and onward,
using IbComposer_ResetDownChainControls()

Note that the "refresh" of ed (second in the chain) will never be triggered, so it does not matter how you define it -- but the chaining ensures that both parameters will be fed to the fex that refreshes listbox1.



Let us know how you fare.
 
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005Report This Post
Member
posted Hide Post
Perfect. Looks like your approach did the trick jgross. Thank you!

First, I created two textbox controls (set to hidden) associated with parameters &bd/&ed. Instead of using the linear chain bd -> ed -> listbox1, I was actually able to chain the textbox controls to listbox1 using separate links bd -> listbox1 <- ed.. So yes, you can employ multiple links to a single control provided certain conditions are met. Check out the procedure "How to Use Controls to Populate Another Control Based on Selected Values", on page 246, for a good example of this.



I used the "setInterval()" method within the article jgross cited above, to detect a change within calendar controls. I could then copy the values over to their respective textbox controls. For some reason, "getCurrentSelection()" and "setCurrentSelection()" didn't work properly, so I had to use "getElementById()" instead. This may have something to do with formatting issues, but I'm not sure. Last, I triggered the "ResetDownChainControls()" function from the textbox controls to refresh the chain. This works like a charm. Will definitely be using more javascript in composer for times to come. Here's the code...
 
function onInitialUpdate(){
	checkDate();
}
 
function checkDate(){
	var bdOld = document.getElementById('calendar1').value;
	var edOld = document.getElementById('calendar2').value;
	document.getElementById('edit1').value = bdOld;
	document.getElementById('edit2').value = edOld;
	IbComposer_ResetDownChainControls('edit1');
	IbComposer_ResetDownChainControls('edit2');
  	setInterval(function(){
		var bdCur = document.getElementById('calendar1').value;
		var edCur = document.getElementById('calendar2').value;
		if (bdCur!=bdOld){
			bdOld = bdCur;
			document.getElementById('edit1').value = bdOld;
			IbComposer_ResetDownChainControls('edit1');
		}
		if (edCur!=edOld){
			edOld = edCur;
			document.getElementById('edit2').value = edOld;
			IbComposer_ResetDownChainControls('edit2');
		}
	}, 100);
}
 


Thanks again guys, you rock Cool

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


WebFOCUS 7.7.03
Dev Studio 7.7.03
Windows 7
ALL Outputs

 
Posts: 14 | Location: Upland, IN | Registered: March 26, 2013Report This Post
Silver Member
posted Hide Post
I think there is no need for hidden controls or JavaScript. See http://geekswithblogs.net/BI4f...controls-to-one.aspx


WebFOCUS 8.0.0.8, Windows 7
 
Posts: 36 | Location: Portland, OR (USA) | Registered: October 11, 2012Report This Post
Member
posted Hide Post
Thanks all the gurus, I was looking for this solution...


WebFOCUS 8.0
 
Posts: 3 | Registered: May 01, 2014Report This Post
  Powered by Social Strata  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [SOLVED] Date Interval Chaining w/ HTML Composer

Copyright © 1996-2020 Information Builders