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     [CLOSED]Backward Chaining Parameters using AJAX
Page 1 2 

Read-Only Read-Only Topic
Go
Search
Notify
Tools
[CLOSED]Backward Chaining Parameters using AJAX
 Login/Join
 
Master
posted Hide Post
quote:
Originally posted by zcbillions:
So if I create functions for my all of listboxes how can I make them dependant on each other?

This is where everything starts breaking down. Read this entire thread again.

Since you do not want to chain from left to right -- something you can easily do in App Studio without using AJAX -- everything becomes difficult.

At this point, I would recommend you give more detail about what a user is supposed to see and what you expect to happen when they click something.

You can use the CAR file as an example. Use App Studio to create a left-to-right chain with four controls: Country, Car, Model and Bodytype.

Show me what is supposed to happen to the other controls when the user selects a Model. What happens if you allow the user to select more than one Model? Should Country, Car and Bodytype all be filtered? If so, should they still have an "ALL" option, even though they are filtered? Does "ALL" mean all filtered values or all possible values?

If Country, Car and Bodytype are all filtered, what happens when the user selects a filtered Country? Do we now filter Car, Model and Bodytype? If we do, the choices in Model will change. What happens if one of the selections initially made in Model disappears as a result of the filtering that happened there when the user clicked one of the filtered Country selections?

Please give a step-by-step example of what one of your users is expecting to happen if they were using this CAR file example.

You need to start with a good design before trying to program anything. Because if the design is faulty the time spent programming is a complete waste.


App Studio
WebFOCUS 8.1.05M
Windows, All Outputs
 
Posts: 594 | Location: Michigan | Registered: September 04, 2015Report This Post
Master
posted Hide Post
Squatch,

The point your trying to make aside, I think we can assume that he wants an "Excel Auto Filter" experience. A change in any one filter affects all of the other filters on the page. I get the point you are trying to make, but this poor guy doesn't have the option of do nothing. So he needs to do something. Also, realize that this functionality exists in a lot of places out there. Look at how it works with Amazon, or really any distributor that has groups of options you can select from. Its the same thing. So as much as we may not enjoy working through this logic, these are definitely normal things to do.

So if we assume the "Excel Auto Filter" approach, you will essentially have your individual filters (technically there is a way to create only one... but that really depends on your setup, so we will assume individual filters).

 
<Script>
function runA(valueB, valueC, valueD){
code here
}
function runB(valueA, valueC, valueD){
code here
}
function runC(valueB, valueA, valueD){
code here
}
function runD(valueB, valueC, valueA){
//only a sample....
$.ajax({
      type: "GET",
      url: "/ibi_apps/WFServlet.ibfs?IBFS1_action=RUNFEX&IBFS_path=/WFC/Repository/BIDEV/~sharpet/wf_forum_populate_control_country.fex",{
            COUNTRY: valueA,
            CAR: valueB,
            MODEL: valueC,
            },   
      cache: false,
      dataType: "xml",
      error: function(jqXHR, textStatus, errorThrown) {
          alert(textStatus + ": " + errorThrown);
      },
      success: function(xml) {
          $(xml).find("tr").each(function(index){
              $(this).find("td").each(function(index) {
                  var name = $(this).text();
                  switch(index) {
                      case 0: $("select[id=selectD]").append("<option value=\"" + name + "\">" + name);
                              break;
                  }
              });
          });
      }
  });
}
function updateAll(){
valueA = getElementById(selectA).value;
valueB = getElementById(selectB).value;
valueC = getElementById(selectC).value;
valueD = getElementById(selectD).value;

runA(valueB, valueC, valueD);
runB(valueA, valueC, valueD);
runC(valueB, valueA, valueD)
runD(valueB, valueC, valueA)

}
</script> 
</head>
<body>
<select id=selectA onChange=updateAll();></select>
<select id=selectB onChange=updateAll();></select>
<select id=selectC onChange=updateAll();></select>
<select id=selectD onChange=updateAll();></select>


I don't have time to code this out so that it actually works, but this would essentially be the idea. I would probably use the built in IBI functions for getting select values as that already has the multi-select support built in. Otherwise you would have to build a function to gather all of the selected values first, and then passing them on.

