在Reporting Service报告上设置数据源

时间:2009-12-31 15:54:05

标签: sql-server reporting-services

我有一个下拉列表,其中包含报告的名称,每个报告都有一个值(1,2,3 ......),当用户点击查看报告按钮时,会出现一个弹出窗口 这个弹出窗口是一个包含报表查看器的网页,在这个弹出页面的cs中我有一个swtich,它接受int这是报告的值eg.if我想显示第一个报告所以我选择了第一个报告下拉列表和所选值为1,它将传递到包含会话变量中的报表查看器的页面,并将其传递给切换然后案例1; ........ break 所以我想知道如何创建一个类型报告的对象,并在每种情况下将其绑定到报告查看器,我已经做了类似的东西,但我使用水晶报告和水晶报告查看器,其中有

CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.DataBind();

我有一个报告对象

rpt.SetDataSource(dt);        
ReportDocument rpt;

但是当我使用报告服务

时,我无法做那样的事情

所以请帮忙

感谢

2 个答案:

答案 0 :(得分:0)

您正在谈论Microsoft SQL Server Reporting Services(SSRS),对吗?

该方法与Crystal略有不同 - 基本上,SSRS默认为基于服务器的报告引擎,例如您的应用程序(Winforms或ASP.NET或其他任何东西)实际上并不在本地呈现报告,也不会在本地提供数据。

在SSRS中,这通常由报告本身和服务器处理。您通常只显示报告(可能配置了一些报告参数),但总而言之,报告服务器将获取数据,格式化报告,呈现报告,而您的应用程序最终只显示输出。

如果你想在本地呈现SSRS报告,你需要有一个* .rdlc文件 - 你有这个吗,你熟悉那个选项吗?

如果您这样做 - 当然,当您在本地呈现报告时,您还必须在本地提供数据。如果您使用ASP.NET或Winforms ReportViewer控件,则可以执行以下操作:

ReportViewer reportViewer = new ReportViewer();

reportViewer.ProcessingMode = ProcessingMode.Local;
reportViewer.LocalReport.ReportPath = "Report1.rdlc"; // supply path to the RDLC file
reportViewer.LocalReport.DataSources.Add(.........)

reportViewer.RefreshReport();

基本上,您需要告诉ReportViewer控件您正在处理本地渲染,然后您需要为其提供RDLC文件的路径,并且您可以向{添加尽可能多的数据源{1}}您需要收集报告。

这有帮助吗?否则,请再详细说明一下你的问题。

请参阅从Web服务here检索本地报告数据的VB.NET示例。

答案 1 :(得分:0)

我刚才尝试过这样做。我放弃了,因为它并不重要,但我的想法是这样的:

  1. 使用Web服务创建新数据源
  2. 使用Web服务更改报告上的数据源
  3. 在ReportViewer中呈现报告
  4. 使用网络服务将DataSource切换回原始版本。
  5. 我对ssrs的了解有限,但可能值得一试。