假设您有一个CustomerReport.rdlc报告,该报告适用于一个客户....
是否可以在同一报告查看器中拥有多个客户报告?
如果不是另一种解决方案?
答案 0 :(得分:1)
是的,可以为所有客户提供一份报告。基本上,您定义报表模板CustomerReport.rdlc以从某些数据集(存储过程或数据层中的某个方法)获取数据。
代表。你的方法应该是这样的:
public DataTable GetCustomerDetails(int customerID)
{
//call stored procedure
}
然后在ReportViewer的页面上执行以下操作:
DataTable data = GetCustomerDetails(1);
this.ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;
this.ReportViewer1.LocalReport.ReportPath = "CustomerReport.rdlc";
this.ReportViewer1.LocalReport.DataSources.Clear();
this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("[Datasource name defined in CustomerReport.rdlc]", data));
this.ReportViewer1.LocalReport.Refresh();
答案 1 :(得分:0)
单个reportviewer控件将显示单个.rdlc文档,以及“父”.rdlc中一次包含的任何子报表。如果您使用Web表单,最好不要尝试将第二个报表“重新加载”到报表查看器中。最好清空包含reportviewer的div并创建reportviewer控件的新实例并将其插入容器(div / span / etc。)
之后,只需确保将客户特定数据指定为数据源即可。
答案 2 :(得分:0)
解决方案似乎是代码生成rdlc !!