If you are concerned with squatch's example where if you were to have filters Country and Car as multi-select. And you first Selected ENGLAND and JAPAN as your country values, then go to Select Jaguar. Then your original Country selection of JAPAN would disappear along with the ability to chose Datsun. To get around this, I would trigger the updateAll function when the multi-select loses focus. That way the user could Select Datsun and Jaguar before the filters run.

One other thing I would do is create a clear function so you could clear each filter individually, and also have a reset button to clear all of the selections. Is this perfect? no, but unless you feel like building the Cadillac, it will work.


Eric Woerle
8.1.05M Gen 913- Reporting Server Unix
8.1.05 Client Unix
Oracle 11.2.0.2
 
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013Report This Post
Master
posted Hide Post
quote:

So if we assume the "Excel Auto Filter" approach...

But is that what his users are expecting?

You can populate the other select controls, but how do you make the user select a choice from those filtered controls? Do you place an "ALL" in there with special code to choose the filtered values if the user does not decide to select anything?

The IBI functions for getting select values will not work if the user has not selected anything.

This is way more complex than just pretending that something "quick and dirty" will work. There is a very fundamental and complex design problem here, and Amazon is not really running their site based on select drop down controls. What they are doing is very dynamic and hyperlink driven for the most part.

If you ever come up with a working example, I would love to see it.


App Studio
WebFOCUS 8.1.05M
Windows, All Outputs
 
Posts: 594 | Location: Michigan | Registered: September 04, 2015Report This Post
Virtuoso
posted Hide Post
Perhaps much of this logic is better/easier implemented as drilldowns in the report? A drilldown can just as well be a drillup with some/all of the other filters removed.


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
Master
posted Hide Post
Here is a basic example of how this could work. All drop downs get updated when any value is selected. zcbillions would need to decide his specific needs, but it works and can be enhanced to be as complex as it needs to be. I created this using the document composer. I added all the drop downs through the tool without chaining. Then I created the java script functions and applied the same updateFilters() function to the onchange event for each filter.

Procedure UNIFI1000.fex - Car Report
 
-DEFAULT &COUNTRY = '_FOC_NULL';
-DEFAULT &CAR = '_FOC_NULL';
-DEFAULT &MODEL = '_FOC_NULL';

TABLE FILE CAR
PRINT COUNTRY CAR MODEL BODYTYPE DEALER_COST RETAIL_COST SALES
WHERE COUNTRY EQ &COUNTRY.QUOTEDSTRING
WHERE CAR EQ &CAR
WHERE MODEL EQ &MODEL.QUOTEDSTRING
END

 


Procedure UNIFI9000.fex - Country Drop Down
 
-DEFAULTH &CAR = '_FOC_NULL';
-DEFAULTH &MODEL = '_FOC_NULL';

TABLE FILE CAR
PRINT COUNTRY
BY COUNTRY
WHERE CAR EQ &CAR
WHERE MODEL EQ &MODEL
ON TABLE PCHOLD FORMAT XML
END
 


Procedure UNIFI9001.fex - Car Drop Down
-DEFAULTH &COUNTRY = '_FOC_NULL';
-DEFAULTH &MODEL = '_FOC_NULL';

TABLE FILE CAR
PRINT  CAR
BY CAR
WHERE COUNTRY EQ &COUNTRY.QUOTEDSTRING
WHERE MODEL EQ &MODEL
ON TABLE PCHOLD FORMAT XML
END

  


Procedure UNIFI9002.fex - Model Drop Down
-DEFAULTH &COUNTRY = '_FOC_NULL';
-DEFAULTH &CAR = '_FOC_NULL';

TABLE FILE CAR
PRINT MODEL
BY MODEL
WHERE COUNTRY EQ &COUNTRY.QUOTEDSTRING
WHERE CAR EQ &CAR
ON TABLE PCHOLD FORMAT XML
END

  


HTM File UNIFI1001.htm
 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD>
