Focal Point
Launch Page

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

January 26, 2006, 12:51 AM
Paul C.
Launch Page
I have a report that takes 3 parameters (StartDate, EndDate, EmpID). I would like to have a launch page that has the drop down calendars and a list of employees to choose from. I'm trying to have a text box where the user can type in a LastName and view a list. They will choose one list item and select the dates by the dropdown calendars.

I've tried to bring in the report into Resource Layout tool and add a button to bring in the controls to supply the &Vars. Calendars are easy but the employee list is throwing me. How can I fill a listbox with data from a fex/html page that was used to search for a set of records? I did a On Table Hold as EMPDATA Format HTML and then tried to set the datasource of the listbox to !IBI.FIL.EMPDATA; The fex/html returns 2 cols with ID and Name.
I then set the DisplayField and DataField to the appropriate columns in EMPDATA. I could not populate the listbox.

Any Ideas/Suggestions?
January 26, 2006, 01:09 AM
susannah
I don't know beans about the GUI, but i know about launch pages in general:
a drop down box, aka select list, must have this format:
<option value='fred'>Fred Mertz</option>
<option value='ethel'>Ethel Mertz</option>
<option value='lucy' selected>Lucy Ricardo</option>

etc,
and it goes between select tags in the launch page
<select name='actor' size=1>
!IBI.FIL.somefilename;
</select>

so, you need to make a text file that contains your dropdown list, not an html file, and each record needs the option tags.
If you have a selfserv app , then save your launch page an .asp, rather than .htm
and use
<!-- #include file="http://servername/../list_pos/listsea.txt" -->

I use this method, and populate all my dropdown lists every night in batch refresh jobs

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




In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
January 26, 2006, 08:39 AM
Tony A
An alternative is to hold the output of your fex in XML format.

Have your two columns in the order value, display when holding.

e.g.
TABLE FILE GGSTORES
PRINT STORE_CODE
      STORE_NAME
   BY STORE_NAME NOPRINT
-*ON TABLE SET HOLDLIST PRINTONLY
ON TABLE PCHOLD AS STORES FORMAT XML
END

This gives the output snippet -
- <tr linetype="data" linenum="1">
  <td colnum="c0">R1019</td> 
  <td colnum="c1">GOTHAM GRINDS #1019</td> 
  </tr>
- <tr linetype="data" linenum="2">
  <td colnum="c0">R1020</td> 
  <td colnum="c1">GOTHAM GRINDS #1020</td> 
  </tr>
- <tr linetype="data" linenum="3">
  <td colnum="c0">R1040</td> 
  <td colnum="c1">GOTHAM GRINDS #1040</td> 
  </tr>
Where the c0 column will be used to populate the value attribute of the combo box and the c1 will be used to populate the display value.

If the fex name is storecds.fex then point your combo box at this fex and WF will take care of the rest! This is achieved by the javascript module ibirls.js which uses an activeX object to perform the combobox building.

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 
January 26, 2006, 09:12 PM
susannah
T, what does 'point your combo box at this fex' mean?? help?




In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
January 27, 2006, 12:28 AM
Paul C.
Susannah, I set the html code for the listbox ...datasource="myFex.fex" and set the sourcetype="typeFex"
datafieldtype="INTEGER"
displayfield="MyReadableField"
datafield="MyIndexKey"

I could only get this to work if the fex is a separate file. In my case, I need to filter the data shown in the listbox based on user input. I need to pass an &var to the fex so it can be applied to a where statement before the XML is generated.
January 27, 2006, 12:35 AM
susannah
you must be using dev studio, yes?
i'm a hand-coder..so thats all greek to me.




In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
January 27, 2006, 12:54 AM
Paul C.
Not really, I'm frustrated with the GUI. I use it to generate some code and end up using that as a starting point. Most if the time I'm hand tweaking things to get it to work.

