Imports System
Imports System.Data
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Threading
'Imports CrystalDecisions.CrystalReports.Engine
'Imports CrystalDecisions.Shared
'''Funktionen für den Export der Journaldaten
Public Class Export
Dim filename As String
'''Auswertung erstellen und ggf. mittels DTO versenden
'''Datentabelle mit den Auswertungsdaten der Applikation
'''Format der Auswertung (txt, csv, xls, doc, pdf,
'''xml)
Public Function Create_Report(ByVal dt As DataTable, ByVal format As String, ByVal Applikation As String) As String
Try
filename = Params.TempPfad + Applikation + "_" + Microsoft.VisualBasic.Format(Now, "yyyyMMddHHmmss") + "_EDKB08_Log"
Select Case UCase(format)
Case "PDF"
filename = filename + ".pdf"
'CR_Report(dt, format) 20140204 MNK Ausbau CrystalReport Funktion
Case "XLS"
filename = filename + ".xls"
'CR_Report(dt, format) 20140204 MNK Ausbau CrystalReport Funktion
Case "DOC"
filename = filename + ".doc"
'CR_Report(dt, format) 20140204 MNK Ausbau CrystalReport Funktion
Case "CSV"
filename = filename + ".csv"
Extract_CSV(dt)
Case "TXT"
filename = filename + ".txt"
Extract_TXT(dt)
Case "XML"
filename = filename + ".xml"
Dim ds As New DataSet()
ds.Tables.Add(dt.Copy)
ds.WriteXml(filename)
ds.Dispose()
End Select
Return filename
Catch ex As Exception
PrintOut("Fehler Crystal:" + ex.Message, EventLogEntryType.Error)
Return ""
End Try
End Function
'''Journaldatei als CSV-Datei erstellen
'''Journaldaten
Private Sub Extract_CSV(ByVal dt As DataTable)
Dim s As String
Dim i As Integer
Dim c As Integer
Dim tw As TextWriter
tw = New StreamWriter(New FileStream(filename, FileMode.Create))
s = ""
For i = 0 To dt.Columns.Count - 1
s = s + dt.Columns(i).ColumnName + ";"
Next
tw.WriteLine(s)
s = ""
For i = 0 To dt.Rows.Count - 1
For c = 0 To dt.Columns.Count - 1
Try
s = s + CType(dt.Rows(i).Item(c), String) + ";"
Catch
s = s + ""
End Try
Next
tw.WriteLine(s)
s = ""
Next
tw.Flush()
tw.Close()
End Sub
'''Journaldatei als TXT-Datei erstellen
'''Journaldaten
Private Sub Extract_TXT(ByVal dt As DataTable)
Dim s As String
Dim i As Integer
Dim c As Integer
Dim tw As TextWriter
tw = New StreamWriter(New FileStream(filename, FileMode.Create))
s = ""
For i = 0 To dt.Columns.Count - 1
s = s + """" + dt.Columns(i).ColumnName + """" + ";"
Next
tw.WriteLine(s)
s = ""
For i = 0 To dt.Rows.Count - 1
For c = 0 To dt.Columns.Count - 1
Try
s = s + """" + CType(dt.Rows(i).Item(c), String) + """" + ";"
Catch
s = s + ""
End Try
Next
tw.WriteLine(s)
s = ""
Next
tw.Flush()
tw.Close()
End Sub
'''Crystal-Report-Druck
'''Datentabelle, welche an Crystal zum Druck übergeben
'''wird
'''Zu Exportierendes Format (XLS, DOC, PDF)
' Private Sub CR_Report(ByVal dt As DataTable, ByVal format As String)
' Try
' Dim CrystalReportDocument As ReportDocument
' Dim CrystalExportOptions As ExportOptions
' Dim CrystalDiskFileDestinationOptions As DiskFileDestinationOptions
' Dim ds As New DataSet()
' ds.Tables.Add(dt.Copy)
' CrystalReportDocument = New ReportDocument()
' CrystalReportDocument.Load(DivFnkt.ApplicationPath + "Journal1.rpt")
' CrystalReportDocument.SetDataSource(dt)
' CrystalReportDocument.SetDataSource(ds.Tables(0))
' CrystalDiskFileDestinationOptions = New DiskFileDestinationOptions()
' CrystalDiskFileDestinationOptions.DiskFileName = filename
' CrystalExportOptions = CrystalReportDocument.ExportOptions
' With CrystalExportOptions
' .DestinationOptions = CrystalDiskFileDestinationOptions
' .ExportDestinationType = ExportDestinationType.DiskFile
' Select Case UCase(format)
' Case "PDF"
' .ExportFormatType = ExportFormatType.PortableDocFormat
' Case "XLS"
' .ExportFormatType = ExportFormatType.Excel
' Case "DOC"
' .ExportFormatType = ExportFormatType.WordForWindows
' End Select
' End With
' CrystalReportDocument.Export()
' Try
' 'sorry for this code (RS 2006-11-14)
' CrystalReportDocument = Nothing
' CrystalDiskFileDestinationOptions = Nothing
' CrystalExportOptions = Nothing
' Catch ex As Exception
' PrintOut("Export.CR_Report()" + ex.Message, EventLogEntryType.Error)
' End Try
'Catch ex As Exception
' PrintOut("Aufbereitung Crystal:" + ex.Message, EventLogEntryType.Error)
' End Try
' End Sub
End Class