3
4

1 に答える 1

2

私がそれを行う方法を見つけた唯一の方法は、カスタムの「エクスポート」関数を作成することでした...これは本当に簡単です。

ステップ 1: レポートに「ShowImage」というパラメーターを作成します。String のデータ型を使用し、プロンプトを非表示にし、デフォルト値の "False" を設定しました。こうすることで、ページのレポート ビューアーでレポートを最初に実行するときに、レポートが非表示になることはありません。

ステップ 2: 画像の可視性プロパティを次の式に変更します。

=CBool(Parameters!ShowImage.Value)

ステップ 3: レポート ビューアーでエクスポート コントロールを非表示にします。これが私の例です:

<rsweb:ReportViewer ID="ReportViewer1"  runat="server" ShowExportControls="false" Font-Names="Verdana" Font-Size="8pt">
        <LocalReport ReportPath="Report1.rdlc" >
        </LocalReport>
    </rsweb:ReportViewer>

ステップ 4: ページにボタンを追加し、カスタム エクスポートをコーディングします。手順 1 で作成したパラメーターを必ず設定する必要があります。

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

    'Create ReportViewer
    Dim viewer As New Microsoft.Reporting.WebForms.ReportViewer()
    Dim p(0) As Microsoft.Reporting.WebForms.ReportParameter

    p(0) = New Microsoft.Reporting.WebForms.ReportParameter("ShowImage", "True")

    viewer.LocalReport.ReportPath = Server.MapPath("Report1.rdlc")
    viewer.LocalReport.SetParameters(p)

    'Export to PDF
    Dim reportContent As Byte() = viewer.LocalReport.Render("PDF", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)

    'Return PDF
    Me.Response.Clear()
    Me.Response.ContentType = "application/pdf"
    Me.Response.AddHeader("Content-disposition", "attachment; filename=Report.pdf")
    Me.Response.BinaryWrite(reportContent)
    Me.Response.End()

End Sub

それでおしまい。カスタム エクスポート イベントを作成しない理由をお聞かせください。

于 2009-03-03T21:17:48.613 に答える