2

問題をグーグルで検索しようとしましたが、問題について何も見つかりませんでした。

ReportViewerを使用してレポートをエクスポートするときに、ReportingServicesからレポートの名前を動的に変更したいと思います。基本的に、フォーマットはになりますreportName + timestamp

C#またはReporting Services自体を使用してそれを行う方法はありますか?

これが私のページにreportviewerを含める方法です:

<rsweb:ReportViewer ID="rv" runat="server" ShowToolBar="true" ShowParameterPrompts="false"
    BackColor="#F0F8FF" Height="1200px" Width="100%" ProcessingMode="Remote" EnableViewState="true"
    Visible="false" SizeToReportContent="True">
    <LocalReport EnableExternalImages="True">
    </LocalReport>
</rsweb:ReportViewer>
4

3 に答える 3

7

@Devester-あなた自身の問題の解決策を投稿してくれてありがとう。それは高く評価されており、私たちの残りの人にとってそれをより簡単にします!

したがって、あなたのリードから、ローカルレポートを使用している(つまり、Reporting Servicesを使用していない)ソリューションでは、通常「MyReport.rdlc」から「MyReport」としてPDFにエクスポートされる変更に追加する必要があるのはこれだけであることがわかりました。 .pdf "を他の何かに:

this.rptViewer.LocalReport.DisplayName = _reportName +"_"+ DateTime.Now.ToString("yyyyMMdd HH:mm");

于 2015-02-07T01:48:21.877 に答える
3

私は簡単な方法で問題を解決しました。以下のコードで誰かを助けられることを願っています。

    protected void btnCreate_Click(object sender, System.EventArgs e)
    {
        if (ddlExportFormat.SelectedIndex != 0)
        {
            ExportReport(ddlExportFormat.SelectedValue);
            btnShow_Click(sender, e);
        }
    }

    private void ExportReport(String format)
    {
        // Variables
        Warning[] warnings;
        string[] streamIds;
        string mimeType = string.Empty;
        string encoding = string.Empty;
        string extension = string.Empty;

        string fileName = _reportName +"_"+ DateTime.Now.ToString("yyyyMMdd HH:mm"); 


        // Setup the report viewer object and get the array of bytes
        ReportViewer viewer = new ReportViewer();
        viewer.ProcessingMode = ProcessingMode.Local;

        viewer.ServerReport.ReportServerUrl = new System.Uri(_reportServerUrl);
        viewer.ServerReport.ReportPath = _reportPath;

        if (this.PrepareReportParameters())
        {
            viewer.ServerReport.SetParameters(lstReportParameters);
        }


        byte[] bytes = viewer.ServerReport.Render(format, null, out mimeType, out encoding, out extension, out streamIds, out warnings);


        // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
        Response.Buffer = true;
        Response.Clear();
        Response.ContentType = mimeType;
        Response.AddHeader("content-disposition", "attachment; filename=" + fileName + "." + extension);
        Response.BinaryWrite(bytes); // create the file
        Response.Flush(); // send it to the client to download
    }

http://beta.codeproject.com/Questions/277989/How-to-export-rdlc-report-to-PDF-without-using-Repへのクレジット

于 2012-11-30T15:13:51.097 に答える
0

その1行のコードRptViewer.ServerReport.DisplayName="ファイル名はここにあります";

于 2016-12-24T06:05:56.540 に答える