如何使用报表查看器从 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)