C# 如何使用报表查看器从asp网页打开ssrs报表
我正在尝试使用ReportViewer在我的网页上打开ssrs报告。对于报表服务器URL,我有:C# 如何使用报表查看器从asp网页打开ssrs报表,c#,asp.net,ssrs-2008,C#,Asp.net,Ssrs 2008,我正在尝试使用ReportViewer在我的网页上打开ssrs报告。对于报表服务器URL,我有: http://db_servers/ReportsServer_SENSORSQLSERVER 对于我的报告路径,我有: http://db_servers/ReportsServer_SENSORSQLSERVER/Pages/ReportViewer.aspx?%2fCustomer1&rs:Command=Render. 我已经浏览了很多网站和教程,了解如何添加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”。似乎什么都不管用。有什么想法吗?谢谢。您需要分离到服务器的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 });
}
}
受保护的无效页\u Init(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
//将ReportViewer的处理模式设置为远程
reportViewer.ProcessingMode=ProcessingMode.Remote;
ServerReport ServerReport=reportViewer.ServerReport;
//设置报表服务器URL和报表路径
serverReport.ReportServerUrl=
新Uri(“http:///reportserver");
serverReport.ReportPath=
“/AdventureWorks示例报告/销售订单详细信息”;
//创建销售订单号报告参数
ReportParameter salesOrderNumber=新的ReportParameter();
salesOrderNumber.Name=“salesOrderNumber”;
salesOrderNumber.Values.Add(“SO43661”);
//设置报告的报告参数
reportViewer.ServerReport.SetParameters(
新的ReportParameter[]{salesOrderNumber});
}
}
您应该用
“/”
替换“2%f”
问题在于ReportPath属性,例如:
%2fCustomer1
->/Customer1
这是一个旧的,但我为一个客户偶然发现了它。要获取报表URL,我发现最简单的方法是通过SSMS连接到报表服务器运行的SQL实例,然后打开报表服务器数据库,查询目录表中的路径字段。感谢您的回复。我尝试了上面的方法,但仍然得到一个错误:“找不到项目文件夹/reportname。(rsItemNotFound)我不确定您是否有报表的正确路径。它应该类似于/report folder/report name……您的示例中的路径似乎是从报表服务器GUI粘贴的路径……如果您的报表位于名为例如MySales的文件夹中,并且其中的报表名为Sales2012,则您需要报表路径将成为/MySales/sales 2012。