<META id=RLT_STANDARDS_MODE_META http-equiv=X-UA-Compatible content=IE=9>
<META name=mycharsetmeta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
<META name=Generation content="Created in release 8105, Generation 3">
<SCRIPT type=text/javascript>//confidential_id=IBI_OptionsScript
var szHtmlAlias="./ibi_html";var szRunTimeHtmlAlias="runTimeHtmlAlias";var cgipath="cgipath";var ibirls="ibirls3";var rltdyncalendar="rltdyncalendar";var map="ibimap";var olap="olap";var olappanebase="olappanebase";var olapdrill="olapdrill";var ibiOptions = new Array(cgipath,ibirls);var nlsScript="/javaassist/nls.js";var glbScript="/javaassist/ibi/html/js/ibigbl.js";var replacePart="<replace>";
var scriptTemplate='<SCRIPT src="'+replacePart+'" type="text/javascript"><\/SCRIPT>';if(typeof(szRunTimeHtmlAlias) === 'string' && szRunTimeHtmlAlias.indexOf('/') == 0)szHtmlAlias=szRunTimeHtmlAlias;document.write(scriptTemplate.replace(replacePart, szHtmlAlias + nlsScript));document.write(scriptTemplate.replace(replacePart, szHtmlAlias + glbScript));</SCRIPT>

<SCRIPT type=text/javascript>//confidential_id=IBI_ibigblloadCss
if(typeof ibigblloadCss === 'function'){ibigblloadCss(null);addIntlTranslatedJS("composertrans.js");}else {alert("JavaScript alias './ibi_html'  is not valid");window.location("about:blank");}</SCRIPT>
<TITLE>HtmlPage</TITLE><LINK id=ITEM2 rel=stylesheet type=text/css UserSuppliedFullPath="1" rtFileName="cgipathsub/ibi_html/javaassist/ibi/html/composer/themes/nonBindows/IBI-Themes/default_theme.css"><LINK id=IBI_THEME_CSS rel=stylesheet type=text/css UserSuppliedFullPath="1" desc="Information Builders" rtFileName="cgipathsub/ibi_html/javaassist/ibi/html/composer/themes/nonBindows/IBI-Themes/ibi.css">
<SCRIPT for=window type=text/javascript eventname="onload">window.onload = function() { window_onload(); }</SCRIPT>

<SCRIPT src="/approot/jquery-ui/js/jquery.js"></SCRIPT>

<SCRIPT src="/approot/jquery-ui/js/jquery-ui.js"></SCRIPT>

<SCRIPT>//confidential_id=clientEventHandlersJS

//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

function updateCountry(myCars, myModel, myCountry){

  
$.ajax({
      type: "GET",
      url: "/ibi_apps/WFServlet?&IBIMR_action=MR_RUN_FEX&IBIMR_sub_action=MR_STD_REPORT&IBIMR_fex=/WFC/Repository/folder1/UNIFI9000.fex", 
	  data: { MODEL: myModel, CAR: myCars},
      cache: false,
      dataType: "xml",
      error: function(jqXHR, textStatus, errorThrown) {
          alert(textStatus + ": " + errorThrown);
      },
      success: function(xml) {
		  var countrySelect = document.getElementById('combobox1');
			countrySelect.options.length = 0;
			countrySelect.options[0] = new Option ("All", "_FOC_NULL");
          $(xml).find("tr").each(function(index){
              $(this).find("td").each(function(index) {
                  var name = $(this).text();
                  switch(index) {
                      case 0: $("select[id=combobox1]").append("<option value=\"" + name + "\">" + name);
                              break;
                  }
              });
          });
	  		 IbComposer_setCurrentSelection('combobox1', myCountry, false);
		}
  });

}


function updateCar(myCountry, myModel, myCars){


$.ajax({
      type: "GET",
      url: "/ibi_apps/WFServlet?&IBIMR_action=MR_RUN_FEX&IBIMR_sub_action=MR_STD_REPORT&IBIMR_fex=/WFC/Repository/folder1/UNIFI9001.fex", 
	  data: { MODEL: myModel, COUNTRY: myCountry},
      cache: false,
      dataType: "xml",
      error: function(jqXHR, textStatus, errorThrown) {
          alert(textStatus + ": " + errorThrown);
      },
      success: function(xml) {
		  var carSelect = document.getElementById('listbox1');
			carSelect.options.length = 0;
			carSelect.options[0] = new Option ("All", "_FOC_NULL");
          $(xml).find("tr").each(function(index){
              $(this).find("td").each(function(index) {
                  var name = $(this).text();
                  switch(index) {
                      case 0: $("select[id=listbox1]").append("<option value=\"" + name + "\">" + name);
                              break;
							
                  }
              });
          });
			 IbComposer_setCurrentSelection('listbox1', myCars, false);
      }
  });
	
}

