RDLC локальный отчет пытается отобразить перед загрузкой источника данных

Я создал локальный отчет, который содержит несколько вложенных отчетов. Я пытаюсь загрузить отчет прямо в PDF на основе нажатия кнопки.

Я попытался показать отчет с помощью средства просмотра отчетов, и он хорошо отображается, но когда я пытаюсь выполнить рендеринг непосредственно в PDF, я получаю сообщение об ошибке источника данных. Когда я отлаживаю код, я замечаю, что моя функция подпроцессинга работает до тех пор, пока функция вызова кнопки не завершится и не выдаст ошибку.

Dim reportParam As New ReportParameter("appId", appid)
    Dim reportParam2 As New ReportParameter("appDate", appDate)
    Dim reportParam3 As New ReportParameter("auditDate", Now)
    Dim reportArray As New ReportParameterCollection
    reportArray.Add(reportParam)
    reportArray.Add(reportParam2)
    reportArray.Add(reportParam3)
    AddHandler ReportViewer1.LocalReport.SubreportProcessing, AddressOf    SetSubDataSource
     ReportViewer1.LocalReport.SetParameters(reportArray)
    ObjectDataSource1.SelectParameters("appID").DefaultValue = appid
    ObjectDataSource1.SelectParameters("appDate").DefaultValue = appDate
    ObjectDataSource1.DataBind()
    Dim warnings As Warning() = Nothing
    Dim streamids As String() = Nothing
    Dim mimeType As String = Nothing
    Dim encoding As String = Nothing
    Dim extension As String = Nothing
    Try
        ReportViewer1.DataBind()
        ReportViewer1.LocalReport.Refresh()

        Dim byteViewer As Byte()
        byteViewer = ReportViewer1.LocalReport.Render("PDF", Nothing, mimeType, encoding, extension, streamids, warnings)
        Response.Buffer = True
        'Response.Clear()

        Response.ContentType = mimeType
        Response.AddHeader("content-disposition", "attachment; filename=test.pdf")
        Response.BinaryWrite(byteViewer)
        Response.OutputStream.Write(byteViewer, 0, byteViewer.Length)
        Response.Flush()
        Response.Close()

Заранее спасибо за совет, я просто пытаюсь выяснить, как получить отчет для загрузки источников данных до его рендеринга, а не после завершения этой функции.

0 ответов

Другие вопросы по тегам