Crystal reports 日期范围公式

Crystal 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 &&

第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 && 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}