I still can't get this working. Concept seems simple enough. Launch page allows the user to type in a partial name and hits a button. That brings up another page with a list of possible employees, select the employee, select a couple of dates from dropdown calendars push the submit button and run the report.
January 27, 2006, 03:47 AM
Tony A
The resource layout painter is a good starting point for even the most stalwart hand coder (even me Smiler). The HTML pages created pull in all sorts of goodies that you can utilise in your application without having to pull in various javascript modules to allow you to have calendars etc. IB have taken care of this for you with their ibirls.js module which performs most of the dynamic nature of the HTML pages (except default dates of course but that's easy to achieve).

Paul,

How about doing something like this -


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 
January 30, 2006, 02:25 AM
Michael
I have tweaked some javascripts from IBI, wich I now use to populate a dropdown with a search.

The fex wich is called generates xml "on table pchold xml"

<html>
<head>
<SCRIPT type=text/javascript>
function populateDynamicCtrlWithSearch(ctrl)
{
   RemoveChildren(ctrl);
   var sourcetype = ctrl.getAttribute('sourcetype');
   var accept = ctrl.getAttribute('accept');
   var request = "";
   if(sourcetype && sourcetype == srcTypeFex)
   {   
       request += GenerateRequest(ctrl, null, null);
       request += AddVariables(ctrl);
   }
   if(request)
   {
      var xmlDoc = getXml(request);
      populateCtrlFromXmldoc(xmlDoc, ctrl);
   }
   else
   {
      alert("An error populating input control");
   }   
}

function AddVariables(ctrl)
{
  var requestvar = new String;
 	var arrRequests = GetRequestsList(ctrl);
	if(arrRequests)
	{
		len = arrRequests.length;
		var variables = null;
		for(var j=0; j < len; j++)
		{
			var request = arrRequests[j];
			if(request)
			{	
        variables = GetVariablesList(request);
				requestvar += GetVariablesValue(variables);				
			}
		}
	}
	return requestvar;
}

function GetVariablesValue(variables)
{
   var request = new String;
   if(variables && variables.length)
   {
      var arrAmp = variables.split(";")
      var len = arrAmp.length;
      for(var index = 0; index < len; index++ )
      {
         var inputs = document.getElementsByName(arrAmp[index]);
         var inputFirst = inputs[0];
         if(inputFirst && (inputFirst.tagName == "INPUT" || inputFirst.tagName == "SPAN"))
         {
            if(inputFirst.type == "text" || inputFirst.type == "hidden")
            { 
		         request += '&' +inputFirst.name + '=' + inputFirst.value; 
		        }
      }
   }
   return request
}

function image1_onclick(ctrl) {
      populateDynamicCtrlWithSearch(ctrl);
      ctrl.style.display = 'inline';
    }
</script>
<SCRIPT id=IBI_OptionsScript type=text/javascript>
var cgipath = "cgipath";
var ibirls = "ibirls2";
var multidrill = "multidrill";
var mntFormValidate = "mntFormValidate";
var dyncalendar = "dyncalendar";
var olap="olap";
var olappanebase="olappanebase";
var olapdrill="olapdrill";
var ibiOptions = new Array(cgipath,ibirls,mntFormValidate,multidrill);
</SCRIPT>
<SCRIPT id=IBI_nls src="/ibi_html/javaassist/nls.js" type=text/javascript>
</SCRIPT>
<SCRIPT id=IBI_ibigbl src="/ibi_html/javaassist/ibi/html/js/ibigbl.js" type=text/javascript>
</SCRIPT>
<SCRIPT id=IBI_ibigblloadCss type=text/javascript>ibigblloadCss(null);
</SCRIPT>
<SCRIPT id=IBI_RelCallBack type=text/javascript>
function AdjustChildrenPosition()
{
}
</SCRIPT>
</head>
<body>
<INPUT id=edit1 tabIndex=2 name=LEVZKN>
  <IMG language=javascript id=image1  onclick=image1_onclick(getElement('lev')) 
tabIndex=7 height=40 src="../images/zoek.jpg" width=40 border=0 name=image1 
requests_list="4" originalWidth="37" originalHeight="38" rtFileName="zoek.jpg">  
  <SELECT ibiapp_app="IGS baseapp" ibic_server="EDASERVE" id=LEV tabIndex=6 
requests_list="4" name=LEV scrolling=no sourcetype="typeFex" datatype="0" 
datasource="Leveranciers.fex" datatype="0" datafield="c1" displayfield="c2">  
  </SELECT>
<xml id=ibi_requests>
<requests>
<request requestid="4" sourcetype="typeFex" 
targettype="1" targetname="levselect" 
ibif_ex="fexname" ibic_server="EDASERVE" ibiapp_app="baseapp">
<variables>
  <variable field="" file="sqlout.mas" desc="" datatype="1" 
operation="" default="" name="LEVZKN" accept="0" type="default" select="0">
</variable>
</variables>
</request>
</requests>
</xml>
</body>
</html>



This works perfect for me. When you type something in the searchbox ("LEVZKN") and then click the image the select box shows the found values.

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