我有一个小的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之后我设置了参数以避免这种情况。提前谢谢。
答案 0 :(得分:0)
只需删除第crystalReportViewer1.RefreshReport();
行
这就是诀窍。显然,刷新部分想要更新传递的参数。事实证明,我一开始并不需要它来显示报告。
感谢Don!