Imports GrapeCity.ActiveReports


Public Class frmEinheitspapier
    Dim EPBES As cEPBes
    Dim BERECHNUNGS_BOGEN As cBerechnungsbogen
    Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
    Dim WT_LIST As VERAG_PROG_ALLGEMEIN.cZollTarifAtlas_LIST


    Private Sub pic_Click(sender As Object, e As EventArgs)
    End Sub

    Private Sub Panel3_Paint(sender As Object, e As PaintEventArgs)

    End Sub

    Private Sub frmEinheitspapier_Load(sender As Object, e As EventArgs) Handles Me.Load
        cboAbriss777.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("0", "0"))
        cboAbriss777.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("12", "12"))
        cboAbriss777.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("14", "14"))
        cboAbriss777.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("17", "17"))
        cboAbriss777.changeItem("12")

        cboAbriss778.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("0", "0"))
        cboAbriss778.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("12", "12"))
        cboAbriss778.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("14", "14"))
        cboAbriss778.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("17", "17"))
        cboAbriss778.changeItem("12")

        EPBES = New cEPBes()
        BERECHNUNGS_BOGEN = New cBerechnungsbogen()
        initCBO()
        WT_LIST = New VERAG_PROG_ALLGEMEIN.cZollTarifAtlas_LIST
        UsrCntlEinheitspapier1.WT_LIST = WT_LIST
        cProgramFunctions.initDrucker(cboPrinter, "TALLY")

    End Sub

    Sub initCBO()
        cboSearch.fillWithSQL("SELECT EPBes.ID, [INDEX]  FROM Berechnungsbogen INNER JOIN EPBes ON EPBes.id=Berechnungsbogen.ID ORDER BY [INDEX]", False, "FMZOLL", True)
    End Sub
    Private Sub frmEinheitspapier_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Me.Height = My.Computer.Screen.WorkingArea.Height
        Me.Top = 0

        'Nachdem WT_LIST gesetzt wurde:
        UsrCntlEinheitspapier1.init()
        UsrCntlEinheitspapier1.FlowLayoutPanel.Controls.Clear()
        UsrCntlEinheitspapier1.addPos()
    End Sub

    Private Sub btnLaden_Click(sender As Object, e As EventArgs) Handles btnLaden.Click
        If cboSearch._value <> "" Then
            '   resetForm(False)
            EPBES = New cEPBes(cboSearch._value)

            BERECHNUNGS_BOGEN = New cBerechnungsbogen(cboSearch._value)
            UsrCntlEinheitspapier1.removeAllPos()

            fillData()
            txtSuchbegriff.Text = BERECHNUNGS_BOGEN.Index
        End If
    End Sub

    Sub fillData()
        Me.Cursor = Cursors.WaitCursor
        Try

            UsrCntlEinheitspapier1.cboZulassungsinhaber.changeItem("")

            UsrCntlEinheitspapier1.cboAnmeldung1._value = If(EPBES.ANMELDUNG1, "")
            UsrCntlEinheitspapier1.cboAnmeldung2._value = If(EPBES.ANMELDUNG2, "")

            UsrCntlEinheitspapier1.txtVordrucke1.Text = If(EPBES.Vordrucke1, "")
            UsrCntlEinheitspapier1.txtVordrucke2.Text = If(EPBES.Vordrucke2, "")

            UsrCntlEinheitspapier1.cboFiliale.changeItem(If(EPBES.FilialenNr, ""))
            UsrCntlEinheitspapier1.txtAbfertigungsnummer.Text = If(EPBES.AbfertigungsNr, "")
            UsrCntlEinheitspapier1.txtUnternummer.Text = If(EPBES.UnterNr, "")

            UsrCntlEinheitspapier1.txtAnmelder.Text = If(EPBES.Anmelder, "")
            UsrCntlEinheitspapier1.txtVertreter.Text = If(EPBES.Vertreter, "")
            UsrCntlEinheitspapier1.txtAnmelderVertreterNr.Text = If(EPBES.AnmelderVertreterNr, "")
            UsrCntlEinheitspapier1.txtEmpfänger.Text = If(EPBES.Empfänger, "")
            UsrCntlEinheitspapier1.txtEmpfängerNr.Text = If(EPBES.EmpfängerNr, "")
            '  UsrCntlEinheitspapier1.txtBemessungsgrundlage.Text = If(EPBES.Bemessungsgrundlage, "")


            UsrCntlEinheitspapier1.cboZulassungsinhaber.changeItem(If(EPBES.Bewilligungsnummer, ""))
            If UsrCntlEinheitspapier1.cboZulassungsinhaber._value = "" Then 'AndAlso EPBES.Zulassungsinhaber Is Nothing Then
                UsrCntlEinheitspapier1.cboZulassungsinhaber.Text = If(EPBES.Zulassungsinhaber, "")
            End If
            UsrCntlEinheitspapier1.txtBewilligungsnummer.Text = If(EPBES.Bewilligungsnummer, "")
            UsrCntlEinheitspapier1.txtUnterschrift.Text = If(EPBES.Unterschrift, "")

            ' For Each Pa As usrcntlEinheitspapierPos In UsrCntlEinheitspapier1.FlowLayoutPanel.Controls
            'Pa.remo()
            '   Next

            ' UsrCntlEinheitspapier1.FlowLayoutPanel.Controls.Clear()
            ' UsrCntlEinheitspapier1.POS_Zeahler = 0

            Me.SuspendLayout()
            UsrCntlEinheitspapier1.SuspendLayout()
            For Each P In EPBES.POS
                UsrCntlEinheitspapier1.addPos(P)
            Next
            Me.ResumeLayout()
            UsrCntlEinheitspapier1.ResumeLayout()

            If False Then

                If UsrCntlEinheitspapier1.FlowLayoutPanel.Controls.Count > 0 Then
                    Dim c As usrcntlEinheitspapierPos = UsrCntlEinheitspapier1.FlowLayoutPanel.Controls(0)
                    c.txtWarenbezeichnung.Text = If(EPBES.Warenbezeichnung, "")
                    c.txtPackstuecke.Text = If(EPBES.Packstücke, "")
                    '  c.cboPraeferenz.changeItem(If(EPBES.Präferenz, ""))
                    c.cboPraeferenz.Text = If(EPBES.Präferenz, "")
                    c.txtKontingent.Text = If(EPBES.Kontingent, "")
                    c.txtEigenmasse.Text = If(EPBES.Eigenmasse, "") 'FRÜHER::- -> varialer Wert, nicht laden
                    c.txtWtNr1.Text = If(EPBES.Warennummer1, "")
                    c.txtWtNr2.Text = If(EPBES.Warennummer2, "")
                    c.txtWtNr3.Text = If(EPBES.Warennummer3, "")
                    c.txtWtNr4.Text = If(EPBES.Warennummer4, "")
                    c.txtWtNr5.Text = If(EPBES.Warennummer5, "")

                    c.txtBesondereVermerke.Text = If(EPBES.BesondereVermerke, "")
                    c.cboUrsprungsland.changeItem(If(EPBES.UrsprungslandCode, ""))
                    c.txtBesondereMaßenheit.Text = If(EPBES.BesondereMasseinheit, "")
                    c.txtSumAnmeldungVorpapier.Text = If(EPBES.SumAnmeldungVorpapier, "")
                    c.txtBemessungsgrundlage.Text = If(EPBES.Bemessungsgrundlage, "")
                    c.txtVerfahren.Text = If(EPBES.Verfahren, "")
                End If
            End If
            'EPBES.Warenbezeichnung

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Me.Cursor = Cursors.Default
    End Sub



    Sub getData()
        'EPBES = New cEPBes
        EPBES.ANMELDUNG1 = UsrCntlEinheitspapier1.cboAnmeldung1._value
        EPBES.ANMELDUNG2 = UsrCntlEinheitspapier1.cboAnmeldung2._value

        EPBES.Vordrucke1 = UsrCntlEinheitspapier1.txtVordrucke1.Text
        EPBES.Vordrucke2 = UsrCntlEinheitspapier1.txtVordrucke2.Text

        EPBES.FilialenNr = UsrCntlEinheitspapier1.cboFiliale._value
        EPBES.AbfertigungsNr = UsrCntlEinheitspapier1.txtAbfertigungsnummer.Text
        EPBES.UnterNr = UsrCntlEinheitspapier1.txtUnternummer.Text

        EPBES.Positionen = UsrCntlEinheitspapier1.txtPosCount.Text
        EPBES.Ordnungsnummer = "" 'UsrCntlEinheitspapier1.txtOrdnungsnummer.Text 'nicht speicehrn! -> Variabel

        EPBES.Anmelder = UsrCntlEinheitspapier1.txtAnmelder.Text
        EPBES.Vertreter = UsrCntlEinheitspapier1.txtVertreter.Text
        EPBES.AnmelderVertreterNr = UsrCntlEinheitspapier1.txtAnmelderVertreterNr.Text
        EPBES.Empfänger = UsrCntlEinheitspapier1.txtEmpfänger.Text
        EPBES.EmpfängerNr = UsrCntlEinheitspapier1.txtEmpfängerNr.Text
        Dim txt = ""
        If UsrCntlEinheitspapier1.cboZulassungsinhaber._value <> "" Then
            txt = UsrCntlEinheitspapier1.cboZulassungsinhaber.Text
            If UsrCntlEinheitspapier1.cboZulassungsinhaber.SelectedIndex > 0 Then
                txt = txt.Replace(DirectCast(UsrCntlEinheitspapier1.cboZulassungsinhaber.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value, "")
            End If
            If txt.StartsWith(" - ") Then txt = txt.Replace(" - ", "")

            '  DirectCast(UsrCntlEinheitspapier1.cboZulassungsinhaber.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Text.Replace(DirectCast(UsrCntlEinheitspapier1.cboZulassungsinhaber.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value, "")
            ' If txt.StartsWith(" - ") Then txt = txt.Replace(" - ", "")
            '  If txt.Length > 40 Then txt.Substring(0, 40)
        End If
        EPBES.Zulassungsinhaber = txt
        EPBES.Bewilligungsnummer = UsrCntlEinheitspapier1.txtBewilligungsnummer.Text

        EPBES.AngabenFürVerbuchungszwecke = UsrCntlEinheitspapier1.txtAngabenVerbuchungszwecke.Text
        EPBES.Ort = UsrCntlEinheitspapier1.txtOrt.Text
        EPBES.Datum = UsrCntlEinheitspapier1.txtDatum.Text
        EPBES.Unterschrift = UsrCntlEinheitspapier1.txtUnterschrift.Text

        ' EPBES.Bemessungsgrundlage = UsrCntlEinheitspapier1.txtBemessungsgrundlage.Text

        EPBES.POS.Clear()
        For Each c In UsrCntlEinheitspapier1.FlowLayoutPanel.Controls
            Dim usr As usrcntlEinheitspapierPos = DirectCast(c, usrcntlEinheitspapierPos)
            Dim p As New cEPBesPos
            p.PositionsNr = usr.txtPosNr2.Text
            p.Packstücke = usr.txtPackstuecke.Text
            p.Warenbezeichnung = usr.txtWarenbezeichnung.Text
            p.Warennummer1 = usr.txtWtNr1.Text
            p.Warennummer2 = usr.txtWtNr2.Text
            p.Warennummer3 = usr.txtWtNr3.Text
            p.Warennummer4 = usr.txtWtNr4.Text
            p.Warennummer5 = usr.txtWtNr5.Text

            p.UrsprungslandCode = If(IsNumeric(usr.cboUrsprungsland._value), usr.cboUrsprungsland._value, Nothing)
            'p.Rohmasse = usr.roh.Text
            p.Kontingent = If(IsNumeric(usr.txtKontingent.Text), usr.txtKontingent.Text, Nothing)
            p.Verfahren = usr.txtVerfahren.Text.Replace(" ", "")

            p.Eigenmasse = If(IsNumeric(usr.txtEigenmasse._value), CDbl(usr.txtEigenmasse._value), Nothing)
            p.Präferenz = usr.cboPraeferenz.Text
            p.SumAnmeldungVorpapier = usr.txtSumAnmeldungVorpapier.Text
            p.BesondereMasseinheit = usr.txtBesondereMaßenheit.Text
            p.Bemessungsgrundlage = usr.txtBemessungsgrundlage.Text
            p.BesondereVermerke = usr.txtBesondereVermerke.Text
            EPBES.POS.Add(p)
        Next

        If EPBES.POS.Count > 0 Then
            EPBES.Warenbezeichnung = EPBES.POS(0).Warenbezeichnung
            EPBES.Packstücke = EPBES.POS(0).Packstücke
            EPBES.Präferenz = EPBES.POS(0).Präferenz
            EPBES.Kontingent = EPBES.POS(0).Kontingent
            EPBES.Warennummer1 = EPBES.POS(0).Warennummer1
            EPBES.Warennummer2 = EPBES.POS(0).Warennummer2
            EPBES.Warennummer3 = EPBES.POS(0).Warennummer3
            EPBES.Warennummer4 = EPBES.POS(0).Warennummer4
            EPBES.Warennummer5 = EPBES.POS(0).Warennummer5
            EPBES.BesondereVermerke = EPBES.POS(0).BesondereVermerke
            EPBES.UrsprungslandCode = EPBES.POS(0).UrsprungslandCode

            EPBES.Verfahren = EPBES.POS(0).Verfahren
            EPBES.Eigenmasse = cProgramFunctions.isLeerNothingDbl(EPBES.POS(0).Eigenmasse)
            EPBES.SumAnmeldungVorpapier = EPBES.POS(0).SumAnmeldungVorpapier
            EPBES.BesondereMasseinheit = EPBES.POS(0).BesondereMasseinheit
            EPBES.Bemessungsgrundlage = EPBES.POS(0).Bemessungsgrundlage

        End If

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        getData()
        If EPBES Is Nothing Then Exit Sub

        Dim anzahl_778 As Integer = 0
        If EPBES.POS.Count > 1 Then
            ''  MsgBox(((EPBES.POS.Count - 1) / 3) - 0.5)
            ' MsgBox(cProgramFunctions.fctRound(((CDbl(EPBES.POS.Count - 1) / 3) - 0.5), 0))


            anzahl_778 = cProgramFunctions.fctRound(((CDbl(EPBES.POS.Count - 1) / 3) - 0.5), 0) ' -0,5 --> immer abrunden ' -1 weil die erste POS im Hauptformular
            If (EPBES.POS.Count - 1) Mod 3 > 0 Then anzahl_778 += 1
            If MsgBox("Bitte ein Einheitspapier '0777' und " & anzahl_778 & " Ergänzungsfurmulare '0778' in den Tally-Drucker einlegen.", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then
                Exit Sub
            End If
        Else
            If MsgBox("Bitte ein Einheitspapier '0777' in den Tally-Drucker einlegen.", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then
                Exit Sub
            End If
        End If

        Dim rpt As New rptEinheitspapier0777(cboAbriss777._value)
        ' rpt.lblRgNr.Text = BELEG.rksv_BelegId '"12345 / TR"

        rpt.txtAnmeldung1.Text = If(EPBES.ANMELDUNG1, "")
        rpt.txtAnmeldung2.Text = If(EPBES.ANMELDUNG2, "")

        rpt.txtVordrucke1.Text = If(EPBES.Vordrucke1, "")
        rpt.txtVordrucke2.Text = If(EPBES.Vordrucke2, "")
        rpt.txtPositionen.Text = If(EPBES.Positionen, "")

        rpt.txtFiliale.Text = If(EPBES.FilialenNr, "")
        rpt.txtAbfertigungsnummer.Text = If(EPBES.AbfertigungsNr, "")
        rpt.txtUnternummer.Text = If(EPBES.UnterNr, "")
        rpt.txtAnmelder.Text = If(EPBES.Anmelder, "")
        rpt.txtVertreter.Text = If(EPBES.Vertreter, "")
        rpt.txtAnmelderVertreterNr.Text = If(EPBES.AnmelderVertreterNr, "")

        rpt.txtEmpfänger.Text = If(EPBES.Empfänger, "")
        rpt.txtEmpfängerNr.Text = If(EPBES.EmpfängerNr, "")

        rpt.txtAngabenVerbuchungszwecke.Text = If(EPBES.AngabenFürVerbuchungszwecke, "")
        rpt.txtOrt.Text = If(EPBES.Ort, "")
        rpt.txtDatum.Text = If(EPBES.Datum, "")
        rpt.txtUnterschrift.Text = If(EPBES.Unterschrift, "")

        '    rpt.txtAnmeldung1.Text = If(EPBES.ANMELDUNG1, "")

        If EPBES.POS.Count > 0 Then
            rpt.txtPosNr.Text = If(EPBES.POS(0).PositionsNr, "")
            rpt.txtPackstücke.Text = If(EPBES.POS(0).Packstücke, "")
            rpt.txtWarenbezeichnung.Text = If(EPBES.POS(0).Warenbezeichnung, "")
            rpt.txtWtNr1.Text = If(EPBES.POS(0).Warennummer1, "")
            rpt.txtWtNr2.Text = If(EPBES.POS(0).Warennummer2, "")
            rpt.txtWtNr3.Text = If(EPBES.POS(0).Warennummer3, "")
            rpt.txtWtNr4.Text = If(EPBES.POS(0).Warennummer4, "")
            rpt.txtWtNr5.Text = If(EPBES.POS(0).Warennummer5, "")
            rpt.txtUrsprungsland.Text = SQL.getValueTxtBySql("SELECT isnull(LandKz,'') FROM [Länderverzeichnis für die Außenhandelsstatistik] WHERE LandNr= '" & If(EPBES.POS(0).UrsprungslandCode, "") & "'", "FMZOLL")

            ' rpt.txtUrsprungsland.Text = If(EPBES.POS(0).UrsprungslandCode, "")
            '  SELECT [Länderverzeichnis für die Außenhandelsstatistik].LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, [Länderverzeichnis für die Außenhandelsstatistik].LandBez FROM [Länderverzeichnis für die Außenhandelsstatistik] ORDER BY [Länderverzeichnis für die Außenhandelsstatistik].LandKz; 
            If EPBES.POS(0).Verfahren IsNot Nothing Then
                While EPBES.POS(0).Verfahren.length < 7
                    EPBES.POS(0).Verfahren = EPBES.POS(0).Verfahren & "0"
                End While
                rpt.txtVerfahren1.Text = EPBES.POS(0).Verfahren.ToString.Substring(0, 4)
                rpt.txtVerfahren2.Text = EPBES.POS(0).Verfahren.ToString.Substring(4, 3)
            Else
                rpt.txtVerfahren1.Text = ""
                rpt.txtVerfahren2.Text = ""
            End If
            rpt.txtEigenmasse.Text = If(EPBES.POS(0).Eigenmasse, "")
            rpt.txtSummarischeAnmeldung.Text = If(EPBES.POS(0).SumAnmeldungVorpapier, "")
            rpt.txtPraeferenz.Text = If(EPBES.POS(0).Präferenz, "")
            rpt.txtKontingent.Text = If(EPBES.POS(0).Kontingent, "")
            rpt.txtBesondereMasseinheit.Text = If(EPBES.POS(0).BesondereMasseinheit, "")
            rpt.txtBesondereVermerke.Text = If(EPBES.POS(0).BesondereVermerke, "")

            rpt.txtBemessungsgrundlage.Text = If(EPBES.POS(0).Bemessungsgrundlage, "")

        End If



        If False Then ' Wird angezeigt, nicht gedruckt
            Dim printForm As New SDL.frmPrintLayout
            printForm.Viewer.LoadDocument(rpt)
            printForm.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
            printForm.Show()
            '  printForm.BringToFront()
        Else
            Try
                rpt.Run(False)
                rpt.Document.Printer.PrinterName = cboPrinter._value
                rpt.Document.Print(CBool(cboPrinter.Text = ""), False)
                rpt.Dispose()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

            If False Then

                Dim print As New GrapeCity.ActiveReports.Viewer.Win.Viewer
                print.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
                print.LoadDocument(rpt)
                Dim Printername = cboPrinter._value
                'print.Dispose()
                AddHandler print.LoadCompleted, Sub()
                                                    Try
                                                        If Printername = "" Then print.Dispose() : Exit Sub
                                                        print.Document.Printer.PrinterName = Printername
                                                        If Not print.Print((Printername = ""), False) Then
                                                            MsgBox("Problem beim Drucken.")
                                                        End If
                                                        print.Dispose()
                                                    Catch ex As Exception
                                                        MsgBox(ex.Message)
                                                    End Try
                                                End Sub
            End If
        End If


        Dim cnt = 1
        If EPBES.POS.Count > 1 Then 'größer als 1 --> in Dreier-Schritten
            For i = 1 To anzahl_778
                Dim POS1 As cEPBesPos = Nothing
                Dim POS2 As cEPBesPos = Nothing
                Dim POS3 As cEPBesPos = Nothing
                If EPBES.POS.Count > cnt Then
                    POS1 = EPBES.POS(cnt) : cnt += 1
                End If
                If EPBES.POS.Count > cnt Then
                    POS2 = EPBES.POS(cnt) : cnt += 1
                End If
                If EPBES.POS.Count > cnt Then
                    POS3 = EPBES.POS(cnt) : cnt += 1
                End If
                gen778(POS1, POS2, POS3, EPBES.Ordnungsnummer)
            Next
        End If

    End Sub


    Private Sub gen778(POS1 As cEPBesPos, POS2 As cEPBesPos, POS3 As cEPBesPos, Ordnungsnummer As Object)
        If POS1 Is Nothing Then Exit Sub

        ' Dim print As New frmPrintLayout
        Dim rpt As New rptEinheitspapier0778(cboAbriss778._value)
        ' rpt.lblRgNr.Text = BELEG.rksv_BelegId '"12345 / TR"

        '    rpt.txtAnmeldung1.Text = If(EPBES.ANMELDUNG1, "")

        rpt.txtWtNr1_1.Text = ""
        rpt.txtPackstücke1.Text = ""
        rpt.txtWarenbezeichnung1.Text = ""
        rpt.txtBesondereVermerke1.Text = ""
        rpt.txtWtNr2_1.Text = ""
        rpt.txtWtNr3_1.Text = ""
        rpt.txtWtNr4_1.Text = ""
        rpt.txtWtNr5_1.Text = ""
        rpt.txtUrsprungsland1.Text = ""
        rpt.txtVerfahren1_1.Text = ""
        rpt.txtVerfahren2_1.Text = ""
        rpt.txtEigenmasse1.Text = ""
        rpt.txtSummarischeAnmeldung1.Text = ""
        rpt.txtBesondereMasseinheit1.Text = ""
        rpt.txtBemessungsGrundlage.Text = ""
        rpt.txtKontingent1.Text = ""
        rpt.txtPraeferenz1.Text = ""
        rpt.txtPosNr1.Text = ""
        rpt.txtWtNr1_2.Text = ""
        rpt.txtPackstücke2.Text = ""
        rpt.txtWarenbezeichnung2.Text = ""
        rpt.txtBesondereVermerke2.Text = ""
        rpt.txtWtNr2_2.Text = ""
        rpt.txtWtNr3_2.Text = ""
        rpt.txtWtNr4_2.Text = ""
        rpt.txtWtNr5_2.Text = ""
        rpt.txtUrsprungsland2.Text = ""
        rpt.txtVerfahren1_2.Text = ""
        rpt.txtVerfahren2_2.Text = ""
        rpt.txtEigenmasse2.Text = ""
        rpt.txtSummarischeAnmeldung2.Text = ""
        rpt.txtBesondereMasseinheit2.Text = ""
        rpt.txtBemessungsGrundlage2.Text = ""
        rpt.txtKontingent2.Text = ""
        rpt.txtPraeferenz2.Text = ""
        rpt.txtPosNr2.Text = ""
        rpt.txtWtNr1.Text = ""
        rpt.txtPackstücke.Text = ""
        rpt.txtWarenbezeichnung.Text = ""
        rpt.txtBesondereVermerke.Text = ""
        rpt.txtWtNr2.Text = ""
        rpt.txtWtNr3.Text = ""
        rpt.txtWtNr4.Text = ""
        rpt.txtWtNr5.Text = ""
        rpt.txtUrsprungsland.Text = ""
        rpt.txtVerfahren1.Text = ""
        rpt.txtVerfahren2.Text = ""
        rpt.txtEigenmasse.Text = ""
        rpt.txtSummarischeAnmeldung.Text = ""
        rpt.txtBesondereMasseinheit.Text = ""
        rpt.txtBemessungsGrundlage3.Text = ""
        rpt.txtKontingent.Text = ""
        rpt.txtPraeferenz.Text = ""
        rpt.txtPosNr.Text = ""
        rpt.txtOrdnungsnummer.Text = ""

        If POS1 IsNot Nothing Then
            rpt.txtPosNr.Text = If(POS1.PositionsNr, "")
            rpt.txtPackstücke.Text = If(POS1.Packstücke, "")
            rpt.txtWarenbezeichnung.Text = If(POS1.Warenbezeichnung, "")
            rpt.txtWtNr1.Text = If(POS1.Warennummer1, "")
            rpt.txtWtNr2.Text = If(POS1.Warennummer2, "")
            rpt.txtWtNr3.Text = If(POS1.Warennummer3, "")
            rpt.txtWtNr4.Text = If(POS1.Warennummer4, "")
            rpt.txtWtNr5.Text = If(POS1.Warennummer5, "")
            rpt.txtOrdnungsnummer.Text = If(Ordnungsnummer, "")

            '  rpt.txtUrsprungsland.Text = If(POS1.UrsprungslandCode, "")
            rpt.txtUrsprungsland.Text = SQL.getValueTxtBySql("SELECT isnull(LandKz,'') FROM [Länderverzeichnis für die Außenhandelsstatistik] WHERE LandNr= '" & If(POS1.UrsprungslandCode, "") & "'", "FMZOLL")

            If POS1.Verfahren IsNot Nothing Then
                While POS1.Verfahren.length < 7
                    POS1.Verfahren = POS1.Verfahren & "0"
                End While
                rpt.txtVerfahren1.Text = POS1.Verfahren.ToString.Substring(0, 4)
                rpt.txtVerfahren2.Text = POS1.Verfahren.ToString.Substring(4, 3)
            Else
                rpt.txtVerfahren1.Text = ""
                rpt.txtVerfahren2.Text = ""
            End If
            rpt.txtEigenmasse.Text = If(POS1.Eigenmasse, "")
            rpt.txtSummarischeAnmeldung.Text = If(POS1.SumAnmeldungVorpapier, "")
            rpt.txtPraeferenz.Text = If(POS1.Präferenz, "")
            rpt.txtKontingent.Text = If(POS1.Kontingent, "")
            rpt.txtBesondereMasseinheit.Text = If(POS1.BesondereMasseinheit, "")
            rpt.txtBesondereVermerke.Text = If(POS1.BesondereVermerke, "")
            rpt.txtBemessungsGrundlage.Text = If(POS1.Bemessungsgrundlage, "")
        End If

        If POS2 IsNot Nothing Then
            rpt.txtPosNr1.Text = If(POS2.PositionsNr, "")
            rpt.txtPackstücke1.Text = If(POS2.Packstücke, "")
            rpt.txtWarenbezeichnung1.Text = If(POS2.Warenbezeichnung, "")
            rpt.txtWtNr1_1.Text = If(POS2.Warennummer1, "")
            rpt.txtWtNr2_1.Text = If(POS2.Warennummer2, "")
            rpt.txtWtNr3_1.Text = If(POS2.Warennummer3, "")
            rpt.txtWtNr4_1.Text = If(POS2.Warennummer4, "")
            rpt.txtWtNr5_1.Text = If(POS2.Warennummer5, "")
            rpt.txtUrsprungsland1.Text = If(POS2.UrsprungslandCode, "")

            If POS2.Verfahren IsNot Nothing Then
                While POS2.Verfahren.length < 7
                    POS2.Verfahren = POS2.Verfahren & "0"
                End While
                rpt.txtVerfahren1_1.Text = POS2.Verfahren.ToString.Substring(0, 4)
                rpt.txtVerfahren2_1.Text = POS2.Verfahren.ToString.Substring(4, 3)
            Else
                rpt.txtVerfahren1_1.Text = ""
                rpt.txtVerfahren2_1.Text = ""
            End If
            rpt.txtEigenmasse1.Text = If(POS2.Eigenmasse, "")
            rpt.txtSummarischeAnmeldung1.Text = If(POS2.SumAnmeldungVorpapier, "")
            rpt.txtPraeferenz1.Text = If(POS2.Präferenz, "")
            rpt.txtKontingent1.Text = If(POS2.Kontingent, "")
            rpt.txtBesondereMasseinheit1.Text = If(POS2.BesondereMasseinheit, "")
            rpt.txtBesondereVermerke1.Text = If(POS2.BesondereVermerke, "")
            rpt.txtBemessungsGrundlage2.Text = If(POS2.Bemessungsgrundlage, "")

        End If

        If POS3 IsNot Nothing Then
            rpt.txtPosNr2.Text = If(POS3.PositionsNr, "")
            rpt.txtPackstücke2.Text = If(POS3.Packstücke, "")
            rpt.txtWarenbezeichnung2.Text = If(POS3.Warenbezeichnung, "")
            rpt.txtWtNr1_2.Text = If(POS3.Warennummer1, "")
            rpt.txtWtNr2_2.Text = If(POS3.Warennummer2, "")
            rpt.txtWtNr3_2.Text = If(POS3.Warennummer3, "")
            rpt.txtWtNr4_2.Text = If(POS3.Warennummer4, "")
            rpt.txtWtNr5_2.Text = If(POS3.Warennummer5, "")
            rpt.txtUrsprungsland2.Text = If(POS3.UrsprungslandCode, "")

            If POS3.Verfahren IsNot Nothing Then
                While POS3.Verfahren.length < 7
                    POS3.Verfahren = POS3.Verfahren & "0"
                End While
                rpt.txtVerfahren1_2.Text = POS3.Verfahren.ToString.Substring(0, 4)
                rpt.txtVerfahren2_2.Text = POS3.Verfahren.ToString.Substring(4, 3)
            Else
                rpt.txtVerfahren1_2.Text = ""
                rpt.txtVerfahren2_2.Text = ""
            End If
            rpt.txtEigenmasse2.Text = If(POS3.Eigenmasse, "")
            rpt.txtSummarischeAnmeldung2.Text = If(POS3.SumAnmeldungVorpapier, "")
            rpt.txtPraeferenz2.Text = If(POS3.Präferenz, "")
            rpt.txtKontingent2.Text = If(POS3.Kontingent, "")
            rpt.txtBesondereMasseinheit2.Text = If(POS3.BesondereMasseinheit, "")
            rpt.txtBesondereVermerke2.Text = If(POS3.BesondereVermerke, "")
            rpt.txtBemessungsGrundlage3.Text = If(POS3.Bemessungsgrundlage, "")
        End If

        '    print.Viewer.LoadDocument(rpt)
        '   print.Show()
        Try
            rpt.Run(False)
            rpt.Document.Printer.PrinterName = cboPrinter._value
            rpt.Document.Print(CBool(cboPrinter.Text = ""), False)
            rpt.Dispose()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

    Private Sub UsrCntlEinheitspapier1_Changed() Handles UsrCntlEinheitspapier1.ADD, UsrCntlEinheitspapier1.DEC, UsrCntlEinheitspapier1.KGchanged
        Dim Eigenmasse As Double = 0
        For Each c In UsrCntlEinheitspapier1.FlowLayoutPanel.Controls
            Dim usr As usrcntlEinheitspapierPos = DirectCast(c, usrcntlEinheitspapierPos)
            If IsNumeric(usr.txtEigenmasse.Text) Then Eigenmasse += CDbl(usr.txtEigenmasse._value)
        Next
        lblEigenmasse.Text = Eigenmasse.ToString("F") & " kg"
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If txtSuchbegriff.Text = "" Then MsgBox("Suchbegriff eingeben!") : Exit Sub
        getData()
        If BERECHNUNGS_BOGEN.ID > 0 And BERECHNUNGS_BOGEN.Index = txtSuchbegriff.Text Then
            Select Case MsgBox("Möchten Sie das aktuelle Formular überschreiben?" & vbNewLine & BERECHNUNGS_BOGEN.Index, vbYesNo)
                Case MsgBoxResult.Yes
                    If EPBES.SAVE() Then
                        If BERECHNUNGS_BOGEN.SAVE() Then
                            lblGespeichert.Visible = True
                            timerSave.Enabled = True
                        End If
                    End If
                Case MsgBoxResult.No
                    Exit Sub
                    '     doSave()
                    'Case MsgBoxResult.Cancel
                    'Exit Sub
            End Select
        Else
            doSave()
        End If
    End Sub

    Private Sub doSave()
        Dim tmpEPBes As cEPBes = EPBES
        tmpEPBes.ID = tmpEPBes.getMaxId
        If tmpEPBes.SAVE() Then
            Dim tmpBER As cBerechnungsbogen = BERECHNUNGS_BOGEN
            tmpBER.ID = tmpEPBes.ID 'Selbe ID!
            tmpBER.Index = txtSuchbegriff.Text
            If tmpBER.SAVE() Then
                initCBO()
                lblGespeichert.Visible = True
                timerSave.Enabled = True
            End If
        End If
    End Sub
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnNeu.Click
        resetForm(True)
    End Sub

    Sub resetForm(resetTxt)
        EPBES = New cEPBes '(cboSearch._value)
        BERECHNUNGS_BOGEN = New cBerechnungsbogen()
        UsrCntlEinheitspapier1.removeAllPos()
        '  UsrCntlEinheitspapier1.addPos()
        fillData()

         If UsrCntlEinheitspapier1.FlowLayoutPanel.Controls.Count <= 0 Then UsrCntlEinheitspapier1.addPos()
        If resetTxt Then
            txtSuchbegriff.Text = "" 'BERECHNUNGS_BOGEN.Index
            cboSearch.Text = ""
        End If
    End Sub
    Private Sub timerSave_Tick(sender As Object, e As EventArgs) Handles timerSave.Tick
        lblGespeichert.Visible = False
        timerSave.Enabled = False
    End Sub

    Private Sub cboSearch_KeyDown(sender As Object, e As KeyEventArgs) Handles cboSearch.KeyDown
        If e.KeyCode = Keys.Return Then
            btnLaden.PerformClick()
        End If
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
        If BERECHNUNGS_BOGEN.ID > 0 Then
            Select Case MsgBox("Möchten Sie die aktuelle Vorlage wirkliche löschen?" & vbNewLine & BERECHNUNGS_BOGEN.Index, vbYesNo)
                Case MsgBoxResult.Yes
                    BERECHNUNGS_BOGEN.DELETE()
                    EPBES.DELETE()
                    initCBO()
                    resetForm(True)
                    lblGelöscht.Visible = True
                    timerSave.Enabled = True
                Case MsgBoxResult.No
                    Exit Sub
            End Select
        End If
    End Sub


    Private Sub UsrCntlEinheitspapier1_Load(sender As Object, e As EventArgs) Handles UsrCntlEinheitspapier1.Load

    End Sub

    Private Sub cboSearch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSearch.SelectedIndexChanged

    End Sub
End Class