如何将多个报告添加到同一ReportViewer?

时间:2012-03-03 13:19:52

标签: asp.net reporting-services reportviewer

我有一个情况,我正在使用SSRS报告,我发送4个参数。对我来说,报告工作正常。现在出现的另一个问题是,客户需要在同一报表查看器中查看多个报表(不同数据),即逐页(单击下一页)。

我使用程序发送参数?我怎样才能实现这个目标?

ReportViewer1.ServerReport.ReportServerCredentials = new ReportViewerCredentials(UserName, Password, Domain);
ReportViewer1.ServerReport.ReportServerUrl = new Uri(System.Configuration.ConfigurationManager.AppSettings["ReportServerURL"].ToString()); // Report Server URL

string strUrl = string.Empty;
strUrl = WebConfigurationManager.AppSettings["ReportAppName"].ToString() + "/" + ReportName.Trim();
ReportViewer1.ServerReport.ReportPath = "/" + strUrl;

ReportViewer1.ShowParameterPrompts = true;
ReportViewer1.ShowPrintButton = true;
ReportViewer1.ShowExportControls = true;

ReportParameter[] reportParameters = new ReportParameter[4];
reportParameters[0] = new ReportParameter("AccountNo", AccNo, false);
reportParameters[1] = new ReportParameter("ServiceCode", sType, false);
reportParameters[2] = new ReportParameter("BillMonth", Month, false);
reportParameters[3] = new ReportParameter("BillYear", Year, false);

ReportViewer1.ServerReport.SetParameters(reportParameters);
ReportViewer1.ServerReport.Refresh();

在上面的应用程序中,您可以看到即时发送4个参数。单一帐号可以申请。我的新要求是,我将拥有多个帐号,我需要从中检索数据。在REPORT中,我应该只显示一个帐号的数据。

我需要将其余部分显示为同一报告中的页面,因此当用户点击它时,他/她可以浏览它。是否有可能实现这一目标?如何将其显示为Pages?

请帮我解决这个问题。

因此,如果我可以在与页面相同的报告中获取此信息,我们也可以将其下载到一个文件中。

2 个答案:

答案 0 :(得分:1)

对于将原始数据填充到报表中的SQL查询,请进行两次单独的查询,然后将结果合并到一个返回集中。

select customer, address, balance, "customer" as Table from customer where balance > 0

union all

select products as customer, price as balance, "products" as Table from products

假设您知道需要哪些产品系列。现在您拥有原始数据。您的报表设计器中将有多个表。按表名过滤,以告知哪些数据要转到哪个表。

答案 1 :(得分:0)

要向一个报表添加多个报表,请在查询中执行联合,并使用列作为数据所属报表的标识符。如果列号类型和名称不匹配,则必须使用填充信息,因为联合将不起作用。

现在您已将所有数据用于报表设计器,以便将新报表数据分配到新页面。希望这有帮助