function updateFilters(){
	var values = IbComposer_getCurrentSelectionEx('listbox1');


	var myCars = '';
	var myCountry = document.getElementById("combobox1").value;
	var myModel = "'" + document.getElementById("combobox2").value + "'";
	var pushModel = document.getElementById("combobox2").value;

	for(var i = 0; i < values.length; i++)
	{
		if ( i > 0 ){
			myCars = myCars + " OR '" + values[i].getValue() + "'";
		}
		else { myCars = "'" + values[i].getValue() + "'"; }
	}

	updateModel(myCars, myCountry, pushModel);
	updateCountry(myCars, myModel, myCountry);
	updateCar(myCountry, myModel, values);


}

function updateModel(myCars, myCountry, myModel) {

$.ajax({
      type: "GET",
      url: "/ibi_apps/WFServlet?&IBIMR_action=MR_RUN_FEX&IBIMR_sub_action=MR_STD_REPORT&IBIMR_fex=/WFC/Repository/folder1/UNIFI9002.fex", 
	  data: { COUNTRY: myCountry, CAR: myCars},
      cache: false,
      dataType: "xml",
      error: function(jqXHR, textStatus, errorThrown) {
          alert(textStatus + ": " + errorThrown);
      },
      success: function(xml) {
		  var modelSelect = document.getElementById('combobox2');
			modelSelect.options.length = 0;
			modelSelect.options[0] = new Option ("All", "_FOC_NULL");
		  $("select[id=combobox2]").empty;
          $(xml).find("tr").each(function(index){
              $(this).find("td").each(function(index) {
                  var name = $(this).text();
                  switch(index) {
                      case 0: $("select[id=combobox2]").append("<option value=\"" + name + "\">" + name);
                              break;
                  }
              });
          });
			IbComposer_setCurrentSelection('combobox2', myModel, false);
      }
  });
}
//Begin function listbox1_onchange
function listbox1_onchange(ctrl) {
updateFilters();
}
//End function listbox1_onchange


//Begin function combobox1_onchange
function combobox1_onchange(ctrl) {
updateFilters();
}
//End function combobox1_onchange


//Begin function combobox2_onchange
function combobox2_onchange(ctrl) {
updateFilters();
}
//End function combobox2_onchange


