簡體   English   中英

導出多個Crystal報表ASP.NET

[英]Export Multiple Crystal Reports ASP.NET

單擊導出按鈕時,我想導出2個不同的報告。 問題是該例程僅觸發一次,而我只能打印一份報告。 難道我做錯了什么? 我認為這與HTTPResponse有關,但我不確定。

這是我的代碼:

Dim badgeSize As Integer = 0 'Drop Down selection

    Dim badgeData As New DataSet 'Visitor Badge Data
    Dim badgeEmployeeData As New DataSet 'Employee Badge Data
    Dim badgeTotals As Integer = 0 'Totals for both

    badgeSize = ddlBadgeSize.SelectedValue

    ' Get Visitor Data
    badgeData = _DatabaseAccess.GetProjectReportData(sessionInfo.myEventID, sessionInfo.EventCreator)
    ' Get Employee Data
    badgeEmployeeData = _DatabaseAccess.GetProjectReportEmployeeData(sessionInfo.myEventID, sessionInfo.EventCreator)
    'Obtain Totals
    badgeTotals = badgeData.Tables(0).Rows.Count + badgeEmployeeData.Tables(0).Rows.Count

    If badgeTotals = 0 Then
        ShowMessage("There are no badges to print.")
        Exit Sub
    End If

    If badgeSize.Equals(0) Then 'Small 

        If badgeEmployeeData.Tables(0).Rows.Count > 0 Then
            If badgeEmployeeData.Tables(0).Rows.Count >= 6 Then
                PrintProjectBadges(badgeEmployeeData, "Employee", badgeSize)
            Else
                PrintStandardDymo(badgeEmployeeData, "Employee", 1)
            End If
        End If

        If badgeData.Tables(0).Rows.Count > 0 Then
            If badgeData.Tables(0).Rows.Count >= 6 Then
                PrintProjectBadges(badgeData, "Visitor", badgeSize)
            Else
                PrintStandardDymo(badgeData, "Visitor", 1)
            End If
        End If
   else
     'do somethign else
   endif

以及報告代碼:

Private Sub PrintProjectBadges(ByVal theData As DataSet, ByVal badgeType As String, ByVal badgeSize As Integer)
        Dim ourReport As New ReportDocument
        Dim crConnectionInfo As New ConnectionInfo(SetCrystalConnection)

        If badgeSize = 0 Then
            Try
                If badgeType = "Visitor" Then
                    ourReport.Load(Server.MapPath("SmallProjectBadge.rpt"), OpenReportMethod.OpenReportByDefault) 'LIVE SERVER USE
                Else
                    ourReport.Load(Server.MapPath("SmallProjectEmployeeBadge.rpt"), OpenReportMethod.OpenReportByDefault) 'LIVE SERVER USE
                End If

            Catch ex As Exception
                Dim TraceList As New ArrayList
                TraceList.Add("DBLog")
                DatabaseAccess.WriteToErrorLog("Visitor Registration", "Printing Project Badges", ex.Message, TraceEventType.Information, 1, TraceList)
                Exit Sub
            End Try

            ourReport.SetDataSource(theData.Tables("Project"))
        Else
            'Do somethign else...
        End If

        Response.Buffer = True
        'Clear the response content and headers
        Response.ClearContent()
        Response.ClearHeaders()

        SetLogon(ourReport, crConnectionInfo)

        'Export the Report to Response stream in PDF format and file name Customers
        ourReport.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, True, "Visitor_Badges")
        Response.End()
        'Response.Close()


    End Sub

任何幫助將非常感激。

響應一次只能發送一個文件-要導出兩個文件,您需要將它們導出到本地磁盤,並將它們組合成ZIP文件之類的內容,然后再將其發送回客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM