ReportViewerを使用してWebページでssrsレポートを開こうとしています。 Report ServerlのURLについては、次のとおりです。
http://db_servers/ReportsServer_SENSORSQLSERVER
そして私のレポートパスのために私は持っています:
http://db_servers/ReportsServer_SENSORSQLSERVER/Pages/ReportViewer.aspx?%2fCustomer1&rs:Command=Render.
URLを追加する方法について多くのサイトとチュートリアルを調べましたが、それでも次のようなエラーが表示されます。リンクの長さは260文字未満である必要があります。 (rsInvalidItemPath)。また、レポートサーバーがネイティブモードになっていることにも触れておきます。レポートサーバーが別のコンピューターにあるため、レポートビューアーの処理モードがリモートであることを確認しました。サーバーの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 });
}
}
上記から取得 WebForms ReportViewerコントロールの使用 。
"2%f"
を"/"
に置き換える必要があります。
問題は、ReportPathプロパティにあります。例:
%2fCustomer1
-> /Customer1
SSRSを開くための非常に簡単な方法:
string reportName = "TestReport";
string displayName = reportName;
bool isDomainAuthentication = false;
var reportParameters = new List<ReportParameter>();
reportParameters.AddRange((List<ReportParameter>)Session["ReportParameters"]);
string ReportServerURL = "http://DESKTOP38/ReportServer_SQLEXPRESS";
reportViewer1.ServerReport.ReportServerUrl = new Uri(ReportServerURL);
reportViewer1.ServerReport.ReportPath = "FolderName" + reportName;
reportViewer1.ServerReport.DisplayName = displayName;
reportViewer1.ShowPrintButton = true;
reportViewer1.ShowToolBar = true;
reportViewer1.ShowCredentialPrompts = false;
if (!isDomainAuthentication)
{
string userId = "DESKTOP38"; //Username
string password = "test";
string domain = ReportServerURL;
IReportServerCredentials reportCredentials = new ReportServerCredentials(userId, password, domain);
reportViewer1.ServerReport.ReportServerCredentials = reportCredentials;
}
if (reportParameters != null)
{
reportViewer1.ServerReport.SetParameters(reportParameters);
}
this.reportViewer1.ServerReport.Refresh();