Crystal reports 日期范围公式
第1页: 从日期:TXTBOX1到日期:TXTBOX2 BTN提交-单击 { server.transfer(“page2.aspx”); } 第2页: 如果(上一页!=null) { TextBox txt1=PreviousPage.FindControl(“TXTBOX1”)作为TextBox; TextBox txt2=PreviousPage.FindControl(“TXTBOX2”)作为TextBoxCrystal reports 日期范围公式,crystal-reports,parameters,Crystal Reports,Parameters,第1页: 从日期:TXTBOX1到日期:TXTBOX2 BTN提交-单击 { server.transfer(“page2.aspx”); } 第2页: 如果(上一页!=null) { TextBox txt1=PreviousPage.FindControl(“TXTBOX1”)作为TextBox; TextBox txt2=PreviousPage.FindControl(“TXTBOX2”)作为TextBox if (txt1.Text.Length != 0 &&
if (txt1.Text.Length != 0 && txt2.Text.Length != 0)
{
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("MyReport.rpt");
ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new
ParameterDiscreteValue();
crParameterDiscreteValue.Value = txt1.Text + txt2.Text;
crParameterFieldDefinitions =
cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition =
crParameterFieldDefinitions["MyParameter"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
CrystalReportViewer1.ReportSource = cryRpt;
}
}
公式编辑器中的公式:
{Command.Date}>={?MyParameter}和{Command.Date}您应该将日期字段作为单独的参数传递,并在公式编辑器中引用它们,如下所示:
{Command.Date} >= {?ParamDateFrom} and {Command.Date} <= {?ParamDateTo}
{Command.Date}>={?ParamDateFrom}和{Command.Date}使用ParameterRangeValue而不是ParameterDiscreteValue,并将StartValue和EndValue属性设置为开始日期和结束日期
更新:
下面是一些用于测试报告的示例代码:
ParameterFieldDefinitions paramDefinitions = report.DataDefinition.ParameterFields;
ParameterFieldDefinition paramDefinition = paramDefinitions["DateRange"];
ParameterValues paramValues = paramDefinition.CurrentValues;
ParameterRangeValue rangeValue = new ParameterRangeValue();
rangeValue.StartValue = new DateTime(2010, 10, 31);
rangeValue.EndValue = new DateTime(2010, 12, 15);
paramValues.Add(rangeValue); ;
paramDefinition.ApplyCurrentValues(paramValues);
确保MyParameter
是一个范围值,并且Crystal中的select语句是dateField={?MyParameter}