如何在不使用水晶报表中的参数字段的情况下向文本或字段对象显示最终日期或开始日期

时间:2011-02-10 07:50:40

标签: c# crystal-reports

通过以下代码将开始日期和最终日期作为参数传递 由于报告中没有使用参数字段, 如何在文本或字段对象中显示日期范围? 这样做的公式是什么?

ReportDocument objRpt = new ReportDocument();
            string reportPath = Server.MapPath("Daily_CrystalReport.rpt");
            objRpt.Load(reportPath); 

            objRpt.SetDataSource(ds.Tables[0]);


            CrystalReportViewer1.ReportSource = objRpt;
            CrystalReportViewer1.RefreshReport(); 

1 个答案:

答案 0 :(得分:1)

如果您不想通过参数传递开始日期和日期结束,则必须通过数据集将值返回到报告。

修改

您需要通过设计视图将参数添加到Crystal Report。

给他们适当的名字,例如@StartDate& @EndDate

然后在你的代码中

objRpt.ParameterFields["@StartDate"].CurrentValues.Clear();
objRpt.ParameterFields["@StartDate"].DefaultValues.Clear();
objRpt.ParameterFields["@StartDate"].CurrentValue.Add([YOUR START DATE HERE]);

objRpt.ParameterFields["@EndDate"].CurrentValues.Clear();
objRpt.ParameterFields["@EndDate"].DefaultValues.Clear();
objRpt.ParameterFields["@EndDate"].CurrentValue.Add([YOUR END DATE HERE]);

编辑2:

您还可以动态地向Crystal Report添加值。在Crystal Report上添加两个文本框并为其指定名称。

然后在您的代码中,您可以执行以下操作:

((CrystalDecisions.CrystalReports.Engine.TextObject)objRpt.ReportDefinition.ReportsObjects.Item["NameOfTextObject"]).Text = YOUR DATE;