</SCRIPT>
</HEAD>
<BODY class=IBI_PageBg style="OVERFLOW: auto" edaconnectionrequired="true" elementtype="21" thumbnailscale="4" maptype="0" nextelementuniquenumber="7">
	<IFRAME title=UNIFI1000.fex class="IBIfield IBI_Report-iFrame IBI_rounded_m" id=report1 style="HEIGHT: 650px; WIDTH: 1060px; POSITION: absolute; LEFT: 40px; Z-INDEX: 1; TOP: 312px" elementtype="2" requests_list="0" autoExecute="false" name="report1"></IFRAME>
	<FORM class="IBIfield IBI_ReportControlPanel IBI_rounded_m" id=form1 style="HEIGHT: 230px; WIDTH: 1060px; POSITION: absolute; LEFT: 40px; Z-INDEX: 2; TOP: 60px" onsubmit="OnExecute(this);return false;" method=post requests_list="0" form_dist_between_desc_and_input="10" form_hor_dist_between_controls="10" vert_dist_between_controls="10" form_number_of_columns="4" form_number_of_visible_rows="4" form_prompt_location="1" form_type="1" default_slider_type="4" form_newline_chain="1" fexlist_list="report1" persistentuniqueid="compUid_7" tempwidth="601" tempheight="332" name="form1">
		<LABEL class="IBIfield IBI_ReportControlLabel" id=label1 style="CURSOR: default; HEIGHT: 13px; WIDTH: 195px; POSITION: absolute; LEFT: 5px; Z-INDEX: 6; TOP: 5px" for=combobox1 name="">COUNTRY</LABEL>
		<SELECT tabIndex=4 class="IBIfield IBI_ReportControlTarget IBI_rounded_s" id=combobox1 language=javascript style="OVERFLOW: visible; WIDTH: 265px; OVERFLOW-Y: visible; POSITION: absolute; LEFT: 5px; Z-INDEX: 7; TOP: 28px" spellcheck=false onchange=combobox1_onchange(this) size=1 persistentuniqueid="compUid_1" requiredfield="1" boundtovariable="1" defaultlocation="0,0,17,103" defaultselection="1" addquotes="yes"></SELECT>
		<LABEL class="IBIfield IBI_ReportControlLabel" id=label2 style="CURSOR: default; HEIGHT: 13px; WIDTH: 172px; POSITION: absolute; LEFT: 308px; Z-INDEX: 8; TOP: 5px" for=listbox1 name="">CAR</LABEL>
		<SELECT tabIndex=5 class="IBIfield IBI_ReportControlTarget IBI_rounded_s" id=listbox1 language=javascript style="OVERFLOW: visible; HEIGHT: 132px; WIDTH: 272px; OVERFLOW-Y: visible; POSITION: absolute; LEFT: 308px; Z-INDEX: 9; TOP: 28px" spellcheck=false onchange=listbox1_onchange(this) size=3 multiple persistentuniqueid="compUid_2" requiredfield="1" boundtovariable="1" defaultlocation="0,0,42,101" defaultselection="1" addquotes="yes" operation="OR"></SELECT>
		<LABEL class="IBIfield IBI_ReportControlLabel" id=label3 style="CURSOR: default; HEIGHT: 13px; WIDTH: 35px; POSITION: absolute; LEFT: 619px; Z-INDEX: 10; TOP: 5px" for=mapcontrol1 name="">MODEL</LABEL>
		<INPUT tabIndex=1 class="IBIfield IBI_button IBI_btn-run" id=form1Submit style="HEIGHT: 22px; WIDTH: 38px; POSITION: absolute; LEFT: 5px; Z-INDEX: 3; TOP: 203px" type=submit value=" " name="submit1">
		<INPUT tabIndex=2 class="IBIfield IBI_button IBI_btn-reset" id=form1Reset style="HEIGHT: 22px; WIDTH: 38px; POSITION: absolute; LEFT: 91px; Z-INDEX: 4; TOP: 203px" type=reset value=" " name="reset1">
		<INPUT tabIndex=3 class="IBIfield IBI_button IBI_btn-schedule" id=form1Schedule style="HEIGHT: 22px; WIDTH: 38px; POSITION: absolute; LEFT: 134px; Z-INDEX: 5; TOP: 203px" onclick="OnExecute(this);return false;" type=button value=" " requests_list="2" persistentuniqueid="compUid_6" name="button1">
		<INPUT tabIndex=7 class="IBIfield IBI_button IBI_btn-defer" id=form1Defer style="HEIGHT: 22px; WIDTH: 38px; POSITION: absolute; LEFT: 48px; Z-INDEX: 12; TOP: 203px" onclick="OnExecute(this);return false;" type=button value=" " requests_list="1" persistentuniqueid="compUid_5" name="button2">
	</FORM>
	<SELECT tabIndex=8 class="IBIfield IBI_ReportControlTarget IBI_rounded_s" id=combobox2 language=javascript style="WIDTH: 300px; POSITION: absolute; LEFT: 660px; Z-INDEX: 13; TOP: 90px" onchange=combobox2_onchange(this) persistentuniqueid="compUid_4" defaultselection="1" addquotes="yes" name="combobox2"></SELECT> 
	<INPUT id=layoutinfo style="POSITION: absolute; LEFT: -100px; TOP: -100px" type=hidden schedulecontrolids="form1Schedule" resourcectrlids="ITEM2;IBI_THEME_CSS" name="inputhidden1">
	<INPUT id=ibiapp_app style="POSITION: absolute; LEFT: -100px; TOP: -100px" type=hidden value=folder1 ismre="1" name="ibiapp_app"><INPUT id=ibif_ex style="POSITION: absolute; LEFT: -100px; TOP: -100px" type=hidden value=/WFC/Repository/folder1/UNIFI1001.htm name="ibif_ex">
