Imports Microsoft.Reporting.WinForms
Imports GrapeCity.ActiveReports.Document
Imports System.Globalization
Imports System.IO

Public Class frmPrintLayout
    Public datvon As Date

    Public showBar As Boolean = True

    Private WithEvents exportMenu As ToolStripMenuItem = New ToolStripMenuItem("Export")
    Dim art As String = ""
    Public Sub New()
        InitializeComponent()
    End Sub
    Public Sub New(ByVal art As String)
        InitializeComponent()
        Me.art = art
    End Sub

    'Private Sub frmPrintLayout_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
    '    If e.KeyCode = Keys.Enter = Keys.Return Or e.KeyCode = Keys.Enter Then
    '        btnPrint.PerformClick()
    '    End If
    'End Sub

    Private Sub frmPrintLayout_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Select Case art
            Case "AuswertungMWSTOffeneAntraegeMitVorauszahlung" : AuswertungMWSTOffeneAntraegeMitVorauszahlung()
            Case "AuswertungMWSTOffeneAntraegeMitVorauszahlungDetails" : AuswertungMWSTOffeneAntraegeMitVorauszahlungDetails()

        End Select
        Viewer.Toolbar.ToolStrip.Items.Add(exportMenu)
        'Hilfstexte in Toolbar eindeutschen
        Viewer.Toolbar.ToolStrip.Items(0).ToolTipText = "Seitenübersicht"
        Viewer.Toolbar.ToolStrip.Items(2).ToolTipText = "Drucken"
        Viewer.Toolbar.ToolStrip.Items(5).ToolTipText = "Kopieren"
        Viewer.Toolbar.ToolStrip.Items(6).ToolTipText = "Suchen"
        Viewer.Toolbar.ToolStrip.Items(10).ToolTipText = "aktueller Zoom"
        Viewer.Toolbar.ToolStrip.Items(12).ToolTipText = "an Fensterbreite anpassen"
        Viewer.Toolbar.ToolStrip.Items(13).ToolTipText = "vollständige Seite an Fenstergröße anpassen"
        Viewer.Toolbar.ToolStrip.Items(15).ToolTipText = "Einzelseitenansicht"
        Viewer.Toolbar.ToolStrip.Items(16).ToolTipText = "Bildlauf aktivieren"
        Viewer.Toolbar.ToolStrip.Items(17).ToolTipText = "Mehrseiten-Ansicht"
        Viewer.Toolbar.ToolStrip.Items(19).ToolTipText = "erste Seite"
        Viewer.Toolbar.ToolStrip.Items(20).ToolTipText = "vorige Seite"
        Viewer.Toolbar.ToolStrip.Items(21).ToolTipText = "aktuelle Seite"
        Viewer.Toolbar.ToolStrip.Items(22).ToolTipText = "nächste Seite"
        Viewer.Toolbar.ToolStrip.Items(23).ToolTipText = "letzte Seite"
        Viewer.Toolbar.ToolStrip.Items(25).ToolTipText = "Sprung rückwärts"
        Viewer.Toolbar.ToolStrip.Items(26).ToolTipText = "Sprung vorwärts"
        Viewer.Toolbar.ToolStrip.Items(30).ToolTipText = "Anzeige refreshen"
        Viewer.Toolbar.ToolStrip.Items(33).ToolTipText = "Ansicht-Modus"
        Viewer.Toolbar.ToolStrip.Items(34).ToolTipText = "Textauswahl-Modus"
        Viewer.Toolbar.ToolStrip.Items(35).ToolTipText = "Schnappschuss erstellen"
        If Not showBar Then
            Viewer.Toolbar.ToolStrip.Visible = False
            btnPrint.Visible = False
        End If
    End Sub


    Public Sub AuswertungMWSTOffeneAntraegeMitVorauszahlung()
        Me.Text = "Auswertung offene Anträge mit Vorauszahlung"
        Dim report As rptAuswertungMWSTOffeneAntraegeMitVorauszahlung = New rptAuswertungMWSTOffeneAntraegeMitVorauszahlung
        report.datVon = datvon
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub

    Public Sub AuswertungMWSTOffeneAntraegeMitVorauszahlungDetails()
        Me.Text = "Auswertung offene Anträge mit Vorauszahlung Details"
        Dim report As rptAuswertungMWSTOffeneAntraegeMitVorauszahlungDetails = New rptAuswertungMWSTOffeneAntraegeMitVorauszahlungDetails
        report.datVon = datvon
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub

    Public Sub AuswertungTKontrolle(sqlStr, datvon, datbis, statvon, statbis, brg, nl)
        Me.Text = "Auswertung "
        Dim report As rptTGestellungskontrolle = New rptTGestellungskontrolle
        report.datVon = datvon
        report.datBis = datbis
        report.statVon = statvon
        report.statBis = statbis
        report.nl = nl
        report.sqlStr = sqlStr
        report.brg = brg
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub

    Public Sub AuswertungTKontrolleDY(sqlStr, datvon, datbis, statvon, statbis, brg, nl)
        Me.Text = "Auswertung "
        Dim report As rptTGestellungskontrolleDY = New rptTGestellungskontrolleDY
        report.datVon = datvon
        report.datBis = datbis
        report.statVon = statvon
        report.statBis = statbis
        report.nl = nl
        report.sqlStr = sqlStr
        report.brg = brg
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub


    Public Sub AuswertungTKontrolleEZOLL(sqlStr, datvon, datbis, stat, brg, bestimmungszollstelleErreicht, operatorId)
        Me.Text = "Auswertung "
        Dim report As rptGestellungskontrolleEZOLL = New rptGestellungskontrolleEZOLL
        report.datVon = datvon
        report.datBis = datbis
        report.stat = stat
        report.operatorId = operatorId
        report.brg = brg
        report.sqlStr = sqlStr
        report.bestimmungszollstelleErreicht = bestimmungszollstelleErreicht
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub

    Public Sub AuswertungKontrolleLKW(datvon, datbis, FIRMA)
        Me.Text = "Auswertung LKWs"
        Dim report As rptKontrolleLKW = New rptKontrolleLKW
        report.datVon = datvon
        report.datBis = datbis
        report.FIRMA = FIRMA
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub
    Public Sub AuswertungKontrolleLKWZOLARIS(datvon, datbis, FIRMA)
        Me.Text = "Auswertung LKWs"
        Dim report As rptKontrolleLKW_Zolaris = New rptKontrolleLKW_Zolaris
        report.datVon = datvon
        report.datBis = datbis
        report.FIRMA = FIRMA
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub

    Public Sub AuswertungKontrolleLKWDAKOSY(datvon, datbis, FIRMA)
        Me.Text = "Auswertung LKWs"
        Dim report As rptKontrolleLKW_Dakosy = New rptKontrolleLKW_Dakosy
        report.datVon = datvon
        report.datBis = datbis
        report.FIRMA = FIRMA
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub

    Public Sub AuswertungKontrolleLKW_NCTSTR(datvon, datbis, FIRMA, GRN)
        Me.Text = "Auswertung LKWs"
        Dim report As rptKontrolleLKW_NCTSTR = New rptKontrolleLKW_NCTSTR
        report.datVon = datvon
        report.datBis = datbis
        report.FIRMA = FIRMA
        report.GRN = GRN
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub


    Public Sub AuswertungKontrolleLKWTELOTEC(datvon, datbis, FIRMA)
        Me.Text = "Auswertung LKWs"
        Dim report As rptKontrolleLKW_TELOTEC = New rptKontrolleLKW_TELOTEC
        report.datVon = datvon
        report.datBis = datbis
        report.FIRMA = FIRMA
        report.erstelltVon = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
        Viewer.LoadDocument(report)
        Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
    End Sub


    Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
        Try
            Me.Viewer.Print(True, True, True)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
            End Sub

    Private Sub exportMenu_Click(sender As Object, e As EventArgs) Handles exportMenu.Click
        Exportieren(Viewer.Document, "Auswertung offene Anträge mit Vorauszahlung")
    End Sub



    Public Shared Sub Exportieren(ByVal document As SectionDocument, ByVal Namensvorschlag As String)
        Try
            Dim datei As FileInfo = Nothing

            If Not ermittleDateiname(datei, Namensvorschlag) Then
                Exit Sub
            End If

            Select Case datei.Extension.ToUpper()
                Case ".pdf".ToUpper()
                    Dim pdfExport1 As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport()
                    pdfExport1.Export(document, datei.FullName)
                Case ".xlsx".ToUpper()
                    Dim xlsExport1 As New GrapeCity.ActiveReports.Export.Excel.Section.XlsExport()
                    xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx
                    xlsExport1.Export(document, datei.FullName)
                Case ".rtf".ToUpper()
                    Dim rtfExport1 As New GrapeCity.ActiveReports.Export.Word.Section.RtfExport()
                    rtfExport1.Export(document, datei.FullName)
                Case Else
                    MessageBox.Show("Es würde ein ungültiges Exportformat ausgewählt. Erlaubt sind 'pdf', 'rtf' und 'xlsx'.")
                    Exit Sub
            End Select

            If MessageBox.Show("Der Export wurde erfolgreich durchgeführt. Soll die Exportdatei jetzt geöffnet werden?", "Export", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) = DialogResult.Yes Then
                Process.Start(datei.FullName)
            End If
        Catch ex As Exception
            MessageBox.Show("Exportieren fehlgeschlagen. Fehler: " + ex.Message)
        End Try
    End Sub

    Private Shared Function ermittleDateiname(ByRef datei As FileInfo, ByRef Namensvorschlag As String) As Boolean
        Using saveDialog As New SaveFileDialog
            saveDialog.AddExtension = True
            saveDialog.CheckPathExists = True
            saveDialog.FileName = Namensvorschlag
            saveDialog.DefaultExt = ".pdf"
            saveDialog.Filter = "pdf-Dateien (*.pdf)|*.pdf|Word Dateien (*.rtf)|*.rtf|Excel Dateien (*.xlsx)|*.xlsx"
            saveDialog.OverwritePrompt = True
            saveDialog.ValidateNames = True
            saveDialog.FilterIndex = 0
            If saveDialog.ShowDialog() = DialogResult.OK Then
                datei = New FileInfo(saveDialog.FileName)
                Return True
            Else
                Return False
            End If
        End Using
    End Function

    Private Sub Viewer_Load(sender As Object, e As EventArgs) Handles Viewer.Load

    End Sub
End Class