2015-10-06 82 views
0

我有一个小的Winforms项目。 .NetFramework 4.5,CR 13.0.14。在ReportForm中:为什么我的CR SetParameterValue看起来不起作用

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负载(在批号引用传递)的报告,仍然提示我的时候,才加载。我可以手动输入,这将工作。但是我设置了数据源以避免这种情况后设置了参数。提前致谢。

+0

您是否尝试过在设置ReportSource行后移动Setparameter()代码?它仍然提示吗? 另一个选项可能是检查报告本身..右键单击参数报告 - >编辑 - >在值选项面板下,你会看到几个提示设置..确保它们设置为False。 – aMazing

+0

谢谢@amazing,我检查了我的参数字段,并将它们设置为False。移动SetParameter不会改变行为。不过,我注意到如果我删除了我的选择公式,报告加载时它不会提示我。 – Randy

+0

并且您的记录选择公式在报告中?没有通过代码传递? – aMazing

回答

0

唐威廉姆斯在SAP提供我正确的答案几个其他的代码检查后:

只需删除该行crystalReportViewer1.RefreshReport();

这并获得成功。显然刷新部分想要更新传递的参数。事实证明,我并不需要它首先显示报告。

感谢Don!

+0

好。让你通过这个问题到另一个.. ;-) – aMazing