<xml id=focus_xmlelement>
	<script type="text/xml" nextelementuniquenumber="6"><rootxmlnode focoption="_FOC_NULL" top="100" left="10" width="150" height="130">
		<variables>
			<variable controltype="7" parametercreatedinreslay="0" type="default" desc="COUNTRY" name="COUNTRY" default="_FOC_NULL" textvarname="" accept="0" select="0" create="1" top="70" left="30" width="60" height="20" inbinding="1">
				<link linktype="default" from="compUid_1">
					<condition default="1" name="Default" whattodowithcontrol="4" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						<data_info datatype="0" modifiedrequest="0" displayfield="COUNTRY" ibiformat="A10" datafield="COUNTRY" datasource="car.mas" ibif_ex="car" selectedvalue="_FOC_NULL" operation="" slider_range_from="" slider_range_to="" previewvalue="_FOC_NULL" sourcetype="typeMaster">
							<static_values>
								<static value="_FOC_NULL" display="_FOC_NULL" selected="1" noinput="0"></static>
							</static_values>
						</data_info>
					</condition>
				</link>	
				<requestid id="1"></requestid>
				<requestid id="2"></requestid>
				<requestid id="0"></requestid>
			</variable>
			<variable controltype="7" parametercreatedinreslay="0" type="default" desc="CAR" name="CAR" default="_FOC_NULL" textvarname="" accept="0" select="0" create="1" top="70" left="140" width="60" height="20" inbinding="1">
				<link linktype="default" from="compUid_2">
					<condition default="1" name="Default" whattodowithcontrol="4" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						<data_info datatype="0" modifiedrequest="0" displayfield="CAR" ibiformat="A16" datafield="CAR" datasource="car.mas" ibif_ex="car" selectedvalue="_FOC_NULL" operation="" slider_range_from="" slider_range_to="" previewvalue="_FOC_NULL" sourcetype="typeMaster">
							<static_values>
								<static value="_FOC_NULL" display="_FOC_NULL" selected="1" noinput="0"></static>
							</static_values>
						</data_info>
					</condition>
				</link>
				<requestid id="1"></requestid>
				<requestid id="2"></requestid>
				<requestid id="0"></requestid>
			</variable>
			<variable controltype="7" parametercreatedinreslay="0" type="default" desc="MODEL" name="MODEL" default="_FOC_NULL" textvarname="" accept="0" select="0" create="1" top="70" left="250" width="60" height="20" inbinding="1">
				<link linktype="default" from="compUid_3" persistentuniqueid="compUid_2">
					<condition default="1" name="Default" whattodowithcontrol="4" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						<data_info datatype="0" modifiedrequest="0" displayfield="MODEL" ibiformat="A24" datafield="MODEL" datasource="car.mas" ibif_ex="car" selectedvalue="_FOC_NULL" operation="" slider_range_from="" slider_range_to="" previewvalue="_FOC_NULL" sourcetype="typeMaster" linktype="none">
							<static_values>
								<static value="_FOC_NULL" display="_FOC_NULL" selected="1" noinput="0"></static>
							</static_values>
						</data_info>
					</condition>
				</link>
				<requestid id="1"></requestid>
				<requestid id="2"></requestid>
				<link linktype="none" from="compUid_4"></link>
				<requestid id="0">
				</requestid>
			</variable>
		</variables>
		<input_controls>
			<input_control bindcontrolid="compUid_1" elementtype="8" name="combobox1" id="combobox1" multiple="0" inbinding="1" top="20" left="30" width="60" height="20" onetimepopulated="0">
				<link linktype="default" persistentuniqueid="compUid_5">
					<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						<data_info datatype="1" modifiedrequest="0" datasource="/WFC/Repository/folder1/UNIFI9000.fex" ibif_ex="/WFC/Repository/folder1/UNIFI9000" datafield="COUNTRY" displayfield="COUNTRY" addalloption="1" sourcetype="typeFex" cacheruntimedata="0" ibiformat="A10" dfformat="A10" accept="0" operation="NONE" checkForDuplicateValues="0" requestid="3" dynalldisplayvalue="ALL">
							<![CDATA[]]>
						</data_info>
					</condition>	
				</link>
			</input_control>
			<input_control bindcontrolid="compUid_2" elementtype="9" name="listbox1" id="listbox1" multiple="0" inbinding="1" top="20" left="140" width="60" height="20" onetimepopulated="0">
				<link linktype="default" persistentuniqueid="compUid_3">
					<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">	
						<data_info datatype="1" modifiedrequest="0" datasource="/WFC/Repository/folder1/UNIFI9001.fex" ibif_ex="/WFC/Repository/folder1/UNIFI9001" datafield="CAR" displayfield="CAR" addalloption="1" sourcetype="typeFex" cacheruntimedata="0" ibiformat="A16" dfformat="A16" accept="0" operation="NONE" checkForDuplicateValues="0" requestid="4" dynalldisplayvalue="ALL">
							<![CDATA[]]>
						</data_info>
					</condition>
				</link>
			</input_control>
			<input_control bindcontrolid="compUid_4" elementtype="8" name="combobox2" id="combobox2" multiple="0" inbinding="1" top="20" left="250" width="60" height="20" onetimepopulated="0">
				<link linktype="default" persistentuniqueid="compUid_4">
					<condition default="1" name="Default" whattodowithcontrol="0" valuescompareoperator="0" parameterscompareoperator="0" conditionmultiselectoperator="0">
						<data_info datatype="1" modifiedrequest="0" sourcetype="typeFex" datasource="/WFC/Repository/folder1/UNIFI9002.fex" ibif_ex="/WFC/Repository/folder1/UNIFI9002" displayfield="MODEL" datafield="MODEL" selectedvalue="_FOC_NULL" ibiformat="A24" accept="0" addalloption="1" checkForDuplicateValues="0" requestid="5" dynalldisplayvalue="ALL">
							<![CDATA[]]>
						</data_info>
					</condition>
				</link>
			</input_control>
		</input_controls>
		<requests nextrequestsid="5">
			<request requestid="0" targettype="iframe" targetname="report1" sourcetype="typeFex" ibif_ex="/WFC/Repository/folder1/UNIFI1000.fex" ibiapp_app="folder1" activereport="0" compoundreport="0" reportcolumns="" reportrealcolumns=""></request>
			<request requestid="1" sourcetype="typeFex" targettype="defer" targetname="report1" ibif_ex="/WFC/Repository/folder1/UNIFI1000.fex" activereport="0" reportcolumns="" reportrealcolumns="" ibiapp_app="folder1"></request>
			<request requestid="2" sourcetype="typeschedule" targettype="reportcaster" targetname="EmailLibraryFTP" ibif_ex="/WFC/Repository/folder1/UNIFI1000.fex" activereport="0" reportcolumns="" reportrealcolumns="" ibiapp_app="folder1"></request>
		</requests>
	<other_bound_objects></other_bound_objects>
