【发布时间】:2017-06-05 20:26:57
【问题描述】:
因此,在此应用程序中,最终用户在一个表单上输入所需的 RMA 信息,然后可以选择将其加载到报告视图中并打印。因为这个数据库是多年前放在一起的,所以空值位于 [修复区域] 列中。我需要的是弄清楚如果检测到空值,如何将“区域”的参数值设置为“未知”。下面是当前使用的方法的代码。
public void GenerateServiceReport(string[] RMArray, string TempDataset, DataTable Results)
{
serviceReportViewer.LocalReport.ReportPath = "D:\\vsprojects\\projects\\emsdashboard\\emsdashboard\\RMAServiceReport.rdlc";
ReportParameter dateReceived = new ReportParameter("DateParameter", RMArray[0]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { dateReceived });
ReportParameter rmaNumber = new ReportParameter("RMAParameter", RMArray[1]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { rmaNumber });
ReportParameter workOrder = new ReportParameter("WorkOrderParameter", RMArray[2]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { workOrder });
ReportParameter qty = new ReportParameter("qtyParameter", RMArray[3]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { qty });
ReportParameter company = new ReportParameter("CompanyParameter", RMArray[4]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { company });
ReportParameter customer = new ReportParameter("CustomerParameter", RMArray[5]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { customer });
ReportParameter ecn = new ReportParameter("ecnParameter", RMArray[6]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { ecn });
ReportParameter warranty = new ReportParameter("WarrantyParameter", RMArray[7]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { warranty });
ReportParameter action = new ReportParameter("ActionParameter", RMArray[8]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { action });
ReportParameter part = new ReportParameter("PartParameter", RMArray[9]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { part });
ReportParameter area = new ReportParameter("AreaParameter", RMArray[10]);
serviceReportViewer.LocalReport.SetParameters(new ReportParameter[] { area });
serviceReportViewer.LocalReport.DataSources.Clear();
serviceReportViewer.LocalReport.DataSources.Add(new ReportDataSource(TempDataset, Results));
serviceReportViewer.RefreshReport();
}
private void RMAServiceReport_Load(object sender, EventArgs e) {
this.serviceReportViewer.RefreshReport();
this.serviceReportViewer.RefreshReport();
this.serviceReportViewer.RefreshReport();
}
【问题讨论】:
-
为什么要连续刷新报表3次?还需要刷新吗?
-
如果你想在报表中显示一些特殊的值,那么你必须要么将条件放入 RDLC 中,要么在填充数据时准备适当的字符串。通常除了琐碎的条件外,我认为从 RDLC 中以易于使用的格式准备数据会更简单、更清晰。
标签: c# winforms reportviewer