如何使用报表查看器从 asp 网页打开 s-s-rs 报表

Posted

技术标签:

【中文标题】如何使用报表查看器从 asp 网页打开 s-s-rs 报表【英文标题】:how to open s-s-rs report from asp web page using report viewer 【发布时间】:2012-09-26 18:14:38 【问题描述】:

我正在尝试使用 ReportViewer 在我的网页上打开一个 s-s-rs 报告。对于我有的报告服务器 URL:

http://db_servers/ReportsServer_SENSORSQLSERVER

对于我的报告路径,我有:

http://db_servers/ReportsServer_SENSORSQLSERVER/Pages/ReportViewer.aspx?%2fCustomer1&rs:Command=Render.

我浏览了许多有关如何添加 URL 的网站和教程,但我仍然收到一条错误消息:我的链接长度必须低于 260 个字符。 (rsInvalidItemPath)。我还想提一下,我的报表服务器处于本机模式。我的报表服务器位于另一台计算机上,因此我确保报表查看器上的处理模式是远程的。每当我访问 surver url 时,我都可以清楚地看到我的报告列表,当我点击报告时,我也可以看到它,因此我知道我的 url 是正确的。我尝试在我的报告路径 URL 前添加一个斜杠,将“2%f”替换为空格。似乎没有任何效果。任何的想法?谢谢。

【问题讨论】:

【参考方案1】:

您需要分离出服务器的 URL、报告路径并将参数添加到参数数组中。

这是一个示例:

    protected void Page_Init(object sender, EventArgs e)

    if (!Page.IsPostBack)
    
        // Set the processing mode for the ReportViewer to Remote
        reportViewer.ProcessingMode = ProcessingMode.Remote;

        ServerReport serverReport = reportViewer.ServerReport;

        // Set the report server URL and report path
        serverReport.ReportServerUrl =
            new Uri("http://<Server Name>/reportserver");
        serverReport.ReportPath =
            "/AdventureWorks Sample Reports/Sales Order Detail";

        // Create the sales order number report parameter
        ReportParameter salesOrderNumber = new ReportParameter();
        salesOrderNumber.Name = "SalesOrderNumber";
        salesOrderNumber.Values.Add("SO43661");

        // Set the report parameters for the report
        reportViewer.ServerReport.SetParameters(
            new ReportParameter[]  salesOrderNumber );
    

以上取自Using the WebForms ReportViewer Control。

【讨论】:

感谢您的回复。我尝试了上述方法,但仍然收到错误消息:“找不到项目文件夹/报告名称。(rsItemNotFound) 我不确定您的报告路径是否正确。它应该看起来像 /report folder/report name.... 您在示例中的内容似乎是从报表服务器 GUI 粘贴的路径.... 如果您的报表位于名为 MySales 的文件夹中,并且在里面如果报告名为 Sales2012,那么您希望报告路径为 /MySales/Sales2012。【参考方案2】:

您应该将"2%f" 替换为"/"

问题在于您的 ReportPath 属性,例如:

%2fCustomer1 -> /Customer1

【讨论】:

【参考方案3】:

这是一个旧的,但我为一个客户撞到了它。要获取报表 URL,我发现最简单的方法是通过 SSMS 连接到运行报表服务器的 SQL 实例,然后打开 ReportServer 数据库,并在目录表中查询路径字段。

【讨论】:

以上是关于如何使用报表查看器从 asp 网页打开 s-s-rs 报表的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个报表查看器中使用相同的页眉和页脚?

怎么查看网页使用的是啥程序语言

如何使用 pyqt5 和 qt 设计器从主对话框窗口打开第二个窗口

使用asp.net dateaable 做统计表并且网页上显示的表和导出的Excel 一模一样 根据领导看报表需求两个报表和一起 (add algorithm)

iis运行asp网页显示空白

如何使用Ajax从FastReport Web API获取报表