如何:更改rdlc导出时的图像可见性

时间:2008-12-01 07:33:03

标签: rdlc

我在rdlc报告中有一张图片。 在报告中我将可见性设置为false 当我导出到PDF或EXCEL时,我希望这样 将图像可见性设置为true。

  • 我该怎么做?
  • 是抓住出口事件的一种方式吗?
  • 我不想创建自定义'导出'。

谢谢......

1 个答案:

答案 0 :(得分: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

就是这样。请问,为什么不想创建自定义导出事件?