Focal Point
[CLOSED] Calendar /js / Wf 714 problem

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

May 11, 2009, 04:23 AM
EK
[CLOSED] Calendar /js / Wf 714 problem
Hi,

Anybody has experience about popup calendar and js found in WF directories:
- ibi_html/javaassist/ibi/html/js/ibigbl.js
- ibi_html/javaassist/nls.js

We use WebFocus 714 MRE environment. Browser is IE and version is 6.0.2900.2180.xpsp_sp2_gdr.090206-1233 and java version 1.6.0.

When changing both year and month at the same time IE fails without telling any good reason. If you change only month or year it works. And you can prevent this fail by changing first month or year - then closing the popup - opening again and changing another.

I ran this report with another computer using IE version 6.0.2800.1106.xpsp2.070903-1232 java version 1.4.2 and it works there.

So this might have something to do with browser and java version.

Thanks in advance for your comments

******************
Hopefully I manage to copy/paste these codes in a right way.
******************
Here is the code from HTML-page:

  This is from html-page: 
<input size="10" type="text" id="calendar1" name="REPORTDATE" value="" onKeyUp="return liveValiDate();" operation="NONE" elementtype="14" ibiformat="YYMD" calendardatatype="1" calendardata="0/0/-3;0/0/0" /><span id="notmprt1" onMouseOut="return liveValiDate();"><SCRIPT id=IBI_loadcalendar type=text/javascript>


quote:


And here is the js-code from the report:
  <script type="text/javascript">
		<!--
		function valiDate()
			{
				var date=document.getElementById("REPORTDATE").value

				if (date.length != 10)
				{
					alert("Please enter a valid date!\n\nThe format is YYYYMMDD!")
					return false
				}
			}   // -->
	</script>
	<SCRIPT id=IBI_OptionsScript type=text/javascript>
			var rltVersion = "714";
			var cgipath = "cgipath";
			var ibirls = "ibirls2";
			var multidrill = "multidrill";
			var mntFormValidate = "mntFormValidate";
			var dyncalendar = "dyncalendar";
			var olap="olap";
			var olappanebase="olappanebase";
			var ibixmltree="ibixmltree";
			var ibilangtrans="ibilangtrans";
			var olapdrill="olapdrill";
			var ibiOptions = new Array(cgipath,ibirls,mntFormValidate,ibilangtrans,dyncalendar,olap,olappanebase,olapdrill,multidrill);
	</SCRIPT>	
	<SCRIPT id=clientEventHandlersJS type=text/javascript>
			function window_onload() {
			UpdateData();
			// TODO: Add your event handler code here
			}
		</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 for=window eventname="onload">window.onload = function() { window_onload(); }</SCRIPT>
	<script type="text/javascript">
			function isValidDate(aDate) {
				var valid = 0
				var myDate = new Date()
				var currDate = new Date()
				if (aDate.length == 0) {
					valid = myDate
				} else if (aDate.length == 8 && !isNaN(aDate)) {
					var cyear = aDate.substring(0,4)
					var cmonth = aDate.substring(4,6)
					var cday = aDate.substring(6,8)
					myDate.setFullYear(cyear,cmonth - 1,cday)
					valid = myDate
					if (cyear < (currDate.getFullYear() - 3) || cyear > currDate.getFullYear()) { valid = 0 }
					if (cmonth < 1 || cmonth > 12) { valid = 0 }
					if (cday < 1 || cday > 31) { valid = 0 }
					return valid
				} else if (aDate.length == 10) {
					var lyear = aDate.substring(0,4)
					var lmonth = aDate.substring(5,7)
					var lday = aDate.substring(8,10)
					myDate.setFullYear(lyear,lmonth - 1,lday)
					valid = myDate
					if (lyear < (currDate.getFullYear() - 3) || lyear > currDate.getFullYear()) { valid = 0 }
					if (lmonth < 1 || lmonth > 12) { valid = 0 }
					if (lday < 1 || lday > 31) { valid = 0 }
					return valid
				}
				return valid
			}

			
			function liveValidate() {
				var userDate = document.getElementById('calendar1').value
				var output = document.getElementById('dateInfo')
				var myRes = isValidDate(userDate)
				if (myRes > 0) {
					var wkDay = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")
					var flMon = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
					var outDate = wkDay[myRes.getDay()] + " " + myRes.getDate() + " " + flMon[myRes.getMonth()] + " " + myRes.getFullYear()
					var endDate = myRes
					endDate.setDate(myRes.getDate() + 6)
					var outEnd = wkDay[endDate.getDay()] + " " + endDate.getDate() + " " + flMon[endDate.getMonth()] + " " + endDate.getFullYear()
					output.innerHTML = "Start date being used: " + outDate + "<br>"
					output.innerHTML += " End date being used: " + outEnd
				} else {
					output.innerHTML = "Start date being used: <span style=\"color: red;\">entered date is incomplete or contains errors</span><br>"
					output.innerHTML += " End date being used: <span style=\"color: red;\">none</span>"
				}
				return true
			}
			function timedValidate() {
				var tmr = setTimeout("liveValidate()", 500)
			}
			function setDateFocus() {
				document.getElementById('calendar1').focus()
			}
			function setSubText() {
				var subtxt = document.getElementById('submitted')
				subtxt.innerHTML = "<br />Report is being generated.. <br /><span style=\"color: red;\">This may take a while, please be patient.</span>"
			}
			function unsetSubText() {
				var subtxt = document.getElementById('submitted')
				subtxt.innerHTML = ""
			}
		</script>

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


WF 7.1.3 on Win 2003/IIS 6/ Atlanta / MVS
May 11, 2009, 07:38 AM
dhagen
I suspect that it is when you are using String as Int. 1.6 is a lot more strict when trying to use var's than 1.4 was. Try using the parseInt() function when trying to recast your strings.

e.g.
 var cyear = parseInt(aDate.substring(0,4)); 

or:
 if (parseInt(cyear) < (currDate.getFullYear() - 3) || parseInt(cyear) > currDate.getFullYear()) { valid = 0 } 



"There is no limit to what you can achieve ... if you don’t care who gets the credit." Roger Abbott
May 20, 2009, 02:22 AM
<reflection>
Hi,

The same problem we also got. But it has nothing to do with Webfocus its an issue with IE patch that is being used. due to this patch some null value is being passed to JS thus aborting calendar .We got solution from both IBI ( suggesting changes in JS for calendar) and a hotfix from Microsoft.Either of them can be used.

If you try in mozilla this issue is not there.
May 20, 2009, 09:15 AM
GinnyJakes
I also tried the IBI file but it didn't work for me (calendar control didn't show at page execution time).

If you happen to have the Microsoft hotfix number, could you post it here please.

Thanks.


Ginny
---------------------------------
Prod: WF 7.7.01 Dev: WF 7.6.9-11
Admin, MRE,self-service; adapters: Teradata, DB2, Oracle, SQL Server, Essbase, ESRI, FlexEnable, Google
May 22, 2009, 01:33 AM
<reflection>
IBI file even didn't wrk for me and am still testing the js file by clearing cache and all. But of no use till now

Hotfix number I don't know , since it was installed by desktop team and it's not a public release till now. Public release might take some time. Better to contact Microsoft directly.
May 22, 2009, 09:11 AM
GinnyJakes
Thanks for trying, R. I have a ticket open with my internal help desk and even forwarded your information to them. I haven't heard a thing from them.


Ginny
---------------------------------
Prod: WF 7.7.01 Dev: WF 7.6.9-11
Admin, MRE,self-service; adapters: Teradata, DB2, Oracle, SQL Server, Essbase, ESRI, FlexEnable, Google