为什么我的CR SetParameterValue似乎不起作用

时间:2015-10-06 20:03:19

标签: c# winforms crystal-reports

我有一个小的Winforms项目。 .NetFramework 4.5,CR 13.0.14。在ReportForm中:

public partial class ReportForm : Form
{
    private readonly string _batchNumber;

    public ReportForm(string batchNumber)
    {
        _batchNumber = batchNumber;
        InitializeComponent();
    }

    protected override void OnLoad(EventArgs e)
    {
        APGreenSheets report = new APGreenSheets();
        DataSet data = AccountsPayableController.FillDataSet();
        report.SetDataSource(data);
        report.SetParameterValue("BatchRef", _batchNumber);
        crystalReportViewer1.ReportSource = report;
        crystalReportViewer1.RefreshReport();

        base.OnLoad(e);
    }
}

在我的CR报告中,我将参数字段“BatchRef”定义为字符串。

我的记录选择公式为:{AP_HistoryHeader.strBatchRef} = {?BatchRef}

当ReportForm加载(传递批号参考)时,报告仍会在加载之前提示我。我可以手动输入它,这将有效。但是在设置DataSource之后我设置了参数以避免这种情况。提前谢谢。

1 个答案:

答案 0 :(得分:0)

在进行了一些其他代码检查后,SAP的Don Williams为我提供了正确的答案:

只需删除第crystalReportViewer1.RefreshReport();

即可

这就是诀窍。显然,刷新部分想要更新传递的参数。事实证明,我一开始并不需要它来显示报告。

感谢Don!