我需要将 Crystal Report .rpt 文件集成到我的 WPF 应用程序中。 一切正常,但是当我向报告添加报告选择时,它似乎清除了参数。 这是我正在使用的代码;
ReportClass r1 = new ReportClass();
r1.FileName = "myReport.rpt";
foreach (var t in r1.Database.Tables)
{
CrystalDecisions.CrystalReports.Engine.Table tb = t as CrystalDecisions.CrystalReports.Engine.Table;
tb.LogOnInfo.ConnectionInfo = conInfo;
tb.ApplyLogOnInfo(tb.LogOnInfo);
}
CrystalDecisions.Shared.ParameterRangeValue rangeValue = new CrystalDecisions.Shared.ParameterRangeValue();
DateTime sd = (DateTime)StartDatePicker.SelectedDate;
DateTime ed = (DateTime)EndDatePicker.SelectedDate;
rangeValue.StartValue = sd;
rangeValue.EndValue = ed;
r1.SetParameterValue(r1.ParameterFields[0].Name, rangeValue);
string rs = "Correctly formated Record Section Formula";
r1.DataDefinition.RecordSelectionFormula = rs;
myReportViewer.ViewerCore.ReportSource = r1;
现在,记录选择公式可以完美运行。 但是,它会忽略参数值。 如果删除r1.DataDefinition.RecordSelectionFormula = rs;
,则参数正常工作。 我做错了什么?
找到了答案。 事实证明,r1.DataDefinition.RecordSelectionFormula = rs;
过度编写了报告记录选择。 添加这个修复了它
if (rs != "")
{
rs = r1.DataDefinition.RecordSelectionFormula + " and " + rs;
}
else
{
rs = r1.DataDefinition.RecordSelectionFormula;
}