From 2760a44ed76530080d75ffa40d518eada24f1b6b Mon Sep 17 00:00:00 2001 From: Andreas Luxbauer Date: Tue, 5 Aug 2025 21:39:06 +0200 Subject: [PATCH 1/2] DHF Artikelstamm --- SDL/Resources/Artikelstamm.xlsx | Bin 22163 -> 23160 bytes SDL/cATLAS_FSS.vb | 1 + SDL/cSqlDb.vb | 9 +- SDL/zoll/frmAddArtikelATLAS.Designer.vb | 142 ++++++++- SDL/zoll/frmAddArtikelATLAS.resx | 68 ++-- SDL/zoll/frmAddArtikelATLAS.vb | 7 +- SDL/zoll/usrCntlZollArtikel.Designer.vb | 92 +++--- SDL/zoll/usrCntlZollArtikel.vb | 112 ++++++- VERAG_PROG_ALLGEMEIN/Classes/SQL.vb | 75 ++++- VERAG_PROG_ALLGEMEIN/Classes/cClasses.vb | 89 ++++++ VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb | 32 +- .../Schnittstellen/DHF/cDHF_Artikel.vb | 299 ++++++++++++++++++ .../VERAG_PROG_ALLGEMEIN.vbproj | 1 + 13 files changed, 841 insertions(+), 86 deletions(-) create mode 100644 VERAG_PROG_ALLGEMEIN/Schnittstellen/DHF/cDHF_Artikel.vb diff --git a/SDL/Resources/Artikelstamm.xlsx b/SDL/Resources/Artikelstamm.xlsx index 91353879c99b786518a4627471d3a9e9b9ef4652..c9b9d14bcdc7e3003c9fb3f83c06fa2ce0e70a97 100644 GIT binary patch delta 9336 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 delta 8324 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 diff --git a/SDL/cATLAS_FSS.vb b/SDL/cATLAS_FSS.vb index c41c5221..b52b3298 100644 --- a/SDL/cATLAS_FSS.vb +++ b/SDL/cATLAS_FSS.vb @@ -227,6 +227,7 @@ Public Class cArtikel Property Artikelnummer As String = "" Property Dynamische_Ergänzung_1 As String = "" Property Dynamische_Ergänzung_2 As String = "" + Property Ursprungsland As String = "" Property Kundennummer As String = "" Property Warencodenummer As String = "" Property Löschkennzeichen_Warencodenummer As String = "" diff --git a/SDL/cSqlDb.vb b/SDL/cSqlDb.vb index ce3d1587..9c60c45e 100644 --- a/SDL/cSqlDb.vb +++ b/SDL/cSqlDb.vb @@ -435,14 +435,14 @@ Public Class SQLZoll " begin " & "DELETE TOP (1) FROM tblZollArtikel WHERE KundenNr = @KundenNr AND zollArt_Artikelnummer=@zollArt_Artikelnummer AND zollArt_Warencodenummer=@zollArt_Warencodenummer " & "INSERT INTO tblZollArtikel " & - " (KundenNr,zollArt_Artikelnummer,zollArt_Dynamische_Ergaenzung_1,zollArt_Dynamische_Ergaenzung_2,zollArt_Warencodenummer,zollArt_Kurzbezeichnung,zollArt_Warenbeschreibung,zollArt_Status,Erfassungsdatum,Sachbearbeiter) " & - " VALUES(@KundenNr,@zollArt_Artikelnummer,@zollArt_Dynamische_Ergaenzung_1,@zollArt_Dynamische_Ergaenzung_2,@zollArt_Warencodenummer,@zollArt_Kurzbezeichnung,@zollArt_Warenbeschreibung,@zollArt_Status,@Erfassungsdatum,@Sachbearbeiter) " & + " (KundenNr,zollArt_Artikelnummer,zollArt_Dynamische_Ergaenzung_1,zollArt_Dynamische_Ergaenzung_2,zollArt_Warencodenummer,zollArt_Kurzbezeichnung,zollArt_Warenbeschreibung,zollArt_Ursprungsland,zollArt_Status,Erfassungsdatum,Sachbearbeiter) " & + " VALUES(@KundenNr,@zollArt_Artikelnummer,@zollArt_Dynamische_Ergaenzung_1,@zollArt_Dynamische_Ergaenzung_2,@zollArt_Warencodenummer,@zollArt_Kurzbezeichnung,@zollArt_Warenbeschreibung,@zollArt_Ursprungsland,@zollArt_Status,@Erfassungsdatum,@Sachbearbeiter) " & " End " & " Else " & " begin " & "INSERT INTO tblZollArtikel " & - " (KundenNr,zollArt_Artikelnummer,zollArt_Dynamische_Ergaenzung_1,zollArt_Dynamische_Ergaenzung_2,zollArt_Warencodenummer,zollArt_Kurzbezeichnung,zollArt_Warenbeschreibung,zollArt_Status,Erfassungsdatum,Sachbearbeiter) " & - " VALUES(@KundenNr,@zollArt_Artikelnummer,@zollArt_Dynamische_Ergaenzung_1,@zollArt_Dynamische_Ergaenzung_2,@zollArt_Warencodenummer,@zollArt_Kurzbezeichnung,@zollArt_Warenbeschreibung,@zollArt_Status,@Erfassungsdatum,@Sachbearbeiter) " & + " (KundenNr,zollArt_Artikelnummer,zollArt_Dynamische_Ergaenzung_1,zollArt_Dynamische_Ergaenzung_2,zollArt_Warencodenummer,zollArt_Kurzbezeichnung,zollArt_Warenbeschreibung,zollArt_Ursprungsland,zollArt_Status,Erfassungsdatum,Sachbearbeiter) " & + " VALUES(@KundenNr,@zollArt_Artikelnummer,@zollArt_Dynamische_Ergaenzung_1,@zollArt_Dynamische_Ergaenzung_2,@zollArt_Warencodenummer,@zollArt_Kurzbezeichnung,@zollArt_Warenbeschreibung,@zollArt_Ursprungsland,@zollArt_Status,@Erfassungsdatum,@Sachbearbeiter) " & " End " & " commit tran " @@ -458,6 +458,7 @@ Public Class SQLZoll cmd.Parameters.AddWithValue("@zollArt_Warencodenummer", artikel.Warencodenummer) cmd.Parameters.AddWithValue("@zollArt_Kurzbezeichnung", artikel.Kurzbezeichnung) cmd.Parameters.AddWithValue("@zollArt_Warenbeschreibung", artikel.Warenbeschreibung) + cmd.Parameters.AddWithValue("@zollArt_Ursprungsland", artikel.Ursprungsland) cmd.Parameters.AddWithValue("@zollArt_Status", artikel.status) cmd.Parameters.AddWithValue("@Erfassungsdatum", Now) diff --git a/SDL/zoll/frmAddArtikelATLAS.Designer.vb b/SDL/zoll/frmAddArtikelATLAS.Designer.vb index d0eece50..551ffdcc 100644 --- a/SDL/zoll/frmAddArtikelATLAS.Designer.vb +++ b/SDL/zoll/frmAddArtikelATLAS.Designer.vb @@ -90,6 +90,8 @@ Partial Class frmAddArtikelATLAS Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel() Me.Timer1 = New System.Windows.Forms.Timer(Me.components) Me.Label5 = New System.Windows.Forms.Label() + Me.txtUrsprungsland = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Label20 = New System.Windows.Forms.Label() Me.Panel1.SuspendLayout() Me.Panel3.SuspendLayout() Me.Panel4.SuspendLayout() @@ -134,6 +136,8 @@ Partial Class frmAddArtikelATLAS ' 'Panel3 ' + Me.Panel3.Controls.Add(Me.txtUrsprungsland) + Me.Panel3.Controls.Add(Me.Label20) Me.Panel3.Controls.Add(Me.errWarencodenummer) Me.Panel3.Controls.Add(Me.Label17) Me.Panel3.Controls.Add(Me.Label18) @@ -299,7 +303,7 @@ Partial Class frmAddArtikelATLAS Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(235, 52) Me.Label2.TabIndex = 377 - Me.Label2.Text = "* Fixe Parameter: Anhand dieser Parameter " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & " identifiziert ATLAS den Datensatz" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & _ + Me.Label2.Text = "* Fixe Parameter: Anhand dieser Parameter " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & " identifiziert ATLAS den Datensatz" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & " Bei Änderung wird ein neuer Eintrag im ATLAS " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & " erzeugt." Me.Label2.Visible = False ' @@ -315,24 +319,35 @@ Partial Class frmAddArtikelATLAS ' 'txtKdNr ' + Me.txtKdNr._DateTimeOnly = False Me.txtKdNr._numbersOnly = False + Me.txtKdNr._numbersOnlyKommastellen = "" + Me.txtKdNr._numbersOnlyTrennzeichen = True Me.txtKdNr._Prozent = False + Me.txtKdNr._ShortDateNew = False Me.txtKdNr._ShortDateOnly = False + Me.txtKdNr._TimeOnly = False + Me.txtKdNr._TimeOnly_Seconds = False Me.txtKdNr._value = Nothing Me.txtKdNr._Waehrung = False + Me.txtKdNr._WaehrungZeichen = True Me.txtKdNr.Location = New System.Drawing.Point(376, 81) Me.txtKdNr.MaxLength = 17 + Me.txtKdNr.MaxLineLength = -1 + Me.txtKdNr.MaxLines_Warning = "" + Me.txtKdNr.MaxLines_Warning_Label = Nothing Me.txtKdNr.Name = "txtKdNr" Me.txtKdNr.Size = New System.Drawing.Size(179, 20) Me.txtKdNr.TabIndex = 1 ' 'btnSave ' + Me.btnSave.allowBorder = False Me.btnSave.Enabled = False Me.btnSave.FlatAppearance.BorderSize = 0 Me.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnSave.ForeColor = System.Drawing.Color.Black - Me.btnSave.Image = Global.SDL.My.Resources.save + Me.btnSave.Image = Global.SDL.My.Resources.Resources.save Me.btnSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft Me.btnSave.Location = New System.Drawing.Point(11, 408) Me.btnSave.Name = "btnSave" @@ -354,13 +369,23 @@ Partial Class frmAddArtikelATLAS ' 'txtMerkmal1 ' + Me.txtMerkmal1._DateTimeOnly = False Me.txtMerkmal1._numbersOnly = False + Me.txtMerkmal1._numbersOnlyKommastellen = "" + Me.txtMerkmal1._numbersOnlyTrennzeichen = True Me.txtMerkmal1._Prozent = False + Me.txtMerkmal1._ShortDateNew = False Me.txtMerkmal1._ShortDateOnly = False + Me.txtMerkmal1._TimeOnly = False + Me.txtMerkmal1._TimeOnly_Seconds = False Me.txtMerkmal1._value = Nothing Me.txtMerkmal1._Waehrung = False + Me.txtMerkmal1._WaehrungZeichen = True Me.txtMerkmal1.Location = New System.Drawing.Point(97, 107) Me.txtMerkmal1.MaxLength = 100 + Me.txtMerkmal1.MaxLineLength = -1 + Me.txtMerkmal1.MaxLines_Warning = "" + Me.txtMerkmal1.MaxLines_Warning_Label = Nothing Me.txtMerkmal1.Name = "txtMerkmal1" Me.txtMerkmal1.Size = New System.Drawing.Size(110, 20) Me.txtMerkmal1.TabIndex = 2 @@ -377,14 +402,24 @@ Partial Class frmAddArtikelATLAS ' 'txtWarencodeZusatz1 ' + Me.txtWarencodeZusatz1._DateTimeOnly = False Me.txtWarencodeZusatz1._numbersOnly = False + Me.txtWarencodeZusatz1._numbersOnlyKommastellen = "" + Me.txtWarencodeZusatz1._numbersOnlyTrennzeichen = True Me.txtWarencodeZusatz1._Prozent = False + Me.txtWarencodeZusatz1._ShortDateNew = False Me.txtWarencodeZusatz1._ShortDateOnly = False + Me.txtWarencodeZusatz1._TimeOnly = False + Me.txtWarencodeZusatz1._TimeOnly_Seconds = False Me.txtWarencodeZusatz1._value = Nothing Me.txtWarencodeZusatz1._Waehrung = False + Me.txtWarencodeZusatz1._WaehrungZeichen = True Me.txtWarencodeZusatz1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.txtWarencodeZusatz1.Location = New System.Drawing.Point(329, 180) Me.txtWarencodeZusatz1.MaxLength = 4 + Me.txtWarencodeZusatz1.MaxLineLength = -1 + Me.txtWarencodeZusatz1.MaxLines_Warning = "" + Me.txtWarencodeZusatz1.MaxLines_Warning_Label = Nothing Me.txtWarencodeZusatz1.Name = "txtWarencodeZusatz1" Me.txtWarencodeZusatz1.Size = New System.Drawing.Size(110, 20) Me.txtWarencodeZusatz1.TabIndex = 5 @@ -400,13 +435,23 @@ Partial Class frmAddArtikelATLAS ' 'txtMerkmal2 ' + Me.txtMerkmal2._DateTimeOnly = False Me.txtMerkmal2._numbersOnly = False + Me.txtMerkmal2._numbersOnlyKommastellen = "" + Me.txtMerkmal2._numbersOnlyTrennzeichen = True Me.txtMerkmal2._Prozent = False + Me.txtMerkmal2._ShortDateNew = False Me.txtMerkmal2._ShortDateOnly = False + Me.txtMerkmal2._TimeOnly = False + Me.txtMerkmal2._TimeOnly_Seconds = False Me.txtMerkmal2._value = Nothing Me.txtMerkmal2._Waehrung = False + Me.txtMerkmal2._WaehrungZeichen = True Me.txtMerkmal2.Location = New System.Drawing.Point(213, 107) Me.txtMerkmal2.MaxLength = 100 + Me.txtMerkmal2.MaxLineLength = -1 + Me.txtMerkmal2.MaxLines_Warning = "" + Me.txtMerkmal2.MaxLines_Warning_Label = Nothing Me.txtMerkmal2.Name = "txtMerkmal2" Me.txtMerkmal2.Size = New System.Drawing.Size(110, 20) Me.txtMerkmal2.TabIndex = 3 @@ -423,14 +468,24 @@ Partial Class frmAddArtikelATLAS ' 'txtWarencodeZusatz2 ' + Me.txtWarencodeZusatz2._DateTimeOnly = False Me.txtWarencodeZusatz2._numbersOnly = False + Me.txtWarencodeZusatz2._numbersOnlyKommastellen = "" + Me.txtWarencodeZusatz2._numbersOnlyTrennzeichen = True Me.txtWarencodeZusatz2._Prozent = False + Me.txtWarencodeZusatz2._ShortDateNew = False Me.txtWarencodeZusatz2._ShortDateOnly = False + Me.txtWarencodeZusatz2._TimeOnly = False + Me.txtWarencodeZusatz2._TimeOnly_Seconds = False Me.txtWarencodeZusatz2._value = Nothing Me.txtWarencodeZusatz2._Waehrung = False + Me.txtWarencodeZusatz2._WaehrungZeichen = True Me.txtWarencodeZusatz2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.txtWarencodeZusatz2.Location = New System.Drawing.Point(445, 180) Me.txtWarencodeZusatz2.MaxLength = 4 + Me.txtWarencodeZusatz2.MaxLineLength = -1 + Me.txtWarencodeZusatz2.MaxLines_Warning = "" + Me.txtWarencodeZusatz2.MaxLines_Warning_Label = Nothing Me.txtWarencodeZusatz2.Name = "txtWarencodeZusatz2" Me.txtWarencodeZusatz2.Size = New System.Drawing.Size(110, 20) Me.txtWarencodeZusatz2.TabIndex = 6 @@ -446,13 +501,23 @@ Partial Class frmAddArtikelATLAS ' 'txtArtikelNr ' + Me.txtArtikelNr._DateTimeOnly = False Me.txtArtikelNr._numbersOnly = False + Me.txtArtikelNr._numbersOnlyKommastellen = "" + Me.txtArtikelNr._numbersOnlyTrennzeichen = True Me.txtArtikelNr._Prozent = False + Me.txtArtikelNr._ShortDateNew = False Me.txtArtikelNr._ShortDateOnly = False + Me.txtArtikelNr._TimeOnly = False + Me.txtArtikelNr._TimeOnly_Seconds = False Me.txtArtikelNr._value = Nothing Me.txtArtikelNr._Waehrung = False + Me.txtArtikelNr._WaehrungZeichen = True Me.txtArtikelNr.Location = New System.Drawing.Point(97, 81) Me.txtArtikelNr.MaxLength = 50 + Me.txtArtikelNr.MaxLineLength = -1 + Me.txtArtikelNr.MaxLines_Warning = "" + Me.txtArtikelNr.MaxLines_Warning_Label = Nothing Me.txtArtikelNr.Name = "txtArtikelNr" Me.txtArtikelNr.Size = New System.Drawing.Size(226, 20) Me.txtArtikelNr.TabIndex = 0 @@ -498,27 +563,47 @@ Partial Class frmAddArtikelATLAS ' 'txtKurztext ' + Me.txtKurztext._DateTimeOnly = False Me.txtKurztext._numbersOnly = False + Me.txtKurztext._numbersOnlyKommastellen = "" + Me.txtKurztext._numbersOnlyTrennzeichen = True Me.txtKurztext._Prozent = False + Me.txtKurztext._ShortDateNew = False Me.txtKurztext._ShortDateOnly = False + Me.txtKurztext._TimeOnly = False + Me.txtKurztext._TimeOnly_Seconds = False Me.txtKurztext._value = Nothing Me.txtKurztext._Waehrung = False + Me.txtKurztext._WaehrungZeichen = True Me.txtKurztext.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.txtKurztext.Location = New System.Drawing.Point(97, 206) Me.txtKurztext.MaxLength = 600 + Me.txtKurztext.MaxLineLength = -1 + Me.txtKurztext.MaxLines_Warning = "" + Me.txtKurztext.MaxLines_Warning_Label = Nothing Me.txtKurztext.Name = "txtKurztext" Me.txtKurztext.Size = New System.Drawing.Size(458, 20) Me.txtKurztext.TabIndex = 7 ' 'txtBeschreibung ' + Me.txtBeschreibung._DateTimeOnly = False Me.txtBeschreibung._numbersOnly = False + Me.txtBeschreibung._numbersOnlyKommastellen = "" + Me.txtBeschreibung._numbersOnlyTrennzeichen = True Me.txtBeschreibung._Prozent = False + Me.txtBeschreibung._ShortDateNew = False Me.txtBeschreibung._ShortDateOnly = False + Me.txtBeschreibung._TimeOnly = False + Me.txtBeschreibung._TimeOnly_Seconds = False Me.txtBeschreibung._value = Nothing Me.txtBeschreibung._Waehrung = False + Me.txtBeschreibung._WaehrungZeichen = True Me.txtBeschreibung.Location = New System.Drawing.Point(97, 241) Me.txtBeschreibung.MaxLength = 2400 + Me.txtBeschreibung.MaxLineLength = -1 + Me.txtBeschreibung.MaxLines_Warning = "" + Me.txtBeschreibung.MaxLines_Warning_Label = Nothing Me.txtBeschreibung.Multiline = True Me.txtBeschreibung.Name = "txtBeschreibung" Me.txtBeschreibung.Size = New System.Drawing.Size(458, 80) @@ -526,14 +611,24 @@ Partial Class frmAddArtikelATLAS ' 'txtWarencodenummer ' + Me.txtWarencodenummer._DateTimeOnly = False Me.txtWarencodenummer._numbersOnly = False + Me.txtWarencodenummer._numbersOnlyKommastellen = "" + Me.txtWarencodenummer._numbersOnlyTrennzeichen = True Me.txtWarencodenummer._Prozent = False + Me.txtWarencodenummer._ShortDateNew = False Me.txtWarencodenummer._ShortDateOnly = False + Me.txtWarencodenummer._TimeOnly = False + Me.txtWarencodenummer._TimeOnly_Seconds = False Me.txtWarencodenummer._value = Nothing Me.txtWarencodenummer._Waehrung = False + Me.txtWarencodenummer._WaehrungZeichen = True Me.txtWarencodenummer.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.txtWarencodenummer.Location = New System.Drawing.Point(97, 180) Me.txtWarencodenummer.MaxLength = 11 + Me.txtWarencodenummer.MaxLineLength = -1 + Me.txtWarencodenummer.MaxLines_Warning = "" + Me.txtWarencodenummer.MaxLines_Warning_Label = Nothing Me.txtWarencodenummer.Name = "txtWarencodenummer" Me.txtWarencodenummer.Size = New System.Drawing.Size(226, 20) Me.txtWarencodenummer.TabIndex = 4 @@ -599,11 +694,12 @@ Partial Class frmAddArtikelATLAS ' 'FlatButton3 ' + Me.FlatButton3.allowBorder = False Me.FlatButton3.Enabled = False Me.FlatButton3.FlatAppearance.BorderSize = 0 Me.FlatButton3.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.FlatButton3.ForeColor = System.Drawing.Color.Black - Me.FlatButton3.Image = Global.SDL.My.Resources.transfer + Me.FlatButton3.Image = Global.SDL.My.Resources.Resources.transfer Me.FlatButton3.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft Me.FlatButton3.Location = New System.Drawing.Point(5, 21) Me.FlatButton3.Name = "FlatButton3" @@ -661,7 +757,7 @@ Partial Class frmAddArtikelATLAS Me.btnKdSearch.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnKdSearch.FlatAppearance.BorderSize = 0 Me.btnKdSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnKdSearch.Image = Global.SDL.My.Resources.search + Me.btnKdSearch.Image = Global.SDL.My.Resources.Resources.search Me.btnKdSearch.Location = New System.Drawing.Point(403, 30) Me.btnKdSearch.Name = "btnKdSearch" Me.btnKdSearch.Size = New System.Drawing.Size(40, 21) @@ -757,6 +853,7 @@ Partial Class frmAddArtikelATLAS ' Me.BindingNavigatorPositionItem.AccessibleName = "Position" Me.BindingNavigatorPositionItem.AutoSize = False + Me.BindingNavigatorPositionItem.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.BindingNavigatorPositionItem.Name = "BindingNavigatorPositionItem" Me.BindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 23) Me.BindingNavigatorPositionItem.Text = "0" @@ -793,7 +890,7 @@ Partial Class frmAddArtikelATLAS 'ToolStripButton1 ' Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton1.Image = Global.SDL.My.Resources.save + Me.ToolStripButton1.Image = Global.SDL.My.Resources.Resources.save Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton1.Name = "ToolStripButton1" Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) @@ -823,6 +920,39 @@ Partial Class frmAddArtikelATLAS Me.Label5.TextAlign = System.Drawing.ContentAlignment.TopCenter Me.Label5.Visible = False ' + 'txtUrsprungsland + ' + Me.txtUrsprungsland._DateTimeOnly = False + Me.txtUrsprungsland._numbersOnly = False + Me.txtUrsprungsland._numbersOnlyKommastellen = "" + Me.txtUrsprungsland._numbersOnlyTrennzeichen = False + Me.txtUrsprungsland._Prozent = False + Me.txtUrsprungsland._ShortDateNew = False + Me.txtUrsprungsland._ShortDateOnly = False + Me.txtUrsprungsland._TimeOnly = False + Me.txtUrsprungsland._TimeOnly_Seconds = False + Me.txtUrsprungsland._value = Nothing + Me.txtUrsprungsland._Waehrung = False + Me.txtUrsprungsland._WaehrungZeichen = False + Me.txtUrsprungsland.Location = New System.Drawing.Point(97, 133) + Me.txtUrsprungsland.MaxLength = 2 + Me.txtUrsprungsland.MaxLineLength = -1 + Me.txtUrsprungsland.MaxLines_Warning = "" + Me.txtUrsprungsland.MaxLines_Warning_Label = Nothing + Me.txtUrsprungsland.Name = "txtUrsprungsland" + Me.txtUrsprungsland.Size = New System.Drawing.Size(110, 20) + Me.txtUrsprungsland.TabIndex = 4 + ' + 'Label20 + ' + Me.Label20.AutoSize = True + Me.Label20.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label20.Location = New System.Drawing.Point(8, 136) + Me.Label20.Name = "Label20" + Me.Label20.Size = New System.Drawing.Size(78, 13) + Me.Label20.TabIndex = 394 + Me.Label20.Text = "Ursprungsland:" + ' 'frmAddArtikelATLAS ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -916,4 +1046,6 @@ Partial Class frmAddArtikelATLAS Friend WithEvents ToolStripLabel1 As System.Windows.Forms.ToolStripLabel Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents txtUrsprungsland As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label20 As Label End Class diff --git a/SDL/zoll/frmAddArtikelATLAS.resx b/SDL/zoll/frmAddArtikelATLAS.resx index c9074693..37867044 100644 --- a/SDL/zoll/frmAddArtikelATLAS.resx +++ b/SDL/zoll/frmAddArtikelATLAS.resx @@ -124,65 +124,65 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC - pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ - Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ - /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA - zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ - IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E - rkJggg== + wgAADsIBFShKgAAAAVdJREFUOE/Nz0tLAmEUBmB3kWRoCUVEISFUJGb1OywiKrDsIpZdkJAkDUvDQkij + UKSbVIvatKhNi9oERRAGEQXhjJdp7Hd83/eGs2jhLGQ20QtndTgP71Gp/m0KZ1XInlTjM6XG+4EG5fuK + yaTUIN8bIMUQ0gmtcuBtX/MLPMT0yoHnuA6kuA4iruI20lAZ+DiswWuyFum4Dk+7dbiP6kHEFVDBg+tQ + My4DLbjwG3DqbcORxygHXxJakGIQRFwDEf0gwjKI4AYtzIHmHaA5Oxg/CsYPIb7YIQced+qluvTLCyIs + gRYWQPNO0NwkWNYGxg+DcYNgGSu2Z0xy4C7SiJtwE66kuq049xlAs2Ng/AiS7nbszXci6jIh4jQjPGWR + A+U59hiluowbQMzVVfmgPKU/GdcPxlmx5TArB6KzJunf0gTtPcqBzeluhCYsCIz3wm/rUw78WX4AJCPY + nlwVm9EAAAAASUVORK5CYII= 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 - oAc0QjgAAAAASUVORK5CYII= + wgAADsIBFShKgAAAAKRJREFUOE9jYBh0oHDW8//oYiSB3JnP/id03yPfkIwpT//P2//7f0LXHfIMSeh5 + 8n/2vl//O7f+/e9Wepl0QyK7Hv2fsu3X/5Klf/8nTP/73yb3LGmGBDY//N+69j1Ys3HJl//S0df+G0cu + I94Qj6r7/0vmvoNrVnTpIV4zCNiX3v0f2PKMPM0gYJF3579NwRXyNIOAYdZt8jWDgE7aDfI1D00AAKB+ + X6Bjq5qXAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// - h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B - twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA - kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG - WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 - 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + wgAADsIBFShKgAAAAStJREFUOE9jYBhUoHDW8//oYjAAkmta8Px/5sTHONUw5M589j+h+x5WBSC5VUfe + /w9vf4BVHgwypjz9P2//7/8JXXcwFIHkFu778D+44RqGHBwk9Dz5P3vfr/+dW//+dyu9jKIQJDdty/v/ + /tUXcBsQ2fXo/5Rtv/6XLP37P2H63/82uWfhikFyvas//PcqPYHbgMDmh/9b174HazYu+fJfOvraf+PI + ZWANILm6+e/+u+QfwG2AR9X9/yVz38E1K7r0wBWD5PKnvflvn7EdtwH2pXf/B7Y8w9AMk8ue/Pq/RcJ6 + 3AZY5N35b1NwBUMzTC61/zXcS1iBYdZtrJpBACQX1vLyv27wPKzyYKCTdgOnJEjOr/rhfw3faTjV4AVO + uVf+q3hMAGN0uYEFAL7Rv7NmXVYYAAAAAElFTkSuQmCC diff --git a/SDL/zoll/frmAddArtikelATLAS.vb b/SDL/zoll/frmAddArtikelATLAS.vb index 07ab59a4..ba1eac75 100644 --- a/SDL/zoll/frmAddArtikelATLAS.vb +++ b/SDL/zoll/frmAddArtikelATLAS.vb @@ -138,8 +138,10 @@ Public Class frmAddArtikelATLAS lblStatus.DataBindings.Clear() lblStatus.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_Status", True, DataSourceUpdateMode.OnPropertyChanged, "")) - - + txtUrsprungsland.DataBindings.Clear() + txtUrsprungsland.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_Ursprungsland", True, DataSourceUpdateMode.OnPropertyChanged, "")) + + Try binding.bindingSource.Position = binding.bindingSource.Find("zollArt_id", cursorAtID) Catch ex As Exception @@ -233,6 +235,7 @@ Public Class frmAddArtikelATLAS artikel.Artikelnummer = txtArtikelNr.Text artikel.Dynamische_Ergänzung_1 = txtMerkmal1.Text artikel.Dynamische_Ergänzung_2 = txtMerkmal2.Text + artikel.Ursprungsland = txtUrsprungsland.Text artikel.Kurzbezeichnung = txtKurztext.Text diff --git a/SDL/zoll/usrCntlZollArtikel.Designer.vb b/SDL/zoll/usrCntlZollArtikel.Designer.vb index 26873ac6..6d28c8a0 100644 --- a/SDL/zoll/usrCntlZollArtikel.Designer.vb +++ b/SDL/zoll/usrCntlZollArtikel.Designer.vb @@ -23,8 +23,8 @@ Partial Class usrCntlZollArtikel _ Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() - Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() Me.pnlFilter = New System.Windows.Forms.Panel() Me.dgvZollArtikel = New System.Windows.Forms.DataGridView() Me.cntxtRightClick = New System.Windows.Forms.ContextMenuStrip(Me.components) @@ -33,6 +33,8 @@ Partial Class usrCntlZollArtikel Me.BeschreibungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Label1 = New System.Windows.Forms.Label() Me.Panel1 = New System.Windows.Forms.Panel() + Me.Button3 = New System.Windows.Forms.Button() + Me.btnDelAll = New System.Windows.Forms.Button() Me.btnRefresh = New VERAG_PROG_ALLGEMEIN.FlatButton() Me.lblTestsystem = New System.Windows.Forms.Label() Me.btnExcel = New System.Windows.Forms.Button() @@ -55,7 +57,6 @@ Partial Class usrCntlZollArtikel Me.btnTarifnummerKopieren = New System.Windows.Forms.Button() Me.cntxtVermerk = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.btnDelAll = New System.Windows.Forms.Button() CType(Me.dgvZollArtikel, System.ComponentModel.ISupportInitialize).BeginInit() Me.cntxtRightClick.SuspendLayout() Me.Panel1.SuspendLayout() @@ -70,7 +71,7 @@ Partial Class usrCntlZollArtikel Me.pnlFilter.BackColor = System.Drawing.Color.White Me.pnlFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.pnlFilter.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlFilter.Location = New System.Drawing.Point(0, 34) + Me.pnlFilter.Location = New System.Drawing.Point(0, 55) Me.pnlFilter.Name = "pnlFilter" Me.pnlFilter.Size = New System.Drawing.Size(1278, 28) Me.pnlFilter.TabIndex = 11 @@ -80,16 +81,16 @@ Partial Class usrCntlZollArtikel Me.dgvZollArtikel.AllowUserToAddRows = False Me.dgvZollArtikel.AllowUserToDeleteRows = False Me.dgvZollArtikel.AllowUserToResizeRows = False - DataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) - Me.dgvZollArtikel.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle3 + DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.dgvZollArtikel.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 Me.dgvZollArtikel.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.dgvZollArtikel.ContextMenuStrip = Me.cntxtRightClick Me.dgvZollArtikel.Dock = System.Windows.Forms.DockStyle.Fill - Me.dgvZollArtikel.Location = New System.Drawing.Point(0, 62) + Me.dgvZollArtikel.Location = New System.Drawing.Point(0, 83) Me.dgvZollArtikel.MultiSelect = False Me.dgvZollArtikel.Name = "dgvZollArtikel" Me.dgvZollArtikel.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvZollArtikel.Size = New System.Drawing.Size(1278, 482) + Me.dgvZollArtikel.Size = New System.Drawing.Size(1278, 461) Me.dgvZollArtikel.TabIndex = 14 ' 'cntxtRightClick @@ -122,7 +123,7 @@ Partial Class usrCntlZollArtikel Me.Label1.AutoSize = True Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Label1.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) - Me.Label1.Location = New System.Drawing.Point(3, 6) + Me.Label1.Location = New System.Drawing.Point(3, 13) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(94, 20) Me.Label1.TabIndex = 1 @@ -131,6 +132,7 @@ Partial Class usrCntlZollArtikel 'Panel1 ' Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.Controls.Add(Me.Button3) Me.Panel1.Controls.Add(Me.btnDelAll) Me.Panel1.Controls.Add(Me.btnRefresh) Me.Panel1.Controls.Add(Me.lblTestsystem) @@ -142,9 +144,39 @@ Partial Class usrCntlZollArtikel Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top Me.Panel1.Location = New System.Drawing.Point(0, 0) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(1278, 34) + Me.Panel1.Size = New System.Drawing.Size(1278, 55) Me.Panel1.TabIndex = 13 ' + 'Button3 + ' + Me.Button3.Enabled = False + Me.Button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button3.ForeColor = System.Drawing.Color.Black + Me.Button3.Image = Global.SDL.My.Resources.Resources.transfer + Me.Button3.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button3.Location = New System.Drawing.Point(898, 3) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(114, 49) + Me.Button3.TabIndex = 21 + Me.Button3.Text = "Alle Artikal an" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "DHF/Zolaris" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & " übertragen" + Me.Button3.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.Button3.UseVisualStyleBackColor = True + ' + 'btnDelAll + ' + Me.btnDelAll.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) + Me.btnDelAll.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnDelAll.ForeColor = System.Drawing.Color.Black + Me.btnDelAll.Image = Global.SDL.My.Resources.Resources.del + Me.btnDelAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnDelAll.Location = New System.Drawing.Point(740, 11) + Me.btnDelAll.Name = "btnDelAll" + Me.btnDelAll.Size = New System.Drawing.Size(126, 27) + Me.btnDelAll.TabIndex = 24 + Me.btnDelAll.Text = "Alle Löschen" + Me.btnDelAll.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnDelAll.UseVisualStyleBackColor = True + ' 'btnRefresh ' Me.btnRefresh.allowBorder = False @@ -153,7 +185,7 @@ Partial Class usrCntlZollArtikel Me.btnRefresh.FlatAppearance.BorderSize = 0 Me.btnRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnRefresh.ForeColor = System.Drawing.Color.Black - Me.btnRefresh.Location = New System.Drawing.Point(114, 3) + Me.btnRefresh.Location = New System.Drawing.Point(114, 10) Me.btnRefresh.Name = "btnRefresh" Me.btnRefresh.Size = New System.Drawing.Size(52, 27) Me.btnRefresh.TabIndex = 23 @@ -180,7 +212,7 @@ Partial Class usrCntlZollArtikel Me.btnExcel.ForeColor = System.Drawing.Color.Black Me.btnExcel.Image = Global.SDL.My.Resources.Resources.Excel_logo Me.btnExcel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnExcel.Location = New System.Drawing.Point(576, 3) + Me.btnExcel.Location = New System.Drawing.Point(576, 10) Me.btnExcel.Name = "btnExcel" Me.btnExcel.Size = New System.Drawing.Size(103, 27) Me.btnExcel.TabIndex = 21 @@ -219,7 +251,7 @@ Partial Class usrCntlZollArtikel Me.btnEdit.ForeColor = System.Drawing.Color.Black Me.btnEdit.Image = Global.SDL.My.Resources.Resources.stift Me.btnEdit.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnEdit.Location = New System.Drawing.Point(314, 3) + Me.btnEdit.Location = New System.Drawing.Point(314, 10) Me.btnEdit.Name = "btnEdit" Me.btnEdit.Size = New System.Drawing.Size(117, 27) Me.btnEdit.TabIndex = 19 @@ -234,7 +266,7 @@ Partial Class usrCntlZollArtikel Me.btnNew.ForeColor = System.Drawing.Color.Black Me.btnNew.Image = Global.SDL.My.Resources.Resources.plus Me.btnNew.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnNew.Location = New System.Drawing.Point(191, 3) + Me.btnNew.Location = New System.Drawing.Point(191, 10) Me.btnNew.Name = "btnNew" Me.btnNew.Size = New System.Drawing.Size(117, 27) Me.btnNew.TabIndex = 18 @@ -249,7 +281,7 @@ Partial Class usrCntlZollArtikel Me.btnDel.ForeColor = System.Drawing.Color.Black Me.btnDel.Image = Global.SDL.My.Resources.Resources.del Me.btnDel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnDel.Location = New System.Drawing.Point(437, 3) + Me.btnDel.Location = New System.Drawing.Point(437, 10) Me.btnDel.Name = "btnDel" Me.btnDel.Size = New System.Drawing.Size(117, 27) Me.btnDel.TabIndex = 17 @@ -286,14 +318,14 @@ Partial Class usrCntlZollArtikel Me.dgvKdVermerke.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells Me.dgvKdVermerke.BackgroundColor = System.Drawing.Color.White Me.dgvKdVermerke.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - DataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft - DataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window - DataGridViewCellStyle1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - DataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText - DataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight - DataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText - DataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] - Me.dgvKdVermerke.DefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window + DataGridViewCellStyle2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + DataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgvKdVermerke.DefaultCellStyle = DataGridViewCellStyle2 Me.dgvKdVermerke.Location = New System.Drawing.Point(156, 3) Me.dgvKdVermerke.Name = "dgvKdVermerke" Me.dgvKdVermerke.RowHeadersVisible = False @@ -404,21 +436,6 @@ Partial Class usrCntlZollArtikel Me.ToolStripMenuItem1.Size = New System.Drawing.Size(118, 22) Me.ToolStripMenuItem1.Text = "Löschen" ' - 'btnDelAll - ' - Me.btnDelAll.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) - Me.btnDelAll.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnDelAll.ForeColor = System.Drawing.Color.Black - Me.btnDelAll.Image = Global.SDL.My.Resources.Resources.del - Me.btnDelAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnDelAll.Location = New System.Drawing.Point(740, 4) - Me.btnDelAll.Name = "btnDelAll" - Me.btnDelAll.Size = New System.Drawing.Size(126, 27) - Me.btnDelAll.TabIndex = 24 - Me.btnDelAll.Text = "Alle Löschen" - Me.btnDelAll.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnDelAll.UseVisualStyleBackColor = True - ' 'usrCntlZollArtikel ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -477,4 +494,5 @@ Partial Class usrCntlZollArtikel Friend WithEvents ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem Friend WithEvents TabelleInExcelÖffnenToolStripMenuItem As ToolStripMenuItem Friend WithEvents btnDelAll As Button + Friend WithEvents Button3 As Button End Class diff --git a/SDL/zoll/usrCntlZollArtikel.vb b/SDL/zoll/usrCntlZollArtikel.vb index 9f2c52ee..ebf5bc32 100644 --- a/SDL/zoll/usrCntlZollArtikel.vb +++ b/SDL/zoll/usrCntlZollArtikel.vb @@ -1,5 +1,6 @@ Imports System.Data.SqlClient Imports Microsoft.Office.Interop +Imports VERAG_PROG_ALLGEMEIN Public Class usrCntlZollArtikel @@ -34,6 +35,8 @@ Public Class usrCntlZollArtikel btnExcel.Enabled = True ' btnAtlas.Visible = True editAllowed = True + Button3.Visible = True + Button3.Enabled = True Else btnNew.Visible = False btnEdit.Visible = False @@ -64,7 +67,7 @@ Public Class usrCntlZollArtikel top = " TOP 200 " End If - newBinding("SELECT " & top & " zollArt_id, KundenNr, zollArt_Status, zollArt_Artikelnummer , zollArt_Warencodenummer, zollArt_Kennzeichen_Gueltig, zollArt_Kurzbezeichnung, Erfassungsdatum, Aenderungsdatum, Sachbearbeiter,zollArt_Warenbeschreibung FROM tblZollArtikel WHERE 1=1 " & where) + newBinding("SELECT " & top & " zollArt_id, KundenNr, zollArt_Status, zollArt_Artikelnummer , zollArt_Warencodenummer, zollArt_Kennzeichen_Gueltig, zollArt_Kurzbezeichnung, zollArt_Ursprungsland, Erfassungsdatum, Aenderungsdatum, Sachbearbeiter,zollArt_Warenbeschreibung FROM tblZollArtikel WHERE 1=1 " & where) End Sub @@ -595,7 +598,8 @@ Public Class usrCntlZollArtikel 'Laden des Bereiches aus dem Excel: Dim myRange As Excel.Range - myRange = Blatt.Range("B" & startRows & ":G" & endRows & "") + 'myRange = Blatt.Range("B" & startRows & ":G" & endRows & "") + myRange = Blatt.Range("B" & startRows & ":H" & endRows & "") Dim myArray As Object(,) '<-- declared as 2D Array myArray = myRange.Value 'store the content of each cell 'myArray(i_soll2 - startRows + 1, 4) @@ -615,6 +619,7 @@ Public Class usrCntlZollArtikel If myArray(i, 4) Is Nothing Or myArray(i, 4).ToString() = "" Or myArray(i, 4).ToString().Replace(" ", "").Replace(".", "").Length > 11 Or Not IsNumeric(myArray(i, 4).ToString().Replace(" ", "").Replace(".", "")) Then c = True : fehler(i, 4, myArray(i, 4).ToString()) If myArray(i, 5) Is Nothing Or myArray(i, 5).ToString() = "" Or myArray(i, 5).ToString().Length > 60 Then c = True : fehler(i, 5, myArray(i, 5).ToString()) If myArray(i, 6) Is Nothing Or myArray(i, 6).ToString() = "" Or myArray(i, 6).ToString().Length > 240 Then c = True : fehler(i, 6, myArray(i, 6).ToString()) + If myArray(i, 7) IsNot Nothing AndAlso myArray(i, 7).ToString().Length > 2 Then c = True : fehler(i, 7, myArray(i, 7).ToString()) If c Then Me.Cursor = Cursors.Default @@ -638,6 +643,8 @@ Public Class usrCntlZollArtikel a.Warencodenummer = myArray(i, 4).ToString.Replace(" ", "").Replace(".", "") a.Kurzbezeichnung = myArray(i, 5).ToString a.Warenbeschreibung = myArray(i, 6).ToString + + If Not myArray(i, 7) Is Nothing Then a.Ursprungsland = myArray(i, 7).ToString a.Verarbeitungskennzeichen = "0" a.Kundennummer = kdnrTmp @@ -849,4 +856,105 @@ Public Class usrCntlZollArtikel End If End If End Sub + + Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click + '' Dim ii As List(Of Integer) = getZollArtIDs() + If dgvZollArtikel.Rows.Count = 0 Then Exit Sub + If vbYes = MsgBox("Möchten Sie wirklich " & dgvZollArtikel.Rows.Count & " Zeilen einarbeiten?" & vbNewLine & "(Alte Einträge werden gelöscht)", vbYesNoCancel) Then + Try + Dim kdNrDHF = InputBox("Bitte geben Sie die Kundennummer ein, für die die Artikel eingearbeitet werden sollen:", "Kundennummer eingeben", kdnr) + If kdNrDHF = "" Then + MsgBox("Kundennummer ungültig!") : Exit Sub + End If + + + If DHF_Artikel.Delete_KD(kdNrDHF) Then + + Dim LizenzNr = "S01122" + 'zollArt_id, KundenNr, zollArt_Status, zollArt_Artikelnummer , zollArt_Warencodenummer, zollArt_Kennzeichen_Gueltig, zollArt_Kurzbezeichnung, Erfassungsdatum, Aenderungsdatum, Sachbearbeiter,zollArt_Warenbeschreibung + + Dim ZOLL_ART_LIST = cZollArtikel.GetListByKundenNr(kdnr) + + Dim ErrorsLog = "" + + For Each ZOLL_ARTIKEL In ZOLL_ART_LIST + ' If ZOLL_ARTIKEL.zollArt_Kennzeichen_Gueltig Is Nothing OrElse ZOLL_ARTIKEL.zollArt_Kennzeichen_Gueltig = 1 Then + + 'Dim artikel As New DHF_Artikel With { + ' .LizenzNr = LizenzNr, + ' .FremdAdressID = kdnr, + ' .FremdKennung = "EXT", + ' .ArtikelCode = If(ZOLL_ARTIKEL.zollArt_Artikelnummer, ""), + ' .Bezeichnung = If(ZOLL_ARTIKEL.zollArt_Warenbeschreibung, ""), + ' .Eigenmasse = If(ZOLL_ARTIKEL.zollArt_Gewicht, ""),' 12.5, + ' .MengenEH = If(ZOLL_ARTIKEL.zollArt_Menge, ""),'"kg", + ' .GueltigAb = If(ZOLL_ARTIKEL.Erfassungsdatum, Date.Today), + ' .Ursprungsland = If(ZOLL_ARTIKEL.zollArt_Ursprungsland, ""),' "AT", + ' .AusfVerfCode = "1000", + ' .EinfVerfCode = "4000", + ' .IndEAH = 0 + ' } + + Dim artikel As New DHF_Artikel With { + .LizenzNr = LizenzNr, + .FremdAdressID = kdNrDHF, + .FremdKennung = "EXT", + .ArtikelCode = If(ZOLL_ARTIKEL.zollArt_Artikelnummer, ""), + .Bezeichnung = If(String.IsNullOrWhiteSpace(ZOLL_ARTIKEL.zollArt_Warenbeschreibung), "", ZOLL_ARTIKEL.zollArt_Warenbeschreibung.Substring(0, Math.Min(255, ZOLL_ARTIKEL.zollArt_Warenbeschreibung.Length))), + .Eigenmasse = Nothing,' 12.5, + .MengenEH = Nothing,'"kg", + .GueltigAb = Date.Today, + .Ursprungsland = If(ZOLL_ARTIKEL.zollArt_Ursprungsland, ""),' "AT", + .AusfVerfCode = "1000", + .EinfVerfCode = "4000", + .IndEAH = 0 + } + + Dim tarifNr = System.Text.RegularExpressions.Regex.Replace(ZOLL_ARTIKEL.zollArt_Warencodenummer, "[^\d]", "") + Dim tarif1 As New DHF_ArtikelTarif With { + .GueltigAb = Date.Today, + .TarifNr = If(String.IsNullOrWhiteSpace(tarifNr), "", tarifNr.Substring(0, Math.Min(10, tarifNr.Length))) + } + + If ZOLL_ARTIKEL.zollArt_Zusatzcode_1 IsNot Nothing AndAlso ZOLL_ARTIKEL.zollArt_Zusatzcode_1 IsNot DBNull.Value AndAlso ZOLL_ARTIKEL.zollArt_Zusatzcode_1 <> "" Then + tarif1.TarifZucodes.Add(New DHF_ArtikelTarifZucode With { + .TarifNrZusatzcode = ZOLL_ARTIKEL.zollArt_Zusatzcode_1 + }) + End If + + If ZOLL_ARTIKEL.zollArt_Zusatzcode_2 IsNot Nothing AndAlso ZOLL_ARTIKEL.zollArt_Zusatzcode_2 IsNot DBNull.Value AndAlso ZOLL_ARTIKEL.zollArt_Zusatzcode_2 <> "" Then + tarif1.TarifZucodes.Add(New DHF_ArtikelTarifZucode With { + .TarifNrZusatzcode = ZOLL_ARTIKEL.zollArt_Zusatzcode_2 + }) + End If + + + artikel.ArtikelTarife.Add(tarif1) + + + + If artikel.Save() Then + Console.WriteLine("Artikel erfolgreich gespeichert.") + Else + Console.WriteLine("Fehler beim Speichern.") + ErrorsLog &= "Fehler beim Speichern :" & If(ZOLL_ARTIKEL.zollArt_Artikelnummer, "") & " / " & If(ZOLL_ARTIKEL.zollArt_Warencodenummer, "") & vbNewLine + End If + + Next + + If ErrorsLog <> "" Then + MsgBox("Es sind Fehler beim Speichern aufgetreten: " & vbNewLine & vbNewLine & ErrorsLog, vbExclamation, "Fehler beim Speichern") + End If + + + End If + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + + End If + + End Sub End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb index f3085f51..e3ad528c 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb @@ -1,4 +1,6 @@ Imports System.Data.SqlClient +Imports System.Reflection +Imports com.sun.org.apache.xml.internal.security.transforms Imports DocumentFormat.OpenXml.Bibliography Public Class SQL @@ -545,6 +547,54 @@ Public Class SQL Return Nothing End Function + Public Function GetNewOpenConnection(conn_art) As SqlConnection + Dim conn As New SqlConnection + Select Case conn_art + Case "SDL" : conn = GetNewOpenConnectionSDL() + Case "FMZOLL" : conn = GetNewOpenConnectionFMZOLL() + Case "ADMIN" : conn = GetNewOpenConnectionADMIN() + Case "ASFINAG" : conn = GetNewOpenConnectionAsfinag() + Case "DISPO" : conn = GetNewOpenConnectionDISPO() + Case "ATLAS" : conn = GetNewOpenConnectionATLAS() + Case "ATLAS_SBG" : conn = GetNewOpenConnectionATLAS_SBG() + Case "EZOLL" : conn = GetNewOpenConnectionEZOLL() + Case "EZOLL_UNISPED" : conn = GetNewOpenConnectionEZOLL_UNISPED() + Case "AVISO" : conn = GetNewOpenConnectionAVISO() + Case "VERAG" : conn = GetNewOpenConnectionFMZOLL() + Case "FD" : conn = GetNewOpenConnectionFD() + Case "WEB" : conn = GetNewOpenConnectionWEB() + Case "FIBU", "SYSKA" : conn = GetNewOpenConnectionSYSKA() + Case "PARKZEIT" : conn = GetNewOpenConnectionPARKZEIT() + + + Case "AVISO_ATILLA" + conn.ConnectionString = "Data Source=172.16.0.98;Initial Catalog=AVISO_ATILLA;Integrated Security=false;User ID=sa;Password=BmWr501956;Pooling=true;Min Pool Size=5;Max Pool Size=200" + conn.Open() + End Select + Return conn + End Function + Public Function GetScalarValue(sql As String, conn_art As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Integer + Try + Using conn As SqlConnection = GetNewOpenConnection(conn_art) + Using cmd As New SqlCommand(sql, conn) + For Each p In params + cmd.Parameters.AddWithValue("@" & p.Scalarvariable, If(p.Value, DBNull.Value)) + Next + + Dim result = cmd.ExecuteScalar() + If result Is Nothing OrElse result Is DBNull.Value Then + Return 0 + Else + Return Convert.ToInt32(result) + End If + End Using + End Using + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler in GetScalarValue: " & ex.Message, ex.StackTrace, MethodBase.GetCurrentMethod().Name) + Return 0 + End Try + End Function + Public Function loadDgvBySql(ByVal sql As String, Optional conn_art As String = "SDL", Optional timeout As Integer = 0, Optional showerror As Boolean = True) As DataTable Try Dim myTable = New DataTable() @@ -867,10 +917,27 @@ Public Class SQL Case "PARKZEIT" : conn = GetNewOpenConnectionPARKZEIT() End Select Try + + ' MsgBox(sql) Using cmd As New SqlCommand(sql, conn) If list IsNot Nothing Then + + + + + For Each i In list + If String.IsNullOrWhiteSpace(i.Scalarvariable) Then + Throw New Exception("❌ Leerer Parametername in SQLVariable!") + End If + If i.Scalarvariable.ToLower = "errno" Then + Throw New Exception("❌ Ungültiger Parametername 'errno' – bitte umbenennen.") + End If + If Not System.Text.RegularExpressions.Regex.IsMatch(i.Scalarvariable, "^[a-zA-Z0-9_]+$") Then + Throw New Exception("❌ Ungültiger SQL-Parametername (Regex): '" & i.Scalarvariable & "'") + End If + 'MsgBox(i.Text.trim & " " & IIf(i.Value Is Nothing, DBNull.Value, i.Value)) cmd.Parameters.AddWithValue("@" & i.Scalarvariable.trim, IIf(i.Value Is Nothing, DBNull.Value, i.Value)) Next @@ -881,7 +948,13 @@ Public Class SQL Return True Catch ex As Exception ' MsgBox("ERR!") - If showErr Then VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , , , , sql) + If ex.Message.Contains("Falsche Syntax in der Nähe von '@errno'") Then + ' Spezielle Behandlung für den Fehler mit dem Parameter 'errno' + 'VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("❌ Ungültiger SQL-Parametername 'errno' – bitte umbenennen.", ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , , , , sql) + + ElseIf ex.Message.Contains("Leerer Parametername") Then + If showErr Then VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , , , , sql) + End If End Try Return False End Function diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cClasses.vb b/VERAG_PROG_ALLGEMEIN/Classes/cClasses.vb index bebff68f..21732cf8 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cClasses.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cClasses.vb @@ -61,7 +61,96 @@ Public Class MyListItem2 End Class +'Public Class SQLVariable +' Private ReadOnly TextSQLName As String +' Private ReadOnly ValueSQLVALUE As Object +' Private ReadOnly ScalarvariablenameIntern As String +' Private ReadOnly primaryParam As Boolean +' Private ReadOnly onlyForLoad As Boolean +' Private ReadOnly onlyForSave As Boolean +' ''' +' ''' Erstellt eine neue SQLVariable für Parameterübergaben an SQL-Befehle. +' ''' +' ''' Spaltenname in der Datenbank +' ''' Wert, der gespeichert oder gelesen werden soll +' ''' Parametername für SQL-Bindung (optional, sonst = Text) +' ''' Kennzeichnet Primärschlüssel für WHERE-Klausel +' ''' Wird nur beim Laden verwendet +' ''' Wird nur beim Speichern verwendet +' Public Sub New(ByVal Text As String, +' ByVal Value As Object, +' Optional Scalarvariablename As String = "", +' Optional primaryParam As Boolean = False, +' Optional onlyForLoad As Boolean = False, +' Optional onlyForSave As Boolean = False) + +' If String.IsNullOrWhiteSpace(Text) Then +' Throw New ArgumentException("❌ SQLVariable: Text darf nicht leer sein!") +' End If + +' Me.TextSQLName = Text +' Me.ValueSQLVALUE = Value +' Me.primaryParam = primaryParam +' Me.onlyForLoad = onlyForLoad +' Me.onlyForSave = onlyForSave +' Me.ScalarvariablenameIntern = If(String.IsNullOrWhiteSpace(Scalarvariablename), Text, Scalarvariablename) +' End Sub + +' ''' +' ''' Name der SQL-Spalte +' ''' +' Public ReadOnly Property Text() As String +' Get +' Return TextSQLName +' End Get +' End Property + +' ''' +' ''' Wert der SQL-Spalte +' ''' +' Public ReadOnly Property Value() As Object +' Get +' Return ValueSQLVALUE +' End Get +' End Property + +' ''' +' ''' Parametername für die SQL-Zuweisung (z. B. @Bezeichnung) +' ''' +' Public ReadOnly Property Scalarvariable() As String +' Get +' Return ScalarvariablenameIntern +' End Get +' End Property + +' ''' +' ''' True, wenn es sich um einen Primärschlüssel handelt +' ''' +' Public ReadOnly Property isPrimaryParam() As Boolean +' Get +' Return primaryParam +' End Get +' End Property + +' ''' +' ''' True, wenn nur für Lade-Operationen verwenden +' ''' +' Public ReadOnly Property isOnlyForLoad() As Boolean +' Get +' Return onlyForLoad +' End Get +' End Property + +' ''' +' ''' True, wenn nur für Speicher-Operationen verwenden +' ''' +' Public ReadOnly Property isOnlyForSave() As Boolean +' Get +' Return onlyForSave +' End Get +' End Property +'End Class Public Class SQLVariable Private TextSQLName As String diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb b/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb index be2ad9e1..a591ae56 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb @@ -24,6 +24,7 @@ Public Class cZollArtikel Property zollArt_Besondere_Maßeinheit_Qualifikator As Object = Nothing Property zollArt_Gewicht As Object = Nothing Property zollArt_Menge As Object = Nothing + Property zollArt_Ursprungsland As Object = Nothing Property Erfassungsdatum As Object = Nothing Property Aenderungsdatum As Object = Nothing Property Sachbearbeiter As Object = Nothing @@ -67,6 +68,7 @@ Public Class cZollArtikel list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Besondere_Maßeinheit_Qualifikator", zollArt_Besondere_Maßeinheit_Qualifikator)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Gewicht", zollArt_Gewicht)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Menge", zollArt_Menge)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Ursprungsland", zollArt_Ursprungsland)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Erfassungsdatum", Erfassungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Aenderungsdatum", Aenderungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter)) @@ -81,7 +83,7 @@ Public Class cZollArtikel Public Function SAVE(Optional errHinweis = "") As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblZollArtikel WHERE zollArt_id=@zollArt_id) " & + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblZollArtikel WHERE zollArt_id=@zollArt_id) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & @@ -170,4 +172,32 @@ Public Class cZollArtikel Dim sqlstr = " DELETE FROM tblZollArtikel WHERE zollArt_id=" & id Return SQL.doSQL(sqlstr, "FMZOLL") End Function + + Public Shared Function GetListByKundenNr(kdnr As Integer) As List(Of cZollArtikel) + Dim result As New List(Of cZollArtikel) + Dim SQL As New SQL + + Try + Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblZollArtikel WHERE KundenNr = @kdnr", conn) + cmd.Parameters.AddWithValue("@kdnr", kdnr) + Using dr = cmd.ExecuteReader() + While dr.Read() + Dim item As New cZollArtikel() + For Each prop In GetType(cZollArtikel).GetProperties() + prop.SetValue(item, dr(prop.Name)) + Next + item.hasEntry = True + result.Add(item) + End While + End Using + End Using + End Using + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & MethodBase.GetCurrentMethod.Name & "'" & vbNewLine & + ex.Message & vbNewLine & ex.StackTrace) + End Try + + Return result + End Function End Class diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/DHF/cDHF_Artikel.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/DHF/cDHF_Artikel.vb new file mode 100644 index 00000000..b39213da --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/DHF/cDHF_Artikel.vb @@ -0,0 +1,299 @@ +Imports System.Reflection +Imports System.Data.SqlClient + +' ======================== +' 📦 Hauptklasse: DHF_Artikel +' ======================== +Public Class DHF_Artikel + Public LizenzNr As String = "S01122" + Public FremdAdressID As String + Public FremdKennung As String = "EXT" + Public ArtikelCode As String + Public AdressID As Integer? + Public Bezeichnung As String + Public Eigenmasse As Double? + Public MengenEH As String + Public GueltigAb As Date? + Public Ursprungsland As String + Public AusfVerfCode As String + Public AusfVerfZusatzcode As String + Public EinfVerfCode As String + Public EinfVerfZusatzcode As String + Public IndEAH As Byte? + Public GeaendertVon As Integer = 1 + Public GeaendertAm As Date = Now + + Public ArtikelTarife As New List(Of DHF_ArtikelTarif) + Private db As New DHF_DBHelper + + Public Function Save() As Boolean + Dim result = db.Save("imArtikel", GetParameterList()) + For Each tarif In ArtikelTarife + tarif.LizenzNr = LizenzNr + tarif.FremdAdressID = FremdAdressID + tarif.FremdKennung = FremdKennung + tarif.ArtikelCode = ArtikelCode + tarif.Save() + Next + Return result + End Function + + Public Function Delete() As Boolean + For Each tarif In ArtikelTarife + tarif.Delete() + Next + Return db.Delete("imArtikel", GetParameterList()) + End Function + + Public Shared Function Delete_KD(KdNr As String) As Boolean + Dim db As New DHF_DBHelper + db.DeleteByFremdAdressID("imArtikelTarifZucodes", KdNr) + db.DeleteByFremdAdressID("imArtikelTarif", KdNr) + Return db.DeleteByFremdAdressID("imArtikel", KdNr) + End Function + + Private Function GetParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Return New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From { + New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdAdressID", FremdAdressID, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdKennung", FremdKennung, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("ArtikelCode", ArtikelCode, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("AdressID", AdressID), + New VERAG_PROG_ALLGEMEIN.SQLVariable("Bezeichnung", Bezeichnung), + New VERAG_PROG_ALLGEMEIN.SQLVariable("Eigenmasse", Eigenmasse), + New VERAG_PROG_ALLGEMEIN.SQLVariable("MengenEH", MengenEH), + New VERAG_PROG_ALLGEMEIN.SQLVariable("GueltigAb", GueltigAb), + New VERAG_PROG_ALLGEMEIN.SQLVariable("Ursprungsland", Ursprungsland), + New VERAG_PROG_ALLGEMEIN.SQLVariable("AusfVerfCode", AusfVerfCode), + New VERAG_PROG_ALLGEMEIN.SQLVariable("AusfVerfZusatzcode", AusfVerfZusatzcode), + New VERAG_PROG_ALLGEMEIN.SQLVariable("EinfVerfCode", EinfVerfCode), + New VERAG_PROG_ALLGEMEIN.SQLVariable("EinfVerfZusatzcode", EinfVerfZusatzcode), + New VERAG_PROG_ALLGEMEIN.SQLVariable("IndEAH", IndEAH), + New VERAG_PROG_ALLGEMEIN.SQLVariable("GeaendertVon", GeaendertVon), + New VERAG_PROG_ALLGEMEIN.SQLVariable("GeaendertAm", GeaendertAm) + } + End Function +End Class + +' ======================== +' 💶 Unterklasse: DHF_ArtikelTarif +' ======================== +Public Class DHF_ArtikelTarif + Public LizenzNr As String + Public FremdAdressID As String + Public FremdKennung As String + Public ArtikelCode As String + Public GueltigAb As Date? + Public TarifNr As String + + Public TarifZucodes As New List(Of DHF_ArtikelTarifZucode) + Private db As New DHF_DBHelper + + Public Function Save() As Boolean + Dim result = db.Save("imArtikelTarif", GetParameterList()) + For Each zuc In TarifZucodes + zuc.LizenzNr = LizenzNr + zuc.FremdAdressID = FremdAdressID + zuc.FremdKennung = FremdKennung + zuc.ArtikelCode = ArtikelCode + zuc.GueltigAb = GueltigAb + zuc.Save() + Next + Return result + End Function + + Public Function Delete() As Boolean + For Each zuc In TarifZucodes + zuc.Delete() + Next + Return db.Delete("imArtikelTarif", GetParameterList()) + End Function + + Private Function GetParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Return New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From { + New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdAdressID", FremdAdressID, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdKennung", FremdKennung, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("ArtikelCode", ArtikelCode, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("GueltigAb", GueltigAb, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("TarifNr", TarifNr) + } + End Function +End Class + +' ======================== +' 🧩 Unterklasse: DHF_ArtikelTarifZucode +' ======================== +Public Class DHF_ArtikelTarifZucode + Public LizenzNr As String + Public FremdAdressID As String + Public FremdKennung As String + Public ArtikelCode As String + Public GueltigAb As Date? + Public TarifNrZusatzcode As String + + Private db As New DHF_DBHelper + + + Public Function Save() As Boolean + Return db.Save("imArtikelTarifZucodes", GetParameterList()) + End Function + + Public Function Delete() As Boolean + Return db.Delete("imArtikelTarifZucodes", GetParameterList()) + End Function + + Private Function GetParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Return New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From { + New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdAdressID", FremdAdressID, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdKennung", FremdKennung, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("ArtikelCode", ArtikelCode, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("GueltigAb", GueltigAb, , True), + New VERAG_PROG_ALLGEMEIN.SQLVariable("TarifNrZusatzcode", TarifNrZusatzcode) + } + End Function +End Class + + + + +' ======================== +' 🧰 Datenbank-Hilfsklasse +' ======================== +Public Class DHF_DBHelper + Private SQL As New SQL + + Public Function Save(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean + Dim whereClause = GetPrimaryKeyWhere(params) + Dim existsSQL = "SELECT COUNT(*) FROM [" & tableName & "] WHERE " & whereClause + + For Each p In params + If String.IsNullOrWhiteSpace(p.Scalarvariable) OrElse String.IsNullOrWhiteSpace(p.Text) Then + Throw New Exception("❌ Ungültiger Parameter in SQLVariable! Text='" & p.Text & "', Scalarvariable='" & p.Scalarvariable & "'") + End If + Next + + ' Prüfen, ob Eintrag existiert + Dim count = SQL.GetScalarValue(existsSQL, "EZOLL", params) + Dim sqlCmd As String + + If count > 0 Then + sqlCmd = GetUpdateCmd(tableName, params) + Else + sqlCmd = GetInsertCmd(tableName, params) + End If + + Return SQL.doSQLVarList(sqlCmd, "EZOLL", , params) + End Function + + Public Function Delete(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean + Dim whereClause = GetPrimaryKeyWhere(params) + Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE " & whereClause + Return SQL.doSQLVarList(sqlstr, "EZOLL", , params) + End Function + + Public Function DeleteByFremdAdressID(tableName As String, fremdAdressID As String) As Boolean + Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE [FremdAdressID]=@FID" + Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From { + New VERAG_PROG_ALLGEMEIN.SQLVariable("FID", fremdAdressID) + } + Return SQL.doSQLVarList(sqlstr, "EZOLL", , list) + End Function + + Private Function GetPrimaryKeyWhere(params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String + Return String.Join(" AND ", params.Where(Function(p) p.isPrimaryParam).Select(Function(p) "[" & p.Text & "]=@" & p.Scalarvariable)) + End Function + + Private Function GetUpdateCmd(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String + ' Primärschlüssel-Felder NICHT in SET verwenden + Dim setCmd = String.Join(",", + params.Where(Function(p) p.isPrimaryParam <> True). + Select(Function(p) "[" & p.Text & "]=@" & p.Scalarvariable)) + + Return "UPDATE [" & tableName & "] SET " & setCmd & " WHERE " & GetPrimaryKeyWhere(params) + End Function + + Private Function GetInsertCmd(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String + Dim fields = String.Join(",", params.Select(Function(p) "[" & p.Text & "]")) + Dim values = String.Join(",", params.Select(Function(p) "@" & p.Scalarvariable)) + Return "INSERT INTO [" & tableName & "] (" & fields & ") VALUES (" & values & ")" + End Function +End Class + +Public Class DHF_ArtikelBeispiel + + Public Shared Sub Beispiel_TestSave() + + + Dim KdNr = "123456" + + DHF_Artikel.Delete_KD(KdNr) + + MsgBox("del") + + Dim artikel As New DHF_Artikel With { + .LizenzNr = "S01122", + .FremdAdressID = KdNr, + .FremdKennung = "EXT", + .ArtikelCode = "ART1001", + .Bezeichnung = "Testartikel223", + .Eigenmasse = 12.5, + .MengenEH = "kg", + .GueltigAb = Date.Today, + .Ursprungsland = "AT", + .AusfVerfCode = "1000", + .EinfVerfCode = "4000", + .IndEAH = 0 + } + + Dim tarif1 As New DHF_ArtikelTarif With { + .GueltigAb = Date.Today, + .TarifNr = "85011000" + } + tarif1.TarifZucodes.Add(New DHF_ArtikelTarifZucode With { + .TarifNrZusatzcode = "V001" + }) + tarif1.TarifZucodes.Add(New DHF_ArtikelTarifZucode With { + .TarifNrZusatzcode = "V002" + }) + + artikel.ArtikelTarife.Add(tarif1) + + Dim tarif2 As New DHF_ArtikelTarif With { + .GueltigAb = Date.Today.AddDays(30), + .TarifNr = "85012000" + } + + artikel.ArtikelTarife.Add(tarif2) + + If artikel.Save() Then + Console.WriteLine("Artikel erfolgreich gespeichert.") + Else + Console.WriteLine("Fehler beim Speichern.") + End If + End Sub + + Public Shared Sub Beispiel_TestDelete() + Dim artikel As New DHF_Artikel With { + .LizenzNr = "S00001", + .FremdAdressID = "K12345", + .FremdKennung = "EXT", + .ArtikelCode = "ART100" + } + + If artikel.Delete() Then + Console.WriteLine("Artikel erfolgreich gelöscht.") + Else + Console.WriteLine("Fehler beim Löschen.") + End If + End Sub + + Public Shared Sub Beispiel_DeleteAlleFuerKunde() + If DHF_Artikel.Delete_KD("K12345") Then + Console.WriteLine("Alle Artikel für Kunde gelöscht.") + Else + Console.WriteLine("Fehler beim Kundendaten-Löschen.") + End If + End Sub +End Class \ No newline at end of file diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj index a955243e..bc499f56 100644 --- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj +++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj @@ -374,6 +374,7 @@ + From 695150401456ed3785ef4f3821b0af2b01df1ec1 Mon Sep 17 00:00:00 2001 From: Andreas Luxbauer Date: Tue, 5 Aug 2025 21:40:14 +0200 Subject: [PATCH 2/2] vers --- SDL/My Project/AssemblyInfo.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 12a3c765..0361d55a 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: ' - - + +