Как: изменить видимость изображения при экспорте rdlc - PullRequest
3 голосов
/ 01 декабря 2008

У меня есть изображение в отчете rdlc. в отчете я установил видимость на ложь Я хочу, чтобы, когда я экспортировал в PDF или EXCEL Чтобы установить для видимости изображения значение true.

  • Как мне это сделать?
  • Способ поймать событие экспорта?
  • Я не хочу создавать пользовательский «экспорт».

Спасибо ...

1 Ответ

2 голосов
/ 04 марта 2009

Единственный способ, которым я узнал, как это сделать, - это создать собственную функцию «экспорта» ... которая на самом деле довольно проста.

Шаг 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

Вот и все. Могу я спросить, почему вы не хотите создать пользовательское событие экспорта?

...