DotNet · 2022年5月6日

RDLC报表导出时设定导出目录,导出文件名称规则,或提示

原理是拉截ReportExport事件,然后由自定义代码来实现导出过程
可设定导出目录,
可设定文件名称规则

可设定….
  
  Private Sub ReportViewer1_ReportExport(sender As Object, e As ReportExportEventArgs) Handles ReportViewer1.ReportExport
        e.Cancel = True        ‘取消原事件响应
        Dim extension As String
        With GetRenderingExtension(e.Extension)
            If (.mResult <> EMSuccessFail.resultSuccess) Then
                MsgBox("无法导出报表:" & .mInfo, MsgBoxStyle.OkOnly, My.Application.Info.Title)
                Return
            End If
            extension = .mValue
        End With


        Dim pFilePath As String = MyHub.mConfig.mStoreReportPath
        If (String.IsNullOrEmpty(pFilePath)) Then
            pFilePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
        End If


        Dim saveFileDialog As New SaveFileDialog With
    {
        .Title = "保存路径",
        .CheckPathExists = True,
        .InitialDirectory = pFilePath,    ' 
        .Filter = e.Extension.LocalizedName + " (*" + extension + ")|*" + extension + "|All files(*.*)|*.*",
        .FileName = DateTime.Now.ToString("yyyy年MM月dd日HH时"),
        .FilterIndex = 0
    }


        If (saveFileDialog.ShowDialog(Me) = DialogResult.OK) Then
            Me.ReportViewer1.ExportDialog(e.Extension, e.DeviceInfo, saveFileDialog.FileName)
            Dim pDirectory As New FileInfo(saveFileDialog.FileName)
            MyHub.mConfig.mStoreReportPath = pDirectory.DirectoryName
            MyHub.mConfig.save(MyHub.mMain.mHost.getConnectionProvider.connectionString)
        End If


        ' Here's where I call my method to prompt user to open the file.
        'RadExportHelper.OpenFileWithPrompt(saveFileDialog.FileName);                
    End Sub


    Private Function GetRenderingExtension(pExtension As RenderingExtension) As SuccessFailResult(Of String)
        Select Case (pExtension.Name)
            Case "EXCEL"
                Return SuccessFailResult(Of String).createSuccessResult(".xls")
            Case "EXCELOPENXML"
                Return SuccessFailResult(Of String).createSuccessResult(".xlsx")
            Case "WORD"
                Return SuccessFailResult(Of String).createSuccessResult(".doc")
            Case "WORDOPENXML"
                Return SuccessFailResult(Of String).createSuccessResult(".docx")
            Case "PDF"
                Return SuccessFailResult(Of String).createSuccessResult(".pdf")
            Case "CSV"
                Return SuccessFailResult(Of String).createSuccessResult(".csv")
            Case "MHTML"
                Return SuccessFailResult(Of String).createSuccessResult(".mhtml")
            Case "IMAGE"
                Return SuccessFailResult(Of String).createSuccessResult(".tif")
            Case "XML"
                Return SuccessFailResult(Of String).createSuccessResult(".xml")
            Case "HTML4.0"
                Return SuccessFailResult(Of String).createSuccessResult(".html")
            Case Else
                Return SuccessFailResult(Of String).createFailResult("不支持的输出类型")
        End Select
    End Function

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