</rootxmlnode></script>
</xml>
</BODY>
<SCRIPT type=text/javascript>//confidential_id=IBI_loader
if(typeof doBeforeLoad === 'function'){doBeforeLoad();}function AdjustChildrenPosition(){
}
</SCRIPT>
</HTML>
<!-- cc 00000 -->

 


Eric Woerle
8.1.05M Gen 913- Reporting Server Unix
8.1.05 Client Unix
Oracle 11.2.0.2
 
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013Report This Post
Master
posted Hide Post
quote:
Originally posted by eric.woerle:
I created this using the document composer.

Noooo!!! The kiss of death!

I tried to get your example working. I did a search-and-replace on "folder1/" and replaced all references to that with my actual Content tree path (where I placed all the files).

I then commented out:

<!-- <SCRIPT src="/approot/jquery-ui/js/jquery-ui.js"></SCRIPT> -->

and replaced this:

<SCRIPT src="/approot/jquery-ui/js/jquery.js"></SCRIPT>

with this:

<SCRIPT src="/ibi_html/javaassist/jquery/jquery_min.js"></SCRIPT>

When I try to launch the HTML page I see the following when I press the F12 browser debug key:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)
ibirls3.js:60 Uncaught DOMException: Failed to execute 'evaluate' on 'Document': The string '' is not a valid XPath expression.
    at XMLHttpRequest.xmlhttp.onreadystatechange (http://webfocusdev/ibi_apps/ibi_html/S172_14698234351F/javaassist/ibi/html/js/ibirls3.js:60:658)

The "ibirls3.js" file is referenced like this near the top of the HTML code:

... var ibirls="ibirls3"; ...

I do briefly see the page controls before the browser turns white and I get a spinny-type wheel.


App Studio
WebFOCUS 8.1.05M
Windows, All Outputs
 
Posts: 594 | Location: Michigan | Registered: September 04, 2015Report This Post
Master
posted Hide Post
Found out jquery-ui should be this for my system:

<SCRIPT src="/ibi_html/javaassist/jquery/jquery_ui_min.js"></SCRIPT>

But it still doesn't work for me.


App Studio
WebFOCUS 8.1.05M
Windows, All Outputs
 
Posts: 594 | Location: Michigan | Registered: September 04, 2015Report This Post
Master
posted Hide Post
ya, I use my own version of jquery. Started using it before it was bundled with the product, so I just keep using my copy versus what IBI bundles in now.


Eric Woerle
8.1.05M Gen 913- Reporting Server Unix
8.1.05 Client Unix
Oracle 11.2.0.2
 
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013Report This Post
Master
posted Hide Post
I tried creating the controls using HTML composer, then added in the JavaScript/jQuery to the Embedded tab in App Studio.

Still can't get past the "ibirls3.js" error, though.


App Studio
WebFOCUS 8.1.05M
Windows, All Outputs
 
Posts: 594 | Location: Michigan | Registered: September 04, 2015Report This Post
Master
posted Hide Post
Why not start by creating the basic page without the javascript. Just make sure you get the basics working. The report and the filters. Once you have that working, then bring in the JS. Just get back to the basics of trouble shooting. App Studio should automatically call JQuery, so you shouldn't have any need to add that call yourself.


Eric Woerle
8.1.05M Gen 913- Reporting Server Unix
8.1.05 Client Unix
Oracle 11.2.0.2
 
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013Report This Post
Master
posted Hide Post
That's exactly what I did. I created the basic page with the controls. They populated based on your fexes. So far so good.

App Studio took care of initializing jQuery properly. I did not add any reference to it in my second attempt.

I then added your code to App Studio's embedded JS/CSS tab, making sure the control IDs on the form matched the control IDs in your JS code. It all appears to be okay, but I still get that stupid "ibirls3.js" error when I debug using the Chrome Browser. A real pity because I was looking forward to seeing how your approach to the problem worked.


App Studio
WebFOCUS 8.1.05M
Windows, All Outputs
 
Posts: 594 | Location: Michigan | Registered: September 04, 2015Report This Post
Master
posted Hide Post
hmm, thats odd.

I use the IBComposer functions which are probably coming from ibirls3. What if you just add an alert using an IBComposer function. Something like:

 
var values = IbComposer_getCurrentSelectionEx('listbox1');
for(var i = 0; i < values.length; i++)
	{
		if ( i > 0 ){
			alert(values[i].getValue);
		}
	}
 


this will alert you to the selected values of the listbox. If you are still getting an error regarding ibirls3, then there might be an issue with your setup. I'm pretty sure ibirls3.js is the latest version for IBI.


Eric Woerle
8.1.05M Gen 913- Reporting Server Unix
8.1.05 Client Unix
Oracle 11.2.0.2
 
Posts: 750 | Location: Warrenville, IL | Registered: January 08, 2013Report This Post
Master
posted Hide Post
I can't get that far... my browser won't initialize or run anything because of the error I'm getting.

I tried replacing the IbComposer functions with jQuery and now I get this in Chrome:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)
http://webfocusdev/ibi_apps/ib...ml/js/ib_composer.js Failed to load resource: the server responded with a status of 500 (Internal Server Error)

And the interesting thing is I can click on that hyperlink and it pulls that JS file into the browser. The link seems valid!


App Studio
WebFOCUS 8.1.05M
Windows, All Outputs
 
Posts: 594 | Location: Michigan | Registered: September 04, 2015Report This Post
  Powered by Social Strata Page 1 2  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     [CLOSED]Backward Chaining Parameters using AJAX

Copyright © 1996-2020 Information Builders