水晶报表和 WPF 处理记录选择和参数



我需要将 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;
}

最新更新