From b728f3f0d7e99df29e341f876a6126a5ab8665a1 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 5 Dec 2025 15:15:01 +0100 Subject: [PATCH] Performanceverbesserungen Offene Antraege!!! --- SDL/My Project/AssemblyInfo.vb | 4 +- SDL/USTV/frmUSTVoffeneAntraege.vb | 188 +++++++++++++++--------------- SDL/mdm/usrcntlFremdrechnungen.vb | 1 - 3 files changed, 95 insertions(+), 98 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 43ffb07f..08de7503 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/USTV/frmUSTVoffeneAntraege.vb b/SDL/USTV/frmUSTVoffeneAntraege.vb index 9caae6c6..b6820350 100644 --- a/SDL/USTV/frmUSTVoffeneAntraege.vb +++ b/SDL/USTV/frmUSTVoffeneAntraege.vb @@ -1,5 +1,5 @@ Imports System.Windows.Documents -Imports DocumentFormat.OpenXml.Drawing.Diagrams +Imports VERAG_PROG_ALLGEMEIN Public Class frmUSTVoffeneAntraege @@ -95,7 +95,49 @@ Public Class frmUSTVoffeneAntraege End Sub + Private Sub setPDFICON(dgv As DataGridView, dgvCellNameMWST As String, dgvCellNameDSID As String, ByRef sumMWST As Double) + + Dim c As New DataGridViewImageColumn + c.Name = "clmnPDF" : c.HeaderText = "RE" + ' c.Image = Nothing + c.DefaultCellStyle.NullValue = Nothing + c.ImageLayout = DataGridViewImageCellLayout.Zoom + c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White + 'c.DefaultCellStyle.Tag = "Therefore anzeigen" + + If Not dgv.Columns.Contains("clmnPDF") Then dgv.Columns.Add(c) + + Dim pdfImg As Image = My.Resources.pdf + + For Each r As DataGridViewRow In dgv.Rows + If Not r.IsNewRow Then + + ' Wert lokal zwischenspeichern (vermeidet DGV-Overhead) + Dim mwstObj = r.Cells(dgvCellNameMWST).Value + Dim daIdObj = r.Cells(dgvCellNameDSID).Value + + ' Summe berechnen + Dim mwst As Double + If Double.TryParse(Convert.ToString(mwstObj), mwst) Then + sumMWST += mwst + End If + + ' PDF setzen + + If daIdObj IsNot Nothing AndAlso + Not IsDBNull(daIdObj) AndAlso + Convert.ToInt32(daIdObj) > 0 Then + + r.Cells("clmnPDF").Value = pdfImg + End If + + End If + Next + End Sub + Sub initDgv_PLOSE(anz As Integer, Optional kdnr As Integer = -1) + + With MyDatagridview1 .Columns.Clear() @@ -145,29 +187,13 @@ Public Class frmUSTVoffeneAntraege .Columns("plose_MWSTBetrag").HeaderText = "MWST" .Columns("daId").Visible = False - .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 - Dim c As New DataGridViewImageColumn - c.Name = "clmnPDF" : c.HeaderText = "RE" - ' c.Image = Nothing - c.DefaultCellStyle.NullValue = Nothing - c.ImageLayout = DataGridViewImageCellLayout.Zoom - c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White - 'c.DefaultCellStyle.Tag = "Therefore anzeigen" - - If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) - - For Each r As DataGridViewRow In .Rows - sumMwSt += If(IsNumeric(r.Cells("plose_MWSTBetrag").Value), CDbl(r.Cells("plose_MWSTBetrag").Value), 0) - - If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf - Next - - + setPDFICON(MyDatagridview1, "plose_MWSTBetrag", "daId", sumMwSt) txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt @@ -194,10 +220,15 @@ Public Class frmUSTVoffeneAntraege .Columns.Clear() 'Exit Sub 'MsgBox(.sql) + + Dim sqlstring = "Select " & top & " [rmc_kdNr], [rmc_kdName], [rmc_landKZ], [rmc_reDatum], [rmc_reNr], [rmc_waehrung], [rmc_betragMWST],rmc_daid as daId FROM [tblRMCImport] - INNER JOIN Adressen on WölflKundenNr=[rmc_kdNr] or weitereWölflKundenNr=[rmc_kdNr] - where cast(rmc_reDatum As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' And rmc_archiv <> 1 " & sqlwhere & - "group by rmc_reDatum, rmc_kdNr,[rmc_kdName], [rmc_landKZ],[rmc_reNr], [rmc_waehrung], [rmc_betragMWST], rmc_daid having [rmc_betragMWST] <> 0" + INNER JOIN Adressen on WölflKundenNr=[rmc_kdNr] + where rmc_reDatum >= '" & dat_Sum_Von.Value & "' And rmc_reDatum < '" & dat_Sum_Bis.Value & "' And rmc_archiv <> 1 AND [rmc_betragMWST] <> 0 " & sqlwhere + + sqlstring &= " UNION ALL Select " & top & " [rmc_kdNr], [rmc_kdName], [rmc_landKZ], [rmc_reDatum], [rmc_reNr], [rmc_waehrung], [rmc_betragMWST],rmc_daid as daId FROM [tblRMCImport] + INNER JOIN Adressen on weitereWölflKundenNr=[rmc_kdNr] + where rmc_reDatum >= '" & dat_Sum_Von.Value & "' And rmc_reDatum < '" & dat_Sum_Bis.Value & "' And rmc_archiv <> 1 AND [rmc_betragMWST] <> 0 " & sqlwhere .SET_SQL(sqlstring, "FMZOLL") .LOAD() @@ -212,27 +243,13 @@ Public Class frmUSTVoffeneAntraege .Columns("rmc_waehrung").HeaderText = "Währung" .Columns("daId").Visible = False .Columns("rmc_kdName").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 - Dim c As New DataGridViewImageColumn - c.Name = "clmnPDF" : c.HeaderText = "RE" - ' c.Image = Nothing - c.DefaultCellStyle.NullValue = Nothing - c.ImageLayout = DataGridViewImageCellLayout.Zoom - c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White - 'c.DefaultCellStyle.Tag = "Therefore anzeigen" - - If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) - - For Each r As DataGridViewRow In .Rows - sumMwSt += If(IsNumeric(r.Cells("rmc_betragMWST").Value), CDbl(r.Cells("rmc_betragMWST").Value), 0) - - If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf - Next + setPDFICON(MyDatagridview1, "rmc_betragMWST", "daId", sumMwSt) txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt @@ -273,7 +290,7 @@ Public Class frmUSTVoffeneAntraege .Columns("total_vat_amount_euro").HeaderText = "MWSt Euro" .Columns("daId").Visible = False .Columns("customer_name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If @@ -289,12 +306,14 @@ Public Class frmUSTVoffeneAntraege If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) - For Each r As DataGridViewRow In .Rows - sumMwSt += If(IsNumeric(r.Cells("total_vat_amount_euro").Value), CDbl(r.Cells("total_vat_amount_euro").Value), 0) + 'For Each r As DataGridViewRow In .Rows + ' sumMwSt += If(IsNumeric(r.Cells("total_vat_amount_euro").Value), CDbl(r.Cells("total_vat_amount_euro").Value), 0) - If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf + ' If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf - Next + 'Next + + setPDFICON(MyDatagridview1, "total_vat_amount_euro", "daId", sumMwSt) txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt @@ -340,23 +359,12 @@ Public Class frmUSTVoffeneAntraege .Columns("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung").HeaderText = "MWSt Euro" .Columns("daId").Visible = False .Columns("Name 1").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 - Dim c As New DataGridViewImageColumn - c.Name = "clmnPDF" : c.HeaderText = "RE" - ' c.Image = Nothing - c.DefaultCellStyle.NullValue = Nothing - c.ImageLayout = DataGridViewImageCellLayout.Zoom - c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White - 'c.DefaultCellStyle.Tag = "Therefore anzeigen" + setPDFICON(MyDatagridview1, "Gesamtbetrag_Umsatzsteuer_in_Darstellwährung", "daId", sumMwSt) - .Columns.Add(c) - For Each r As DataGridViewRow In .Rows - sumMwSt += If(IsNumeric(r.Cells("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung").Value), CDbl(r.Cells("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung").Value), 0) - If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf - Next txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt End With @@ -419,27 +427,13 @@ Public Class frmUSTVoffeneAntraege .Columns("Steuerbetrag").HeaderText = "MWSt Euro" .Columns("daId").Visible = False .Columns("Name 1").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 - Dim c As New DataGridViewImageColumn - c.Name = "clmnPDF" : c.HeaderText = "RE" - ' c.Image = Nothing - c.DefaultCellStyle.NullValue = Nothing - c.ImageLayout = DataGridViewImageCellLayout.Zoom - c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White - 'c.DefaultCellStyle.Tag = "Therefore anzeigen" - - If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) - - - For Each r As DataGridViewRow In .Rows - sumMwSt += If(IsNumeric(r.Cells("Steuerbetrag").Value), CDbl(r.Cells("Steuerbetrag").Value), 0) - If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf - Next + setPDFICON(MyDatagridview1, "Steuerbetrag", "daId", sumMwSt) txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt @@ -482,29 +476,12 @@ Public Class frmUSTVoffeneAntraege .Columns("Rechnungsnummer").HeaderText = "RE-Nr" .Columns("SteuerbetragLokal").HeaderText = "MWSt Euro" .Columns("Name 1").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 - Dim c As New DataGridViewImageColumn - c.Name = "clmnPDF" : c.HeaderText = "RE" - ' c.Image = Nothing - c.DefaultCellStyle.NullValue = Nothing - c.ImageLayout = DataGridViewImageCellLayout.Zoom - c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White - 'c.DefaultCellStyle.Tag = "Therefore anzeigen" - - If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) - - - For Each r As DataGridViewRow In .Rows - sumMwSt += If(IsNumeric(r.Cells("SteuerbetragLokal").Value), CDbl(r.Cells("SteuerbetragLokal").Value), 0) - 'If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then - DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf - Next - txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt @@ -758,11 +735,26 @@ Public Class frmUSTVoffeneAntraege [rmc_reDatum] AS Rechnungsdatum, [rmc_betragMWST] as MWST FROM [tblRMCImport] - INNER JOIN Adressen on WölflKundenNr= [rmc_kdNr] or weitereWölflKundenNr=[rmc_kdNr] - where cast(rmc_reDatum As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' + INNER JOIN Adressen on WölflKundenNr= [rmc_kdNr] + where rmc_reDatum >= '" & dat_Sum_Von.Value & "' And rmc_reDatum < '" & dat_Sum_Bis.Value & "' And UStVAn_ID is null " & sqlwhereRMC & " - group by Adressen.AdressenNr,Adressen.[Name 1],Adressen.LandKz, [rmc_landKZ],[rmc_reNr], rmc_reDatum, [rmc_betragMWST] - having [rmc_betragMWST] <> 0 + AND [rmc_betragMWST] <> 0 + + UNION ALL + + Select " & top & " + 'RMC' as Lieferant, + Adressen.AdressenNr as KdNr, + Adressen.[Name 1] as Kundenname, + Adressen.LandKz as Kundenland, + [rmc_landKZ] as Einreichland, + [rmc_reDatum] AS Rechnungsdatum, + [rmc_betragMWST] as MWST + FROM [tblRMCImport] + INNER JOIN Adressen on weitereWölflKundenNr=[rmc_kdNr] + where rmc_reDatum >= '" & dat_Sum_Von.Value & "' And rmc_reDatum < '" & dat_Sum_Bis.Value & "' + And UStVAn_ID is null " & sqlwhereRMC & " + AND [rmc_betragMWST] <> 0 UNION ALL @@ -862,7 +854,7 @@ Public Class frmUSTVoffeneAntraege .Columns("Einreichland").HeaderText = "Einreichland" .Columns("eingereicht").HeaderText = "einger." .Columns("Kundenname").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If @@ -952,6 +944,10 @@ Public Class frmUSTVoffeneAntraege setdtKundeMWST(IIf(cbxAlleoffenen.Checked, -1, kdNr)) + + MyDatagridview1.SuspendLayout() + MyDatagridview1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None + Select Case LIEFERANT.ToString.ToLower Case "plose" : initDgv_PLOSE(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "rmc" : initDgv_RMC(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) @@ -961,6 +957,8 @@ Public Class frmUSTVoffeneAntraege Case "verag" : initDgv_VERAG(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "alle" : initDgv_gesamt(txtmaxAnz.Text, cbxNichtEroeffneteAntraege.Checked, IIf(cbxAlleoffenen.Checked, -1, kdNr)) End Select + + MyDatagridview1.ResumeLayout() End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click diff --git a/SDL/mdm/usrcntlFremdrechnungen.vb b/SDL/mdm/usrcntlFremdrechnungen.vb index 14020259..a42460e3 100644 --- a/SDL/mdm/usrcntlFremdrechnungen.vb +++ b/SDL/mdm/usrcntlFremdrechnungen.vb @@ -1268,7 +1268,6 @@ Public Class usrcntlFremdrechnungen DS.OPEN_SINGLE() End If - Case Else