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.
"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.
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.