web-dev-qa-db-ja.com

レポートビューアを使用してaspWebページからssrsレポートを開く方法

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」をスペースに置き換えてみました。何も機能していないようです。何か案が?ありがとう。

9
Rick

サーバーへの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コントロールの使用

11
Kevin LaBranche

"2%f""/"に置き換える必要があります。

問題は、ReportPathプロパティにあります。例:

%2fCustomer1-> /Customer1

1
Daniel

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();
0
Dilip Oganiya