Home
Analytics
Non Editable date field
bokya
Dear All,
I stuck in one issue, Issue is that i have date parameter. When i select any date on clicking on Calendar icon then Clendar pops up and i can easily select whichever date i want.
But when i enter date without clicking on Calendar icon then also its accepting. That is ok, but when i enter other than date value then its showing exception. Instead of this i want alert "Invalid date". Or instead of Alert message the date field should be not editable so that user has to select date from calendar only and he/she can not enetr date manually.
Please give me correct way to achive either of the one.
Regards,
Bokya
Find more posts tagged with
Comments
bokya
Dear All,
Please Reply
bokya
Dear All,
I stuck in one issue, Issue is that i have date parameter. When i select any date on clicking on Calendar icon then Clendar pops up and i can easily select whichever date i want.
But when i enter date without clicking on Calendar icon then also its accepting. That is ok, but when i enter other than date value then its showing exception. Instead of this i want alert "Invalid date". Or instead of alert message the date field should be not editable so that user has to select date from calendar only and he/she can not enetr date manually.
Please give me correct way to achive either of the one.
Regards,
Bokya
mwilliams
Are you using Actuate BIRT? Or are you integrating a calendar selector into open source BIRT?
bokya
Thanks BIRT Guru for your Reply,
I am integrating a calendar selector into open source BIRT. I have down loaded BIRT Runtime. Integrated BIRT with Web Apllication. Please give some solution how to come up with this problem
mwilliams
I would look into the webcontent->birt->pages->parameter->TextBoxParameterFragment.jsp to see if you can disable the text box when the parameter type is date.
bokya
Thanks BIRT for your reply,
But can you please elaborate more what to write or where to do changes in the given report?
Below code i have extra added to give calender selection
<img id="<%=parameterBean.getName()%>_img" style="cursor: pointer; border: 0px; float: left;"
title="Date selector"
height="18"
src="birt/images/calendar.gif"
width="19"
type="submit"
/>
<script type=text/javascript>
Calendar.setup({
inputField : "arrive",
align:"MC / / / /",
bottomBar:false,
max: new Date(),
dateFormat : "%d-%m-%Y",
trigger : '<%=parameterBean.getName()%>_img',
inputField : '<%=parameterBean.getName()%>',
onSelect : function() {this.hide()}
});
</SCRIPT>
mwilliams
Change this portion:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
<INPUT CLASS="BirtViewer_parameter_dialog_Input"
</pre>
<br />
to this:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
<INPUT <% if(parameterBean.getParameter( ).getDataType( ) == 7 || parameterBean.getParameter( ).getDataType( ) == 4){%> READONLY="READONLY"<% }%> CLASS="BirtViewer_parameter_dialog_Input"
</pre>
<br />
That will make the text box read only, if the parameter data type is Date(7) or DateTime(4).
bokya
Thanks BIRT GURU,
Its working fine.. Thanks a lot...
anveshkona
[twitter][/twitter]Can you give full TextBoxParameterFragment.jsp page.I am modified, I am getting errors.
<%
Copyright (c) 2004 Actuate Corporation and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
Actuate Corporation - Initial implementation.
%>
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page session="false" buffer="none" %>
<%@ page import="org.eclipse.birt.report.utility.ParameterAccessor,
org.eclipse.birt.report.context.BaseAttributeBean,
org.eclipse.birt.report.context.ScalarParameterBean" %>
<%
Expected java beans
%>
<jsp:useBean id="attributeBean" type="org.eclipse.birt.report.context.BaseAttributeBean" scope="request" />
<%
Text box parameter control
%>
<%
ScalarParameterBean parameterBean = ( ScalarParameterBean ) attributeBean.getParameterBean( );
String encodedParameterName = ParameterAccessor.htmlEncode( parameterBean.getName( ) );
%>
<TR>
<TD NOWRAP>
<IMG SRC="birt/images/parameter.gif" ALT="<%= parameterBean.getDisplayName( ) %>" TITLE="<%= parameterBean.getToolTip( ) %>"/>
</TD>
<TD NOWRAP>
<FONT TITLE="<%= parameterBean.getToolTip( ) %>"><LABEL FOR="<%= encodedParameterName %>"><%= parameterBean.getDisplayName( ) %>:</LABEL></FONT>
<%-- is required --%>
<%
if ( parameterBean.isRequired( ) )
{
%>
<FONT COLOR="red"><LABEL FOR="<%= encodedParameterName %>">*</LABEL></FONT>
<%
}
%>
</TD>
</TR>
<TR>
<TD NOWRAP></TD>
<TD NOWRAP WIDTH="100%">
<INPUT TYPE="HIDDEN" ID="control_type" VALUE="text">
<INPUT TYPE="HIDDEN" ID="data_type" VALUE="<%="" + parameterBean.getParameter( ).getDataType( ) %>">
<%
if ( !parameterBean.isRequired( ) )
{
%>
<LABEL FOR="<%= encodedParameterName + "_radio_notnull" %>" CLASS="birtviewer_hidden_label">Input text</LABEL>
<INPUT TYPE="RADIO"
ID="<%= encodedParameterName + "_radio_notnull" %>"
VALUE="<%= encodedParameterName %>"
<%= (parameterBean.getValue( ) != null)? "CHECKED" : "" %>>
<%
}
%>
<INPUT CLASS="BirtViewer_parameter_dialog_Input"
TYPE="<%= parameterBean.isValueConcealed( )? "PASSWORD" : "TEXT" %>"
NAME="<%= encodedParameterName %>"
ID="<%= encodedParameterName %>"
TITLE="<%= parameterBean.getToolTip( ) %>"
VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getDisplayText( ) == null )? "" : parameterBean.getDisplayText( ) ) %>"
<%= ( !parameterBean.isRequired( ) && parameterBean.getValue( ) == null )? "DISABLED='true'" : "" %>
<%= parameterBean.isRequired( ) ? "aria-required='true'" : "" %>
>
<INPUT TYPE="HIDDEN"
ID="<%= encodedParameterName + "_value" %>"
VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getValue( ) == null )? "" : parameterBean.getValue( ) ) %>"
>
<INPUT TYPE="HIDDEN"
ID="<%= encodedParameterName + "_displayText" %>"
VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getDisplayText( ) == null )? "" : parameterBean.getDisplayText( ) ) %>"
>
<%
if ( !parameterBean.isRequired( ) )
{
%>
<BR>
<LABEL FOR="<%= encodedParameterName + "_radio_null" %>" CLASS="birtviewer_hidden_label">Null Value</LABEL>
<INPUT TYPE="RADIO"
ID="<%= encodedParameterName + "_radio_null"%>"
VALUE="<%= encodedParameterName %>"
<%= ( parameterBean.getValue( ) == null )? "CHECKED" : "" %>> Null Value
<%
}
%>
<INPUT TYPE="HIDDEN" ID="isRequired"
VALUE = "<%= parameterBean.isRequired( )? "true": "false" %>">
<%
if (parameterBean.getParameter().getDataType()==7|| parameterBean.getParameter().getDataType()==4)
{
%>
<button id="<%=parameterBean.getName()%>_button">...</button>
<script type="text/javascript">
Calendar.setup({
trigger : '<%=parameterBean.getName()%>_button',inputField : '<%=parameterBean.getName()%>',onSelect : function() { this.hide() }
});
</script>
<%
}
%>
</TD>
</TR>
anveshkona
[twitter][/twitter]Can you give full TextBoxParameterFragment.jsp page.I am modified, I am getting errors.
<%
Copyright (c) 2004 Actuate Corporation and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
Actuate Corporation - Initial implementation.
%>
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page session="false" buffer="none" %>
<%@ page import="org.eclipse.birt.report.utility.ParameterAccessor,
org.eclipse.birt.report.context.BaseAttributeBean,
org.eclipse.birt.report.context.ScalarParameterBean" %>
<%
Expected java beans
%>
<jsp:useBean id="attributeBean" type="org.eclipse.birt.report.context.BaseAttributeBean" scope="request" />
<%
Text box parameter control
%>
<%
ScalarParameterBean parameterBean = ( ScalarParameterBean ) attributeBean.getParameterBean( );
String encodedParameterName = ParameterAccessor.htmlEncode( parameterBean.getName( ) );
%>
<TR>
<TD NOWRAP>
<IMG SRC="birt/images/parameter.gif" ALT="<%= parameterBean.getDisplayName( ) %>" TITLE="<%= parameterBean.getToolTip( ) %>"/>
</TD>
<TD NOWRAP>
<FONT TITLE="<%= parameterBean.getToolTip( ) %>"><LABEL FOR="<%= encodedParameterName %>"><%= parameterBean.getDisplayName( ) %>:</LABEL></FONT>
<%-- is required --%>
<%
if ( parameterBean.isRequired( ) )
{
%>
<FONT COLOR="red"><LABEL FOR="<%= encodedParameterName %>">*</LABEL></FONT>
<%
}
%>
</TD>
</TR>
<TR>
<TD NOWRAP></TD>
<TD NOWRAP WIDTH="100%">
<INPUT TYPE="HIDDEN" ID="control_type" VALUE="text">
<INPUT TYPE="HIDDEN" ID="data_type" VALUE="<%="" + parameterBean.getParameter( ).getDataType( ) %>">
<%
if ( !parameterBean.isRequired( ) )
{
%>
<LABEL FOR="<%= encodedParameterName + "_radio_notnull" %>" CLASS="birtviewer_hidden_label">Input text</LABEL>
<INPUT TYPE="RADIO"
ID="<%= encodedParameterName + "_radio_notnull" %>"
VALUE="<%= encodedParameterName %>"
<%= (parameterBean.getValue( ) != null)? "CHECKED" : "" %>>
<%
}
%>
<INPUT CLASS="BirtViewer_parameter_dialog_Input"
TYPE="<%= parameterBean.isValueConcealed( )? "PASSWORD" : "TEXT" %>"
NAME="<%= encodedParameterName %>"
ID="<%= encodedParameterName %>"
TITLE="<%= parameterBean.getToolTip( ) %>"
VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getDisplayText( ) == null )? "" : parameterBean.getDisplayText( ) ) %>"
<%= ( !parameterBean.isRequired( ) && parameterBean.getValue( ) == null )? "DISABLED='true'" : "" %>
<%= parameterBean.isRequired( ) ? "aria-required='true'" : "" %>
>
<INPUT TYPE="HIDDEN"
ID="<%= encodedParameterName + "_value" %>"
VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getValue( ) == null )? "" : parameterBean.getValue( ) ) %>"
>
<INPUT TYPE="HIDDEN"
ID="<%= encodedParameterName + "_displayText" %>"
VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getDisplayText( ) == null )? "" : parameterBean.getDisplayText( ) ) %>"
>
<%
if ( !parameterBean.isRequired( ) )
{
%>
<BR>
<LABEL FOR="<%= encodedParameterName + "_radio_null" %>" CLASS="birtviewer_hidden_label">Null Value</LABEL>
<INPUT TYPE="RADIO"
ID="<%= encodedParameterName + "_radio_null"%>"
VALUE="<%= encodedParameterName %>"
<%= ( parameterBean.getValue( ) == null )? "CHECKED" : "" %>> Null Value
<%
}
%>
<INPUT TYPE="HIDDEN" ID="isRequired"
VALUE = "<%= parameterBean.isRequired( )? "true": "false" %>">
<%
if (parameterBean.getParameter().getDataType()==7|| parameterBean.getParameter().getDataType()==4)
{
%>
<button id="<%=parameterBean.getName()%>_button">...</button>
<script type="text/javascript">
Calendar.setup({
trigger : '<%=parameterBean.getName()%>_button',inputField : '<%=parameterBean.getName()%>',onSelect : function() { this.hide() }
});
</script>
<%
}
%>
</TD>
</TR>
mwilliams
Here is a modified version of the file:
Let me know if you have issues.
anveshkona
Thanks Boss now it's working fine.
once again thanks for support
anveshkona
I have a two Report parameters like "Start Date" and "End Date"
Now i want to validate "End Date" value is greater than "Stat Date" value and equal to today's date.
"Start Date" also validate less than today's date.
how can i validate in BIRT tool.
Plz help me.
mwilliams
There are several routes you could take here. You could create a custom parameter page and handle all of it with script in your custom page. You could use the validate script of one of the parameters and put a script like:
BirtDateTime.diffDay(params["startDate"].value, params["endDate"].value) >= 0;
That would cause an exception to be thrown, if the start date was after the end date.
Another way would be to do something similar to the validate script one, only do this check in your beforeOpen script of your report. If the validation fails, you could drop the elements in your chart and simply leave a label in your report that says "Invalid date selection: End date is later than start date" or something like that.
Hope this helps.