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.
It seems to be exactly what happened to me. The calendar control Icon still appears in IE, but I can't get it to show up for other browsers. It doesn't show up (except IE) whenever I try to populate it with a dynamic range or a dynamic procedure.
IE:
Chrome:
I define car with a begin and end date. Then I print those two values by highest 1 country noprint and pchold that table in xml format to populate a dynamic date range in YYMD format.
FEX:
DEFINE FILE CAR
begin_date/YYMD='2012/08/27';
end_date/YYMD='2013/09/27';
END
TABLE FILE CAR
PRINT
begin_date
end_date
BY HIGHEST 1 CAR.COMP.CAR NOPRINT
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT XML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
INCLUDE = endeflt,
$
ENDSTYLE
END
HTML:
<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" nextelementuniquenumber="2" thumbnailscale="4" elementtype="21" edaconnectionrequired="false">
<INPUT style="Z-INDEX: 1; POSITION: absolute; WIDTH: 260px; HEIGHT: 22px; TOP: 40px; LEFT: 70px" id=calendar1 tabIndex=1 elementtype="14" defaultselection="1" persistentuniqueid="compUid_1" name="calendar1">
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=layoutinfo type=hidden>
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=ibiapp_app type=hidden ismre="1" name="ibiapp_app">
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=ibif_ex value=app/test_calendar.htm type=hidden name="ibif_ex">
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=IBIMR_domain value=informat/informat.htm type=hidden name="IBIMR_domain">
<INPUT style="POSITION: absolute; TOP: -100px; LEFT: -100px" id=IBIMR_folder value=#informationt type=hidden name="IBIMR_folder">
<xml id=focus_xmlelement>
<script type="text/xml" nextelementuniquenumber="3">
<rootxmlnode focoption="_FOC_NULL">
<variables></variables>
<input_controls>
<input_control bindcontrolid="compUid_1" elementtype="14" name="calendar1" id="calendar1" multiple="0" 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" calendardata="app/test_calendar.fex" calendardatatype="2" ibiformat="YYMD" accept="0" sourcetype="typeFex" calendar_ibiapp_app="" calendar_ibimr_domain="informat/informat.htm" calendar_ibimr_folder="#informationt" datatype="0" modifiedrequest="0" datasource="app/date_range.fex" displayfield="begin_date" datafield="begin_date" ibiapp_app="" IBIMR_domain="informat/informat.htm" IBIMR_folder="#informationt" selectedvalue="">
< ![CDATA[]]>
<static_values>
<static value="" display="" selected="1" noinput="0"></static></static_values></data_info></condition></link></input_control></input_controls>
<other_bound_objects></other_bound_objects>
<requests></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>
Has anyone run into this issue before? -JThis message has been edited. Last edited by: J,
WebFOCUS 7.7.03/8.0.08 Dev Studio 7.7.03/8.0.08 App Studio 8.0.08 Windows 7 ALL Outputs
Posts: 402 | Location: Upland, IN | Registered: June 08, 2012
In a 7.6 release, there was a problem with dynamic date ranges.
It was basically a timing issue: There was no mechanism in place to make page setup wait for the receipt and processing of the XML result (from the fex query that would determine the range) to complete. So, depending on external factors, the setup of the calendar control might be based on invalid data.
That might still be the case. Look (in view source) to see whether there is a call to a javascript function to set up the calendar controls, parked after the
</html>
line at the end of the page.
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
If that's on the end, then it's not the same issue as in 7.6.
7.6 would re-order the HTML tags, moving that bit of script up in the tree. That caused that it would run before the elements on the page were added to the document tree and the script failed. The result was no calendar control icon.
It could still be a timing issue though.
Just a guess, but does it help to add those calls in a new function onInitialUpdate() {}? That function (if it exists) gets automatically called by WF once the page finishes loading.
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 :
Others have raised the issue before; one suggestion was to
use a covering fex (rather than calling the htm file directly);
have the fex -SET two variables, for the start and end dates of the calendar control, before referencing the htm page via -HTMLFORM; and
configure the calendar controls in the htm page to have a static range, with !IBI.AMP...; references (to the above-mentioned date variables) inserted in the Properties as the start and end date values.
Note what David Glick responded to that posting; I suggest you cite his remarks as exhibit A when opening the case.
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
Interesting solution. The example you gave me is for setting the selected values. I am already doing that to achieve the default values. What I was trying to limit was the range of select-able values. I tried using your suggestion for this as well by changing a static range from something like:
J, This is why we use Dynamic, external procedures. Modified your code for our MRE environment, you will need to modify back to your Domain, IBIMR_FOLDER, etc...
DEFINE FILE CAR
BEG_DATE/YYMD WITH COUNTRY = '&DATEYYMD';
END_DATE/YYMD WITH COUNTRY = DATEADD(BEG_DATE, 'WD', 1);
END
TABLE FILE CAR
SUM
COUNTRY NOPRINT
BEG_DATE
BY BEG_DATE
ON TABLE PCHOLD FORMAT XML
END
-RUN
get_end_date code:
DEFINE FILE CAR
BEG_DATE/YYMD WITH COUNTRY = '&DATEYYMD';
END_DATE/YYMD WITH COUNTRY = DATEADD(BEG_DATE, 'WD', 1);
END
TABLE FILE CAR
SUM
COUNTRY NOPRINT
END_DATE
BY END_DATE
ON TABLE PCHOLD FORMAT XML
END
-RUN
I know how to set the default date for the calendar control. If I have a begin date and an end date I then have a range for the user. That isn't my issue.
My issue is users selecting dates outside of the range I wish them to. For a single calendar control, you can select the default date, which isn't a problem, and then you can give a range of select-able values so that the other days are grayed out and can't be clicked.
This range can either be static and hard coded, a relative range, or a dynamic range which is what I need. You can also just have a custom dynamic procedure to populate them both. I have tried both options and both options work in IE but fail in Chrome.
What I want is for one calendar control to have a dynamic date range with the other dates grayed out. This works in IE, but not in other browsers.
Chrome version 11, Firefox 3.6, etc. are way out of date and end users can't be expected to have those versions or to stick with IE.
WebFOCUS 7.7.03/8.0.08 Dev Studio 7.7.03/8.0.08 App Studio 8.0.08 Windows 7 ALL Outputs
Posts: 402 | Location: Upland, IN | Registered: June 08, 2012
Hi J, OK, my mis-understanding. Well, if other browsers don't work, use JavaScript validation to ensure they are within the date range, instead of, graying out the dates. Granted, sounds, and, probably looks better; may be able to find some JS on the internet to do that.
Thank you all for the help. I will check again with the user to see what the preferred path will be. Disappointing that the dynamic ranges don't work in other browsers
WebFOCUS 7.7.03/8.0.08 Dev Studio 7.7.03/8.0.08 App Studio 8.0.08 Windows 7 ALL Outputs
Posts: 402 | Location: Upland, IN | Registered: June 08, 2012