Imports System.Data.SqlClient Imports DAKOSY_Worker.DEERRE Imports TAlex.WPF.Helpers Public Class frmRechnungenSuche Dim SQL As New SQL Dim brexitXLS = False Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click Me.Cursor = Cursors.WaitCursor Dim sqlstr As String = "" Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "") sqlstr &= "SELECT " & TopMax & " RK_ID,[RechnungsNr],cast([RechnungsDatum] as date) RechnungsDatum, Sammelrechnung, [FilialenNr],[AbfertigungsNr],[UnterNr],cast(Abfertigungsdatum as date) Abfertigungsdatum, isnull(cast(RechnungsKundenNr as nvarchar(10)) + ' ','') + [RechnungsName 1] as [RechnungAn], " & " /* isnull(cast([AbsenderKundenNr] as nvarchar(10)) + ' ','') + [AbsenderName 1] as Absender,isnull(cast([EmpfängerKundenNr] as nvarchar(10)) + ' ','') + [EmpfängerName 1] as Empfänger,*/ isnull(cast([VermittlerKundenNr] as nvarchar(10)) + ' ','') + [VermittlerName 1] as Vermittler, [LKW Kennzeichen],Sachbearbeiter,[SteuerpflichtigerGesamtbetrag],[SteuerfreierGesamtbetrag] " & " FROM [Rechnungsausgang] WHERE 1=1 " With DataGridView ' .DataSource = myTable ' MsgBox(sqlstr & getRechnungsAusgangWhere() & " ORDER BY Rechnungsdatum, RK_ID") .SET_SQL(sqlstr & getRechnungsAusgangWhere() & " ORDER BY Rechnungsdatum, RK_ID", "FMZOLL", getSpedbuchList) .LOAD() If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub .RowHeadersVisible = False .ReadOnly = True .SelectionMode = DataGridViewSelectionMode.FullRowSelect ' .MultiSelect = False .Columns("RK_ID").Visible = False .Columns("RechnungsNr").Width = 70 .Columns("RechnungsNr").HeaderText = "Rechnugs-Nr" .Columns("RechnungsNr").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter .Columns("RechnungsNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter .Columns("RechnungsDatum").Width = 100 .Columns("RechnungsDatum").HeaderText = "Rg-Dat." .Columns("RechnungsDatum").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter .Columns("RechnungsDatum").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter .Columns("Sammelrechnung").Width = 45 .Columns("Sammelrechnung").HeaderText = "SR" .Columns("FilialenNr").Width = 45 .Columns("FilialenNr").HeaderText = "Filiale" .Columns("FilialenNr").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter .Columns("FilialenNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter .Columns("AbfertigungsNr").Width = 70 .Columns("AbfertigungsNr").HeaderText = "Abf-Nr" .Columns("AbfertigungsNr").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter .Columns("AbfertigungsNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter .Columns("UnterNr").Width = 45 .Columns("UnterNr").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter .Columns("UnterNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter .Columns("Abfertigungsdatum").Width = 100 .Columns("Abfertigungsdatum").HeaderText = "Abf-Dat." .Columns("Abfertigungsdatum").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter .Columns("Abfertigungsdatum").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter .Columns("RechnungAn").MinimumWidth = 150 .Columns("RechnungAn").HeaderText = "Rechnung an" .Columns("RechnungAn").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill '.Columns("Absender").MinimumWidth = 150 '.Columns("Absender").HeaderText = "Absender" '.Columns("Absender").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("Vermittler").MinimumWidth = 150 .Columns("Vermittler").HeaderText = "Auftraggeber" .Columns("Vermittler").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill '.Columns("Empfänger").MinimumWidth = 150 '.Columns("Empfänger").HeaderText = "Empfänger" '.Columns("Empfänger").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("LKW Kennzeichen").Width = 120 .Columns("LKW Kennzeichen").HeaderText = "LKW Kennzeichen" .Columns("Sachbearbeiter").MinimumWidth = 100 .Columns("Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("SteuerpflichtigerGesamtbetrag").Width = 120 .Columns("SteuerpflichtigerGesamtbetrag").HeaderText = "Betrag (stpfl.)" .Columns("SteuerpflichtigerGesamtbetrag").DefaultCellStyle.Format = "N2" .Columns("SteuerfreierGesamtbetrag").Width = 120 .Columns("SteuerfreierGesamtbetrag").HeaderText = "Betrag (stfr.)" .Columns("SteuerfreierGesamtbetrag").DefaultCellStyle.Format = "N2" lblErgebnis.Text = "Ergebnisse: " & .RowCount lblunterschRe.Text = "Anz. untersch. Belege: " & .Rows.Cast(Of DataGridViewRow)().[Select](Function(r) CInt(r.Cells("RechnungsNr").Value)).Distinct().Count() End With brexitXLS = False Me.Cursor = Cursors.Default End Sub Function getRechnungsAusgangWhere() As String Dim sqlstr = "" If txtAvisiererKdNr.Text <> "" And IsNumeric(txtAvisiererKdNr.Text) Then : sqlstr &= " AND Rechnungsausgang.[AvisiererKundenNr] LIKE @AvisiererKundenNr " ElseIf kdtxtAvisierer.Text <> "" Then : sqlstr &= " AND Rechnungsausgang.[Avisierer] LIKE @Avisierer " : End If If txtAbsenderKdnr.Text <> "" And IsNumeric(txtAbsenderKdnr.Text) Then : sqlstr &= " AND Rechnungsausgang.[AbsenderKundenNr] LIKE @AbsenderKundenNr " ElseIf kdtxtAbsender.Text <> "" Then : sqlstr &= " AND Rechnungsausgang.[AbsenderName 1] LIKE @Absender " : End If If txtEmpfaengerKdnr.Text <> "" And IsNumeric(txtEmpfaengerKdnr.Text) Then : sqlstr &= " AND Rechnungsausgang.[EmpfängerKundenNr] LIKE @EmpfängerKundenNr " ElseIf kdtxtEmpfaenger.Text <> "" Then : sqlstr &= " AND Rechnungsausgang.[EmpfängerName 1] LIKE @Empfänger " : End If If txtAuftraggeberKdnr.Text <> "" And IsNumeric(txtAuftraggeberKdnr.Text) Then : sqlstr &= " AND [VermittlerKundenNr] LIKE @VermittlerKundenNr " ElseIf kdtxtAuftraggeber.Text <> "" Then : sqlstr &= " AND [VermittlerName 1] LIKE @Vermittler " : End If If txtRechnungAnKdNr.Text <> "" And IsNumeric(txtRechnungAnKdNr.Text) Then : sqlstr &= " AND [RechnungsKundenNr] LIKE @RechnungsKundenNr " ElseIf kdtxtRechnungAn.Text <> "" Then : sqlstr &= " AND [RechnungsName 1] LIKE @RechnungAn " : End If If KdFrachtfuehrerKdnr.Text <> "" And IsNumeric(KdFrachtfuehrerKdnr.Text) Then : sqlstr &= " AND (Select COUNT(*) from Speditionsbuch where Speditionsbuch.FilialenNr=[Rechnungsausgang].FilialenNr and Speditionsbuch.AbfertigungsNr=[Rechnungsausgang].AbfertigungsNr and Speditionsbuch.UnterNr=[Rechnungsausgang].UnterNr and FrachtführerKundenNr like @KdFrachtfuehrerKdNr )>0 " ElseIf KdFrachtfuehrer.Text <> "" Then : sqlstr &= " AND (Select COUNT(*) from Speditionsbuch where Speditionsbuch.FilialenNr=[Rechnungsausgang].FilialenNr and Speditionsbuch.AbfertigungsNr=[Rechnungsausgang].AbfertigungsNr and Speditionsbuch.UnterNr=[Rechnungsausgang].UnterNr and Frachtführer like @KdFrachtfuehrer )>0 " : End If If cboDatum._value = "ADat" Then If txtAbfertDat.Text <> "" Then If txtAbfertDatBis.Text <> "" Then sqlstr &= " AND (Rechnungsausgang.[Abfertigungsdatum] BETWEEN @Datum_von AND @Datum_bis ) " Else sqlstr &= " AND (Rechnungsausgang.[Abfertigungsdatum] BETWEEN @Datum_von AND @Datum_von ) " End If End If ElseIf cboDatum._value = "RDat" Then If txtAbfertDat.Text <> "" Then If txtAbfertDatBis.Text <> "" Then sqlstr &= " AND (Rechnungsausgang.[RechnungsDatum] BETWEEN @Datum_von AND @Datum_bis ) " Else sqlstr &= " AND (Rechnungsausgang.[RechnungsDatum] BETWEEN @Datum_von AND @Datum_von ) " End If End If End If If txtAbfertigungsnummer.Text <> "" Then If txtAbfertigungsnummerBis.Text <> "" Then sqlstr &= " AND (Rechnungsausgang.[AbfertigungsNr] BETWEEN @AbfertigungsNr AND @AbfertigungsNr_bis) " Else sqlstr &= " AND Rechnungsausgang.AbfertigungsNr LIKE @AbfertigungsNr " End If End If If txtRechungsNr_von.Text <> "" Then If txtRechungsNr_bis.Text <> "" Then sqlstr &= " AND (Rechnungsausgang.[RechnungsNr] BETWEEN @RechnungsNr AND @RechnungsNr_bis) " Else sqlstr &= " AND Rechnungsausgang.RechnungsNr LIKE @RechnungsNr " End If End If If txtUnterNr.Text <> "" Then sqlstr &= " AND Rechnungsausgang.[UnterNr] LIKE @UnterNr " If cboFiliale._value <> "" Then sqlstr &= " AND Rechnungsausgang.[FilialenNr] LIKE @FilialenNr " If cboFirma._value <> "" Then sqlstr &= " AND Rechnungsausgang.[Firma_ID] = @Firma_ID " If MyTextBox14.Text <> "" Then sqlstr &= " AND Rechnungsausgang.[LKW Kennzeichen] LIKE @LKW " If txtSachbearbeiter.Text <> "" Then sqlstr &= " AND Rechnungsausgang.[Sachbearbeiter] = @Sachbearbeiter " Dim abfertigungsarten = getValues() If abfertigungsarten <> "" Then sqlstr &= " AND (SELECT TOP 1 Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr AND Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr AND Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr ) IN (" & abfertigungsarten & ") " Return sqlstr End Function Function getSpedbuchList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Avisierer", kdtxtAvisierer.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AvisiererKundenNr", txtAvisiererKdNr.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Absender", kdtxtAbsender.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderKundenNr", txtAbsenderKdnr.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Empfänger", kdtxtEmpfaenger.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerKundenNr", txtEmpfaengerKdnr.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vermittler", kdtxtAuftraggeber.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerKundenNr", txtAuftraggeberKdnr.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungAn", kdtxtRechnungAn.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsKundenNr", txtRechnungAnKdNr.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KdFrachtfuehrerKdNr", KdFrachtfuehrerKdnr.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KdFrachtfuehrer", KdFrachtfuehrer.Text.Replace("*", "%"))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Datum_von", txtAbfertDat.Text & " 00:00:00")) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Datum_bis", txtAbfertDatBis.Text & " 23:59:59")) If txtAbfertigungsnummerBis.Text <> "" Then list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr", txtAbfertigungsnummer.Text.Replace("*", ""))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr_bis", txtAbfertigungsnummerBis.Text.Replace("*", ""))) Else list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr", txtAbfertigungsnummer.Text.Replace("*", "%"))) End If If txtRechungsNr_bis.Text <> "" Then list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsNr", txtRechungsNr_von.Text.Replace("*", ""))) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsNr_bis", txtRechungsNr_bis.Text.Replace("*", ""))) Else list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsNr", txtRechungsNr_von.Text.Replace("*", "%"))) End If list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UnterNr", txtUnterNr.Text)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", cboFiliale._value)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_ID", cboFirma._value)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LKW", MyTextBox14.Text.Replace("*", "%").ToUpper)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", txtSachbearbeiter.Text)) Return list End Function Private Sub frmSpeditionsbuchSuche_Load(sender As Object, e As EventArgs) Handles Me.Load Me.Height = Screen.FromRectangle(Me.Bounds).WorkingArea.Size.Height Me.Top = 0 txtAbfertDat.Text = Now.ToShortDateString 'CDate("01." & Now.ToString("MM.yyyy")).AddMonths(-1).txtAbfertDatBisToShortDateString txtAbfertDatBis.Text = Now.ToShortDateString btnMonat.Text = MONAT.ToString("MMMM") btnJahr.Text = JAHR.Year kdtxtAbsender.initKdBox(Me, txtAbsenderKdnr) ' initKdAbsender() kdtxtEmpfaenger.initKdBox(Me, txtEmpfaengerKdnr) 'initKdEmpfaenger() kdtxtAuftraggeber.initKdBox(Me, txtAuftraggeberKdnr) 'initKdAuftraggeber() kdtxtAvisierer.initKdBox(Me, txtAvisiererKdNr) 'initKdAuftraggeber() cboFirma.fillWithSQL(" SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] order by Firma_ID ", True, "FMZOLL", True) cboBerichtRgAbfArt.fillWithSQL(" SELECT [Abfertigungsart],[Abfertigungsbezeichnung] FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", True, "FMZOLL", True) ' cboSachbearbeiter.fillWithSQL("SELECT ID, Name FROM Personal WHERE [Status]<>'L' ORDER BY Name ", True, "FMZOLL", True) ' cboSachbearbeiter.fillWithSQL("SELECT ID,/*cast(ID as nvarchar(3)) +' ' + Name as*/ Name FROM Personal WHERE [Status]<>'L' ORDER BY Name ", False, "FMZOLL", True) cboFiliale.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True) 'ComboBox1.fillWithSQL("SELECT [Abfertigungsart],[Abfertigungsbezeichnung] FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", True, "FMZOLL") MyListBox1.fillWithSQL(" SELECT [Abfertigungsart],[Abfertigungsbezeichnung] FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", , "FMZOLL") Button4.PerformClick() Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Then FirmaTmp = "VERAGIMEX" End If Select Case FirmaTmp Case "IMEX" cboFiliale.changeItem("5501") cboFiliale.Enabled = False Case "UNISPED" cboFiliale.changeItem("5601") cboFiliale.Enabled = False Case "AMBAR" cboFiliale.changeItem("5701") cboFiliale.Enabled = False Case "IMEX" cboFiliale.changeItem("5501") cboFiliale.Enabled = False Case "VERAGIMEX" ' cboFiliale.changeItem("5501") End Select cboDatum.Items.Clear() cboDatum.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Rechnugsdatum", "RDat")) cboDatum.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Abfertigungsdatum", "ADat")) cboDatum.changeItem("RDat") 'Label29.Visible = False 'Label30.Visible = False 'If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER IsNot Nothing Then ' If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standartFiliale > 0 Then ' Dim aktNr = (New cOptionenDAL).getMaxPosNr(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standartFiliale, Now.Year) ' Label30.Text = "akt. Pos-Nr. (" & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standartFiliale & "):" ' Label29.Text = aktNr ' Label29.Visible = True ' Label30.Visible = True ' End If 'End If If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMIN", Me) Then ' btnQSAufteilung.Visible = True End If If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", Me) Then pnlBerichte.Visible = True End If End Sub Function getValues() As String Dim s As String = "" For Each i In MyListBox1.SelectedItems s += DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & ", " Next If s.EndsWith(", ") Then s = s.Substring(0, s.Length - 2) End If Return s End Function ' Private Sub Button1_Click(sender As Object, e As EventArgs) ' For i = 0 To MyListBox1.Items.Count - 1 ' MyListBox1.SetSelected(i, True) ' Next 'End Sub ' Private Sub Button2_Click(sender As Object, e As EventArgs) For i = 0 To MyListBox1.Items.Count - 1 MyListBox1.SetSelected(i, False) Next End Sub ' Sub initKdAuftraggeber() ' Dim dgvFindKD As New DataGridView ' dgvFindKD.Name = "dgvFindKD" ' Me.Controls.Add(dgvFindKD) ' dgvFindKD.Visible = False ' kdtxtAuftraggeber.dgv = dgvFindKD ' AddHandler kdtxtAuftraggeber.PropertyChanged, Sub() ' txtAuftraggeberKdnr.Text = IIf(kdtxtAuftraggeber.KdNr_value > 0, kdtxtAuftraggeber.KdNr_value, "") ' End Sub ' End Sub ' Sub initKdAbsender() ' Dim dgvFindKD As New DataGridView ' dgvFindKD.Name = "dgvFindKD" ' Me.Controls.Add(dgvFindKD) ' dgvFindKD.Visible = False ' kdtxtAbsender.dgv = dgvFindKD ' kdtxtAbsender.kdNrField = txtAbsenderKdnr ' End Sub ' Sub initKdEmpfaenger() ' Dim dgvFindKD As New DataGridView ' dgvFindKD.Name = "dgvFindKD" ' Me.Controls.Add(dgvFindKD) ' dgvFindKD.Visible = False ' kdtxtEmpfaenger.dgv = dgvFindKD ' kdtxtEmpfaenger.kdNrField = txtEmpfaengerKdnr ' End Sub ' Sub initKdFrachtfuehrer() ' Dim dgvFindKD As New DataGridView ' dgvFindKD.Name = "dgvFindKD" ' Me.Controls.Add(dgvFindKD) ' dgvFindKD.Visible = False ' kdtxtFrachtfuehrer.dgv = dgvFindKD ' kdtxtFrachtfuehrer.kdNrField = txtFrachtfuehrerKdnr ' End Sub ' Sub initKdEndempfaenger() ' Dim dgvFindKD As New DataGridView ' dgvFindKD.Name = "dgvFindKD" ' Me.Controls.Add(dgvFindKD) ' dgvFindKD.Visible = False ' kdtxtEndempfaenger.dgv = dgvFindKD ' kdtxtEndempfaenger.kdNrField = txtEndempfaengerKdnr ' End Sub Private Sub txtAbfertDat_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertDat.Leave If sender.Text <> "" AndAlso IsDate(sender.Text) Then DateTimePicker1.Value = CDate(sender.text) End If End Sub Private Sub txtAbfertDatBis_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertDatBis.Leave If sender.Text <> "" AndAlso IsDate(sender.Text) Then DateTimePicker2.Value = CDate(sender.text) End If End Sub Private Sub MyTextBox1_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.TextChanged txtAbfertigungsnummerBis.Enabled = sender.text <> "" End Sub Private Sub DataGridView_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView.CellMouseClick If e.Button = Windows.Forms.MouseButtons.Right Then DataGridView.ClearSelection() DataGridView.Rows(e.RowIndex).Selected = True End If End Sub Private Sub DataGridView_CellContentClick(sender As Object, e As EventArgs) Handles DataGridView.DoubleClick ', DataGridView.CellContentDoubleClick If DataGridView.SelectedRows.Count = 0 Then Exit Sub Dim f As New frmKundenUebersichtZollRgDetails(DataGridView.SelectedRows(0).Cells("RK_ID").Value) f.ShowDialog() DataGridView.RELOAD() ' frmNacherfassung.showAll() End Sub Private Sub Button1_Click_1(sender As Object, e As EventArgs) Dim frmNacherfassung As New frmNacherfassungNEU ' frmNacherfassung.cboFiliale.Text = DataGridView.SelectedRows(0).Cells("FilialenNr").Value ' frmNacherfassung.txtUnterNr.Text = DataGridView.SelectedRows(0).Cells("UnterNr").Value ' frmNacherfassung.txtAbfertigungsnummer.Text = DataGridView.SelectedRows(0).Cells("AbfertigungsNr").Value frmNacherfassung.newEntry = True ' frmNacherfassung.FMZollPersID = VERAG_PROG_ALLGEMEIN.cglobal.AktiverMitarbeiter.mit_FMZollPersID ' frmNacherfassung.initDataBinding() frmNacherfassung.ShowDialog(Me) DataGridView.RELOAD() End Sub Private Sub EintragLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragLöschenToolStripMenuItem.Click If DataGridView.SelectedRows.Count > 0 Then If vbYes = MsgBox("Möchten Sie den Eintrag wirklich löschen?", vbYesNoCancel) Then Dim r As DataGridViewRow = DataGridView.SelectedRows(0) SQL.doSQL("DELETE FROM [Speditionsbuch] WHERE [FilialenNr]='" & r.Cells("FilialenNr").Value & "' AND [AbfertigungsNr] ='" & r.Cells("AbfertigungsNr").Value & "' AND [UnterNr]='" & r.Cells("UnterNr").Value & "' ", "FMZOLL") DataGridView.RELOAD() End If End If End Sub Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged txtAbfertDat._value = CDate(sender.value).ToShortDateString End Sub Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.ValueChanged txtAbfertDatBis._value = CDate(sender.value).ToShortDateString End Sub Private Sub btnMonat_Click(sender As Object, e As EventArgs) Handles btnMonat.Click initBtns("Monat") End Sub Dim MONAT As Date = CDate("01." & Now.Month & "." & Now.Year) '.AddMonths(-1) Dim srcTAG As Date = CDate(Now.ToShortDateString) Dim JAHR As Date = CDate("01.01." & Now.Year) Sub initBtns(MonatJahr) btnMonat.Text = MONAT.ToString("MMMM") btnJahr.Text = JAHR.Year Select Case MonatJahr Case "Monat" DateTimePicker1.Value = MONAT DateTimePicker2.Value = MONAT.AddMonths(1).AddDays(-1) Case "Jahr" ' If cbxGeschaftsjahr.Checked Then 'DateTimePicker1.Value = JAHR.AddMonths(1) ' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1) ' Else DateTimePicker1.Value = JAHR DateTimePicker2.Value = JAHR.AddYears(1).AddDays(-1) 'End If Case "Tag" ' If cbxGeschaftsjahr.Checked Then 'DateTimePicker1.Value = JAHR.AddMonths(1) ' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1) ' Else DateTimePicker1.Value = srcTAG DateTimePicker2.Value = srcTAG If srcTAG = Now.ToShortDateString Then Button5.Text = "Heute" ElseIf srcTAG = Now.AddDays(-1).ToShortDateString Then Button5.Text = "Gestern" ElseIf srcTAG = Now.AddDays(-2).ToShortDateString Then Button5.Text = "Vorgestern" Else Button5.Text = srcTAG.ToString("dd.MM") End If 'End If Case "" DateTimePicker1.Value = ("01." & Now.Month & "." & Now.Year) DateTimePicker2.Value = Now End Select End Sub Private Sub btnJahr_Click(sender As Object, e As EventArgs) Handles btnJahr.Click initBtns("Jahr") End Sub Private Sub btnBisMonat_Click(sender As Object, e As EventArgs) Handles btnBisMonat.Click MONAT = MONAT.AddMonths(1) initBtns("Monat") End Sub Private Sub btnVonMonat_Click(sender As Object, e As EventArgs) Handles btnVonMonat.Click MONAT = MONAT.AddMonths(-1) initBtns("Monat") End Sub Private Sub btnBisJahr_Click(sender As Object, e As EventArgs) Handles btnBisJahr.Click JAHR = JAHR.AddYears(1) initBtns("Jahr") End Sub Private Sub btnVonJahr_Click(sender As Object, e As EventArgs) Handles btnVonJahr.Click JAHR = JAHR.AddYears(-1) initBtns("Jahr") End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click SplitContainer1.Panel2Collapsed = Not SplitContainer1.Panel2Collapsed If SplitContainer1.Panel2Collapsed Then ' pnlSearch.Height = SplitContainer1.Panel1.Height SplitContainer.SplitterDistance -= 150 Else 'pnlSearch.Height = SplitContainer1.Height SplitContainer.SplitterDistance += 150 End If If Button4.Image Is SDL.My.Resources.Resources.pfeil_unten Then Button4.Image = SDL.My.Resources.Resources.pfeil_oben Else Button4.Image = SDL.My.Resources.Resources.pfeil_unten End If End Sub Private Sub FlatButton7_Click(sender As Object, e As EventArgs) Handles FlatButton7.Click DataGridView.RELOAD() End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click srcTAG = srcTAG.AddDays(-1) initBtns("Tag") End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click srcTAG = srcTAG.AddDays(1) initBtns("Tag") End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click initBtns("Tag") End Sub Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click Me.Cursor = Cursors.WaitCursor 'cProgramFunctions.genExcelFromDGV_NEW(DataGridView, False) If brexitXLS Then cProgramFunctions.genExcelFromDT_NEW(DataGridView.DataSource, {"J1:J" & (DataGridView.DataSource.Rows.Count + 2), "L1:M" & (DataGridView.DataSource.Rows.Count + 2)},,,, "£") Else Dim sqlstr As String = "" ' Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "") sqlstr &= "SELECT RK_ID,[RechnungsNr],cast([RechnungsDatum] as date) RechnungsDatum, Sammelrechnung, [FilialenNr],[AbfertigungsNr],[UnterNr],cast(Abfertigungsdatum as date) Abfertigungsdatum, isnull(cast(RechnungsKundenNr as nvarchar(10)) + ' ','') + [RechnungsName 1] as [RechnungAn], " & " isnull(cast([AbsenderKundenNr] as nvarchar(10)) + ' ','') + [AbsenderName 1] as Absender,isnull(cast([EmpfängerKundenNr] as nvarchar(10)) + ' ','') + [EmpfängerName 1] as Empfänger, isnull(cast([VermittlerKundenNr] as nvarchar(10)) + ' ','') + [VermittlerName 1] as Vermittler, [LKW Kennzeichen],Sachbearbeiter,[SteuerpflichtigerGesamtbetrag],[SteuerfreierGesamtbetrag] " & " FROM [Rechnungsausgang] WHERE 1=1 " Dim dt = SQL.loadDgvBySql_Param(sqlstr & getRechnungsAusgangWhere() & " ORDER BY Rechnungsdatum, RK_ID", "FMZOLL", , getSpedbuchList) cProgramFunctions.genExcelFromDT_NEW(dt, {"M1:N" & (DataGridView.DataSource.Rows.Count + 2)}) End If Me.Cursor = Cursors.Default 'Me.Cursor = Cursors.WaitCursor ''cProgramFunctions.genExcelFromDGV_NEW(DataGridView, False) 'If brexitXLS Then ' cProgramFunctions.genExcelFromDT_NEW(dt, {"J1:J" & (dt.Rows.Count + 2), "L1:M" & (dt.Rows.Count + 2)},,,, "£") 'Else ' cProgramFunctions.genExcelFromDT_NEW(dt, {"M1:N" & (dt.Rows.Count + 2)}) 'End If 'Me.Cursor = Cursors.Default ''If brexitXLS Then '' cProgramFunctions.genExcelFromDT_NEW(DataGridView.DataSource, {"J1:J" & (DataGridView.DataSource.Rows.Count + 2), "L1:M" & (DataGridView.DataSource.Rows.Count + 2)},,,, "£") ''Else '' cProgramFunctions.genExcelFromDT_NEW(DataGridView.DataSource, {"M1:N" & (DataGridView.DataSource.Rows.Count + 2)}) ''End If ''Me.Cursor = Cursors.Default End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", Me) Then Dim sqlstr As String = "" sqlstr &= " SELECT COUNT(*) as Anzahl,RechnungsKundenNr,[RechnungsName 1] as RechnungAn,isnull(max(RechnungsLandKz),'') as RechnungsLandKz,isnull(max(RechnungsOrt),'') as RechnungsOrt,isnull(max(RechnungsStraße),'') as RechnungsStraße" sqlstr &= " FROM [Rechnungsausgang] INNER JOIN Speditionsbuch on Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.UnterNr" sqlstr &= " WHERE 1=1" sqlstr &= getRechnungsAusgangWhere().Replace("Rechnungsausgang.[Avisierer", "Speditionsbuch.[Avisierer") If cboBerichtRgAbfArt._value <> "" Then sqlstr &= " AND Speditionsbuch.Abfertigungsart=" & cboBerichtRgAbfArt._value sqlstr &= " group by RechnungsKundenNr, [RechnungsName 1]" sqlstr &= " order by COUNT(*) desc,[RechnungsName 1]" If cboBerichtRgAbfArt._value <> "" Then End If Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", , getSpedbuchList()) 'DataGridView.DataSource = dt Dim print As New frmPrintLayout print.Text = "Rechnungsempfänger Bericht" Dim rpt As New rptFaktRechnungAn rpt.DataSource = dt If rpt.DataSource.rows.count = 0 Then rpt.Dispose() : print.Dispose() MsgBox("Keine Daten vorhanden!") Exit Sub End If Dim sum = 0 rpt.lblUeberschrift.Text = "Rechnungsanschrift Bericht " & txtAbfertDat.Text & " bis " & txtAbfertDatBis.Text rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME 'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung 'Dim cnt As Integer = 0 rpt.lblDat.Text = Now.ToLongDateString Dim sumAnz As Double = 0 For Each r In dt.Rows If r("Anzahl") Then sumAnz += r("Anzahl") Next rpt.lblGesAnzahl.Text = sumAnz AddHandler rpt.Detail.Format, Sub() rpt.lblAnzahl.Text = rpt.Fields.Item("Anzahl").Value rpt.lblKdNr.Text = rpt.Fields.Item("RechnungsKundenNr").Value rpt.lblRechnungsAn.Text = rpt.Fields.Item("RechnungAn").Value rpt.lblRechnungsadresse.Text = rpt.Fields.Item("RechnungsOrt").Value If IsNumeric(rpt.Fields.Item("Anzahl").Value) Then rpt.lblPercent.Text = CDbl(CDbl(rpt.Fields.Item("Anzahl").Value) / sumAnz).ToString("P1") Else rpt.lblPercent.Text = "" End If End Sub print.Viewer.LoadDocument(rpt) print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous print.Show() End If End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Dim sqlstr As String = "" sqlstr &= " SELECT Aviso.[Grenzstelle], COUNT (*) as Anzahl FROM Speditionsbuch INNER JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".AVISO.dbo.AVISO on Aviso.avisoid=Speditionsbuch.AvisoID WHERE PersonalnummerQS is not null " Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr & getRechnungsAusgangWhere() & " GROUP BY Aviso.[Grenzstelle]" & " ORDER BY Anzahl DESC", "FMZOLL", , getSpedbuchList()) DataGridView.DataSource = dt End Sub Private Sub SplitContainer1_Panel2_Paint(sender As Object, e As PaintEventArgs) Handles SplitContainer1.Panel2.Paint End Sub Private Sub MyComboBox6_SelectedIndexChanged(sender As Object, e As EventArgs) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim sqlstr As String = "" sqlstr &= " SELECT " sqlstr &= " max(DATENAME(YEAR, (RechnungsDatum))) as jahr," sqlstr &= " max(DATENAME(month, (RechnungsDatum))) as monat," sqlstr &= " RechnungsDatum = DateAdd(Month, DateDiff(Month, 0, RechnungsDatum), 0)" sqlstr &= " ,(SELECT COUNT (*) FROM [VERAG].[dbo].[RechnungsausgangPositionen] inner join [VERAG].[dbo].[Rechnungsausgang] ON [RechnungsausgangPositionen].RK_ID=[Rechnungsausgang].RK_ID where LeistungsNr =347 AND RechnungsDatum between MIN(RA.RechnungsDatum) and MAX(RA.RechnungsDatum) ) as Clearing_Anzahl" sqlstr &= " ,(SELECT sum ([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) as Betrag FROM [VERAG].[dbo].[RechnungsausgangPositionen] inner join [VERAG].[dbo].[Rechnungsausgang] ON [RechnungsausgangPositionen].RK_ID=[Rechnungsausgang].RK_ID where LeistungsNr =347 AND RechnungsDatum between MIN(RA.RechnungsDatum) and MAX(RA.RechnungsDatum) ) as Clearing_Einnahmen" sqlstr &= " ,(SELECT COUNT (*) FROM [VERAG].[dbo].[RechnungsausgangPositionen] inner join [VERAG].[dbo].[Rechnungsausgang] ON [RechnungsausgangPositionen].RK_ID=[Rechnungsausgang].RK_ID where LeistungsNr =348 AND RechnungsDatum between MIN(RA.RechnungsDatum) and MAX(RA.RechnungsDatum) ) as Aviso_Anzahl" sqlstr &= " ,(SELECT sum ([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) as Betrag FROM [VERAG].[dbo].[RechnungsausgangPositionen] inner join [VERAG].[dbo].[Rechnungsausgang] ON [RechnungsausgangPositionen].RK_ID=[Rechnungsausgang].RK_ID where LeistungsNr =348 AND RechnungsDatum between MIN(RA.RechnungsDatum) and MAX(RA.RechnungsDatum) ) as Aviso_Einnahmen" sqlstr &= " FROM [VERAG].[dbo].[Rechnungsausgang] as RA " sqlstr &= " WHERE RechnungsDatum between '" & txtAbfertDat.Text & " 00:00:00" & "' and '" & txtAbfertDatBis.Text & " 23:59:59" & "' " sqlstr &= " GROUP BY(DATENAME(Year, (RechnungsDatum))), DateAdd(Month, DateDiff(Month, 0, RechnungsDatum), 0)" sqlstr &= " ORDER BY RechnungsDatum " 'MsgBox(sqlstr) Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", , getSpedbuchList()) DataGridView.DataSource = dt End Sub Private Sub txtRechungsNr_von_TextChanged(sender As Object, e As EventArgs) Handles txtRechungsNr_von.TextChanged txtRechungsNr_bis.Enabled = (txtRechungsNr_von.Text <> "") End Sub Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click For i = 0 To MyListBox1.Items.Count - 1 MyListBox1.SetSelected(i, True) Next End Sub Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click For i = 0 To MyListBox1.Items.Count - 1 MyListBox1.SetSelected(i, False) Next End Sub Private Sub EVOLOGToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EVOLOGSammelrechnungAuswählenToolStripMenuItem.Click If DataGridView.SelectedRows.Count = 0 Then Exit Sub Dim RG_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(DataGridView.SelectedRows(0).Cells("RK_ID").Value) If RG_TMP.Sammelrechnung <> 0 Then cFakturierung.doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelEvolog(RG_TMP.RechnungsNr, RG_TMP.DruckDatumZeit, 3, "", "") End If End Sub Private Sub ZFPASSAUToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Click Me.Cursor = Cursors.WaitCursor Try Dim dt As DataTable = SQL.loadDgvBySql("SELECT CAST(Rechnungsausgang.[FilialenNr] as varchar) + '/' + CAST(Rechnungsausgang.[AbfertigungsNr] as varchar) Abfertigungsnummer ,[RechnungsNr],RechnungsKundenNr ,cast([RechnungsDatum] as date)RechnungsDatum ,[AbsenderName 1]Absender ,(SteuerfreierGesamtbetrag+SteuerpflichtigerGesamtbetrag) Betrag ,Speditionsbuch.BelegNr ,Rechnungsausgang.[FilialenNr],Rechnungsausgang.[AbfertigungsNr] ,Speditionsbuch.Abfertigungsart FROM [Rechnungsausgang] inner join Speditionsbuch ON Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr where RechnungsKundenNr IN (714869) and rechnungsdatum BETWEEN '" & txtAbfertDat.Text & "' AND '" & txtAbfertDatBis.Text & "'", "FMZOLL") Dim Path = "" If dt IsNot Nothing And dt.Rows.Count > 0 Then Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\" If Not My.Computer.FileSystem.DirectoryExists(sPath) Then My.Computer.FileSystem.CreateDirectory(sPath) End If Dim exclApp As Object 'as Application Dim Datei As Object 'as WorkBook Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet exclApp = CreateObject("Excel.Application") With exclApp .Visible = False Try Path = sPath & "ZF_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx" While System.IO.File.Exists(Path) Path = sPath & "ZF_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx" End While My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.RG_ZF, False) Catch ex As System.Exception ' MsgBox(ex.Message) MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace) Me.Cursor = Cursors.Default Exit Sub End Try Datei = .Workbooks.Open(Path) 'Anpassen Blatt = Datei.Worksheets(1) 'Anpassen Blatt.Range("G1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text Dim cnt = 3 For Each r In dt.Rows Blatt.Range("A" & cnt).Value = cnt - 2 Blatt.Range("B" & cnt).Value = r("Abfertigungsnummer") Blatt.Range("C" & cnt).Value = r("RechnungsNr") Blatt.Range("D" & cnt).Value = r("RechnungsDatum") Blatt.Range("E" & cnt).Value = r("Absender") Blatt.Range("F" & cnt).Value = r("Betrag") Blatt.Range("G" & cnt).Value = r("BelegNr") 'Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung 'If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "") Then ' Blatt.Range("H" & cnt).Value = ZOLLANMELDUNG.Rechnungspreis ' Blatt.Range("I" & cnt).Value = ZOLLANMELDUNG.Handelsrechnung 'End If cnt += 1 Next Datei.Save If False Then Blatt.PrintOutEx() Else 'Process.Start(Path) .Visible = True End If End With End If Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try Me.Cursor = Cursors.Default End Sub Private Sub ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem1.Click If DataGridView.SelectedRows.Count = 0 Then Exit Sub Dim RG_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(DataGridView.SelectedRows(0).Cells("RK_ID").Value) If RG_TMP.Sammelrechnung <> 0 Then cFakturierung.doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelTransFerry360(RG_TMP.RechnungsNr, RG_TMP.DruckDatumZeit, 3, "", "") End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If cboFiliale._value = "" Then MsgBox("Filiale auswählen!") : Exit Sub Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "") With DataGridView Dim sqlStr = "SELECT " & TopMax & " [FilialenNr],[AbfertigungsNr] ,cast([Abfertigungsdatum] as date) Abfertigungsdatum ,[RechnungsNr] ,cast([RechnungsDatum] as date) [RechnungsDatum] ,[RechnungsName 1] ,RechnungsLandKz ,RechnungsausgangPositionen.LeistungsNr , RechnungsausgangPositionen.LeistungsBez, Preis,Anzahl, RechnungsausgangPositionen.SteuerfreierBetrag,RechnungsausgangPositionen.SteuerpflichtigerBetrag FROM [VERAG].[dbo].[Rechnungsausgang] inner join RechnungsausgangPositionen on Rechnungsausgang.RK_ID=RechnungsausgangPositionen.RK_ID inner join Leistungen on Leistungen.LeistungsNr = RechnungsausgangPositionen.LeistungsNr where /*RechnungsDatum BETWEEN '01.01.2021' and '31.12.2021'*/ FilialenNr=" & cboFiliale._value & " /*and Rechnungsausgang.SteuerpflichtigerGesamtbetrag<>0*/ /*and Leistungen.Steuerpflichtig=1*/ and (Leistungen.Abfertigungskosten=1 or Leistungen.LeistungsNr IN (656,425)) and RechnungsausgangPositionen.LeistungsNr NOT IN (700,710,750,751,20,60,61) and Firma_ID=26 " ' MsgBox(sqlStr & getRechnungsAusgangWhere() & " order by [RechnungsDatum],RechnungsNr,RechnungsausgangPositionen.LeistungsNr") .SET_SQL(sqlStr & getRechnungsAusgangWhere() & " order by [RechnungsDatum],RechnungsNr,RechnungsausgangPositionen.LeistungsNr", "FMZOLL", getSpedbuchList) .LOAD() lblErgebnis.Text = "Ergebnisse: " & .RowCount brexitXLS = True End With End Sub Function getList_RK_ID() As List(Of Integer) Dim listRgNr As New List(Of Integer) Dim list As New List(Of Integer) If DataGridView.SelectedRows.Count > 0 Then For Each r As DataGridViewRow In DataGridView.SelectedRows If listRgNr.FindIndex((Function(x) x.ToString = r.Cells("RechnungsNr").Value)) <0 Then List.Add(r.Cells("RK_ID").Value) listRgNr.Add(r.Cells("RechnungsNr").Value) End If Next End If Return list End Function Private Sub Button9_Click_1(sender As Object, e As EventArgs) Handles btnPDF.Click Me.Cursor = Cursors.WaitCursor Try For Each RK_ID In getList_RK_ID() Dim RG_PATH = "" cFakturierung.doRechnungsDruck_SRorER(RK_ID,, False, 4, RG_PATH,,, True) Process.Start(RG_PATH) Next Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try Me.Cursor = Cursors.Default End Sub Private Sub DateiHochladenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiHochladenToolStripMenuItem.Click Me.Cursor = Cursors.WaitCursor Try Dim list As New List(Of String) For Each RK_ID In getList_RK_ID() Dim RG_PATH = "" cFakturierung.doRechnungsDruck_SRorER(RK_ID,, False, 4, RG_PATH,,, True) list.Add(RG_PATH) Next 'Zwischenablage Clipboard.Clear() Dim d As New DataObject(DataFormats.FileDrop, list.ToArray) Clipboard.SetDataObject(d, True) Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try Me.Cursor = Cursors.Default End Sub Private Sub DataGridView_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView.SelectionChanged btnPDF.Enabled = (DataGridView.SelectedRows.Count > 0) End Sub Private Sub PictureBox5_Click(sender As Object, e As EventArgs) Handles PictureBox5.Click Dim webAddress As String = "https://wiki.verag.ag/de/abteilungen/verrechnung/xxxx" Process.Start(webAddress) End Sub End Class