diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 0361d55a..9609bff9 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/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb index ea8a756c..f875c356 100644 --- a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb +++ b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb @@ -2185,7 +2185,10 @@ Public Class usrCntlSpeditionsBuchSuche For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows - Dim ZollInProzent As Double = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.Rechnungspreis * 100 + Dim ZollInProzent As Double = 0 + If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then + ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100 + End If Blatt.Range("A" & cnt).Value = cnt - 1 Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum") @@ -2223,7 +2226,10 @@ Public Class usrCntlSpeditionsBuchSuche rowcounter += 1 Next Else - Dim ZollInProzent As Double = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.Rechnungspreis * 100 + Dim ZollInProzent As Double = 0 + If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then + ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100 + End If Blatt.Range("A" & cnt).Value = cnt - 1 Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum") diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb index 60fee715..7d2722ed 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb @@ -52,11 +52,13 @@ Partial Class usrCntlATLAS_EZA Me.OptionenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.SpeichernToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.LadenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.XMLExampleToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DateiimportToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DynamicAutomotiveXLSToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.GEZEXLSXToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() Me.EZAIDToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.XMLExampleToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MEYLEXLSXToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer.Panel1.SuspendLayout() Me.SplitContainer.SuspendLayout() @@ -425,19 +427,25 @@ Partial Class usrCntlATLAS_EZA 'SpeichernToolStripMenuItem ' Me.SpeichernToolStripMenuItem.Name = "SpeichernToolStripMenuItem" - Me.SpeichernToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.SpeichernToolStripMenuItem.Size = New System.Drawing.Size(145, 22) Me.SpeichernToolStripMenuItem.Text = "Speichern" ' 'LadenToolStripMenuItem ' Me.LadenToolStripMenuItem.Name = "LadenToolStripMenuItem" - Me.LadenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.LadenToolStripMenuItem.Size = New System.Drawing.Size(145, 22) Me.LadenToolStripMenuItem.Text = "Laden ..." Me.LadenToolStripMenuItem.Visible = False ' + 'XMLExampleToolStripMenuItem + ' + Me.XMLExampleToolStripMenuItem.Name = "XMLExampleToolStripMenuItem" + Me.XMLExampleToolStripMenuItem.Size = New System.Drawing.Size(145, 22) + Me.XMLExampleToolStripMenuItem.Text = "XML Example" + ' 'DateiimportToolStripMenuItem ' - Me.DateiimportToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DynamicAutomotiveXLSToolStripMenuItem}) + Me.DateiimportToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DynamicAutomotiveXLSToolStripMenuItem, Me.GEZEXLSXToolStripMenuItem, Me.MEYLEXLSXToolStripMenuItem}) Me.DateiimportToolStripMenuItem.Name = "DateiimportToolStripMenuItem" Me.DateiimportToolStripMenuItem.Size = New System.Drawing.Size(87, 20) Me.DateiimportToolStripMenuItem.Text = "Datei-Import" @@ -448,6 +456,12 @@ Partial Class usrCntlATLAS_EZA Me.DynamicAutomotiveXLSToolStripMenuItem.Size = New System.Drawing.Size(224, 22) Me.DynamicAutomotiveXLSToolStripMenuItem.Text = "Dynamic Automotive (XLSX)" ' + 'GEZEXLSXToolStripMenuItem + ' + Me.GEZEXLSXToolStripMenuItem.Name = "GEZEXLSXToolStripMenuItem" + Me.GEZEXLSXToolStripMenuItem.Size = New System.Drawing.Size(224, 22) + Me.GEZEXLSXToolStripMenuItem.Text = "GEZE (XLSX)" + ' 'ToolStripMenuItem1 ' Me.ToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.EZAIDToolStripMenuItem}) @@ -461,11 +475,11 @@ Partial Class usrCntlATLAS_EZA Me.EZAIDToolStripMenuItem.Size = New System.Drawing.Size(109, 22) Me.EZAIDToolStripMenuItem.Text = "EZA ID" ' - 'XMLExampleToolStripMenuItem + 'MEYLEXLSXToolStripMenuItem ' - Me.XMLExampleToolStripMenuItem.Name = "XMLExampleToolStripMenuItem" - Me.XMLExampleToolStripMenuItem.Size = New System.Drawing.Size(180, 22) - Me.XMLExampleToolStripMenuItem.Text = "XML Example" + Me.MEYLEXLSXToolStripMenuItem.Name = "MEYLEXLSXToolStripMenuItem" + Me.MEYLEXLSXToolStripMenuItem.Size = New System.Drawing.Size(224, 22) + Me.MEYLEXLSXToolStripMenuItem.Text = "MEYLE (XLSX)" ' 'usrCntlATLAS_EZA ' @@ -524,4 +538,6 @@ Partial Class usrCntlATLAS_EZA Friend WithEvents DateiimportToolStripMenuItem As ToolStripMenuItem Friend WithEvents DynamicAutomotiveXLSToolStripMenuItem As ToolStripMenuItem Friend WithEvents XMLExampleToolStripMenuItem As ToolStripMenuItem + Friend WithEvents GEZEXLSXToolStripMenuItem As ToolStripMenuItem + Friend WithEvents MEYLEXLSXToolStripMenuItem As ToolStripMenuItem End Class diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb index 062f85f3..1475f9a7 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb @@ -3,6 +3,8 @@ Imports Tamir Imports Tamir.SharpSsh Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN +Imports javax.xml.bind.annotation +Imports System.Globalization Public Class usrCntlATLAS_EZA @@ -787,6 +789,38 @@ Public Class usrCntlATLAS_EZA End Try Return True + End Function + + Private Function checkExcel_Geze(Blatt As Excel.Worksheet) As Boolean + 'Prüfung + Try + If Blatt Is Nothing Then Return False + If Blatt.Range("I1") Is Nothing Then Return False + If Blatt.Range("I1").Value.ToString <> "Codenummer" Then Return False + + Catch ex As Exception + MsgBox("Fehler bei der Prüfung!" & ex.Message) + Me.Cursor = Cursors.Default + Return False + End Try + Return True + + End Function + + Private Function checkExcel_MEYLE(Blatt As Excel.Worksheet) As Boolean + 'Prüfung + Try + If Blatt Is Nothing Then Return False + If Blatt.Range("A3") Is Nothing Then Return False + If Blatt.Range("A3").Value.ToString <> "Eingangsrechnung Lieferant:" Then Return False + + Catch ex As Exception + MsgBox("Fehler bei der Prüfung!" & ex.Message) + Me.Cursor = Cursors.Default + Return False + End Try + Return True + End Function Private Function importExcel_DynamicAutomotive() As Boolean @@ -933,6 +967,486 @@ Public Class usrCntlATLAS_EZA End Function + Private Function importExcel_Geze() As Boolean + + + Dim fd As New OpenFileDialog + fd.Filter = "Excel Dateien|*.xls;*.xlsx" + Dim result As DialogResult = fd.ShowDialog() + + If Not fd.FileName.ToLower.EndsWith(".xls") And Not fd.FileName.ToLower.EndsWith(".xlsx") Then + Me.Cursor = Cursors.Default + Return False + End If + + If result = System.Windows.Forms.DialogResult.OK Then + + + Me.Cursor = Cursors.WaitCursor + Dim exclApp As New Excel.Application 'Object 'as Application + Dim Datei As Excel.Workbook ' 'as WorkBook + Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet + + With exclApp + Try + + .CutCopyMode = False + + .DisplayAlerts = False + + + Datei = .Workbooks.Open(fd.FileName) + Blatt = Datei.Worksheets(1) + + Datei.Activate() + + Try + Blatt.ShowAllData() 'Falls Filter ausgewählt wurde + Catch ex As Exception + + End Try + + Dim startFound As Boolean = False + Dim endFound As Boolean = False + + If Not checkExcel_Geze(Blatt) Then 'VALIDIERUNG + Me.Cursor = Cursors.Default + Return False + End If + + If EZA.eza_WARENPOS.Count > 0 Then + If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then + EZA.eza_WARENPOS.Clear() 'Zurücksetzen + End If + End If + + Dim startRows As Integer = 2 + + Dim endRows As Integer = startRows + While endRows < Blatt.UsedRange.Rows.Count + If Not Blatt.Range("I" & endRows) Is Nothing AndAlso Not Blatt.Range("I" & endRows).Value Is Nothing AndAlso Not Blatt.Range("I" & endRows).Value.ToString.Trim = "" Then + endFound = True + Else + Exit While + End If + endRows += 1 + End While + ' endRows -= 1 + + If Not endFound Then + MsgBox("Keine Daten vorhanden!") + Me.Cursor = Cursors.Default + Return False + End If + + 'Laden des Bereiches aus dem Excel: + Dim myRange As Excel.Range + myRange = Blatt.Range("A" & startRows & ":I" & endRows & "") + Dim myArray As Object(,) '<-- declared as 2D Array + myArray = myRange.Value 'store the content of each cell + 'myArray(i_soll2 - startRows + 1, 4) + + + 'For i As Integer = 1 To myArray.GetLength(0) + ' For j As Integer = 1 To myArray.GetLength(1) + ' Console.Write(myArray(i, j).ToString() & vbTab) + ' Next + ' Console.WriteLine() + 'Next + + Dim cnt = 0 + + Try + For i As Integer = 1 To endRows - startRows + 1 Step 1 + If myArray(i, 1) IsNot Nothing AndAlso myArray(i, 1).ToString() <> "" Then + + + Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition + POSITION.ezaWP_WarennummerEZT = myArray(i, 9).ToString() + POSITION.ezaWP_PackstueckAnzahl = "0" 'myArray(i, 6).ToString() + POSITION.ezaWP_PackstueckArt = "PK" + POSITION.ezaWP_Artikelpreis = CDbl(myArray(i, 7).ToString()).ToString("N2") + POSITION.ezaWP_ArtikelpreisWaehrung = myArray(i, 8).ToString() + POSITION.ezaWP_Warenbezeichnung = myArray(i, 4).ToString() + 'Select Case myArray(i, 4).ToString + ' Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" + ' Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" + ' Case "SPAIN" : POSITION.ezaWP_UrsprungslandCode = "ES" + ' Case "GERMANY" : POSITION.ezaWP_UrsprungslandCode = "DE" + ' Case "CZECH REPUBLIC" : POSITION.ezaWP_UrsprungslandCode = "CZ" + ' Case "FRANCE" : POSITION.ezaWP_UrsprungslandCode = "FR" + POSITION.ezaWP_PositionsZusatz = "ArtikelNr: " & myArray(i, 1).ToString() + POSITION.ezaWP_Artikelnummer = myArray(i, 1).ToString() + 'End Select + POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = "N380", + .ezaWpUl_Bereich = "4", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = myArray(i, 2).ToString(), + .ezaWpUl_DatumAusstellung = Nothing + }) + + EZA.eza_WARENPOS.Add(POSITION) + cnt += 1 + End If + + + Next + Catch ex As Exception + MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + Me.Cursor = Cursors.Default + Return False + End Try + + + .Visible = False + + ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose + 'Excelobjekte freistellten + ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} + ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) + ' Next + Datei.Close() + + Me.FindForm.SuspendLayout() + POSITIONEN.setValues(EZA, True) + btnPositionen.PerformClick() + MsgBox(cnt & " Datensätze wurden eingelesen. ") + Me.FindForm.ResumeLayout() + + Me.Cursor = Cursors.Default + Return True + Catch ex As Exception + ' + Me.Cursor = Cursors.Default + MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + ' Return False + End Try + End With + Return True + Else + MsgBox("Keine Datei ausgewählt!") + End If + + Me.Cursor = Cursors.Default + Return False + + End Function + + Private Function importExcel_MEYLE() As Boolean + + Dim fd As New OpenFileDialog With { + .Filter = "Excel Dateien|*.xls;*.xlsx", + .Multiselect = True, + .Title = "Bitte eine oder mehrere Excel-Dateien auswählen" + } + + Dim result As DialogResult = fd.ShowDialog() + + If result <> DialogResult.OK Then + Me.Cursor = Cursors.Default + MsgBox("Keine Datei ausgewählt!") + + Return False + + Else + + Dim cnt = 0 + + + If EZA.eza_WARENPOS.Count > 0 Then + If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then + EZA.eza_WARENPOS.Clear() 'Zurücksetzen + End If + End If + + Me.Cursor = Cursors.WaitCursor + + For Each filePath As String In fd.FileNames + If Not filePath.ToLower.EndsWith(".xls") AndAlso Not filePath.ToLower.EndsWith(".xlsx") Then + ' Ungültige Datei – überspringen oder abbrechen + Continue For + End If + + + + + Dim exclApp As New Excel.Application 'Object 'as Application + Dim Datei As Excel.Workbook ' 'as WorkBook + Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet + + With exclApp + Try + + .CutCopyMode = False + .DisplayAlerts = False + + + Datei = .Workbooks.Open(fd.FileName) + Blatt = Datei.Worksheets(1) + + Datei.Activate() + + Try + Blatt.ShowAllData() 'Falls Filter ausgewählt wurde + Catch ex As Exception + + End Try + + Dim startFound As Boolean = False + Dim endFound As Boolean = False + + If Not checkExcel_MEYLE(Blatt) Then 'VALIDIERUNG + Me.Cursor = Cursors.Default + Return False + End If + + + Dim startRows As Integer = 6 + + Dim endRows As Integer = startRows + While endRows < Blatt.UsedRange.Rows.Count + If Not Blatt.Range("A" & endRows) Is Nothing AndAlso Not Blatt.Range("A" & endRows).Value Is Nothing AndAlso Not Blatt.Range("A" & endRows).Value.ToString.Trim = "" Then + endFound = True + Else + Exit While + End If + endRows += 1 + End While + endRows -= 1 + + If Not endFound Then + MsgBox("Keine Daten vorhanden!") + Me.Cursor = Cursors.Default + Return False + End If + + + ' Neue DataTable erstellen + Dim DATA As New DataTable() + + ' Spalten anhand der Anzahl im Range anlegen + Dim colCount As Integer = Blatt.Range("A1:M1").Columns.Count + For c As Integer = 1 To colCount + DATA.Columns.Add("Spalte" & c, GetType(String)) + Next + + ' Range direkt durchlaufen + For r As Integer = startRows To endRows + Dim newRow As DataRow = DATA.NewRow() + For c As Integer = 1 To colCount + Dim value = Blatt.Cells(r, c).Value + newRow(c - 1) = If(value IsNot Nothing, value.ToString(), "") + Next + DATA.Rows.Add(newRow) + Next + + ' DataTable durchlaufen und Zeilen löschen, bei denen Spalte 6 "summe" enthält + For i As Integer = DATA.Rows.Count - 1 To 0 Step -1 + Dim cellValue As String = DATA.Rows(i)(6).ToString().ToLower() ' Spalte 6 = Index 5 + If cellValue.Contains("summe") Then + DATA.Rows.RemoveAt(i) + End If + Next + + + '-------------------------------------------------------------------------------------------------------------- + + ' Spaltenüberschriften ausgeben + For Each col As DataColumn In DATA.Columns + Console.Write(col.ColumnName & vbTab) + Next + Console.WriteLine() + + ' Alle Zeilen ausgeben + For Each row As DataRow In DATA.Rows + For Each col As DataColumn In DATA.Columns + Console.Write(row(col).ToString() & vbTab) + Next + Console.WriteLine() + Next + + '-------------------------------------------------------------------------------------------------------------- + '-------------HIER WERDEN DIE Zeilen kommuliert--------------------------------------------------------- + '-------------------------------------------------------------------------------------------------------------- + + ' Neue Tabelle mit gleicher Struktur + Dim resultDATA As DataTable = DATA.Clone() + '0 = Wartentarifnummer + '6 = Wartenbeschreibung + '12 = Währung (immer gleich)? + ' Gruppieren nach den Schlüsseln Spalte 0, 6 und 12 + Dim groups = From row In DATA.AsEnumerable() + Group row By key1 = row(0), key2 = row(6), key3 = row(12) Into grp = Group + Select key1, key2, key3, grp + + ' Gruppen durchlaufen und kumulierte Zeilen erstellen + For Each g In groups + Dim newRow As DataRow = resultDATA.NewRow() + + ' Gruppierungsspalten setzen + newRow(0) = g.key1 + newRow(6) = g.key2 + newRow(12) = g.key3 + + ' Summen berechnen + newRow(7) = g.grp.Sum(Function(r) ToDoubleSafe(r(7))) + newRow(9) = g.grp.Sum(Function(r) ToDoubleSafe(r(9))) + newRow(11) = g.grp.Sum(Function(r) ToDoubleSafe(r(11))) + + ' Restliche Spalten Nothing lassen (bleibt automatisch so) + + resultDATA.Rows.Add(newRow) + Next + + ' Falls du das Ergebnis in DATA zurückschreiben willst: + DATA = resultDATA + + '-------------------------------------------------------------------------------------------------------------- + '-------------------------------------------------------------------------------------------------------------- + + ' Spaltenüberschriften ausgeben + For Each col As DataColumn In DATA.Columns + Console.Write(col.ColumnName & vbTab) + Next + Console.WriteLine() + + ' Alle Zeilen ausgeben + For Each row As DataRow In DATA.Rows + For Each col As DataColumn In DATA.Columns + Console.Write(row(col).ToString() & vbTab) + Next + Console.WriteLine() + Next + + '-------------------------------------------------------------------------------------------------------------- + + + Dim HandlesRgNr = "" + If Blatt.Range("B3") IsNot Nothing AndAlso Blatt.Range("B3").Value IsNot Nothing Then + HandlesRgNr = Blatt.Range("B3").Value.ToString().Trim() + End If + Dim HandlesRgDat = "" + If Blatt.Range("B1") IsNot Nothing AndAlso Blatt.Range("B1").Value IsNot Nothing Then + HandlesRgDat = Blatt.Range("B1").Value.ToString().Trim() + End If + + ' MsgBox("A" & startRows & ":I" & endRows & "") + + + + Try + For Each row As DataRow In DATA.Rows + ' Prüfen, ob Spalte 1 (Index 0) gefüllt ist + If row(0) IsNot Nothing AndAlso row(0).ToString().Trim() <> "" Then + + Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition + POSITION.ezaWP_WarennummerEZT = row(0).ToString() + POSITION.ezaWP_PackstueckAnzahl = "0" ' row(5).ToString() + POSITION.ezaWP_PackstueckArt = "PK" + + ' Sicher konvertieren, falls leer oder ungültig + Dim preis As Double + Double.TryParse(row(11).ToString(), preis) + POSITION.ezaWP_Artikelpreis = preis.ToString("N2") + + POSITION.ezaWP_ArtikelpreisWaehrung = row(12).ToString() + POSITION.ezaWP_Warenbezeichnung = row(6).ToString() + + Dim masse As Double + Double.TryParse(row(9).ToString(), masse) + POSITION.ezaWP_Eigenmasse = masse.ToString("N1") + + ' Ursprungsland ggf. per Select Case setzen + 'Select Case row(3).ToString() + ' Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" + ' Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" + ' ... + 'End Select + + POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = "N380", + .ezaWpUl_Bereich = "4", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = HandlesRgNr, + .ezaWpUl_DatumAusstellung = Nothing + }) + + EZA.eza_WARENPOS.Add(POSITION) + cnt += 1 + End If + Next + Catch ex As Exception + MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + Me.Cursor = Cursors.Default + Return False + End Try + + + .Visible = False + + ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose + 'Excelobjekte freistellten + ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} + ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) + ' Next + Datei.Close() + + + + + Catch ex As Exception + ' + Me.Cursor = Cursors.Default + MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + ' Return False + End Try + End With + + + + ' >>> Hier kannst du jede gültige Excel-Datei weiterverarbeiten: + Console.WriteLine("Verarbeite Datei: " & filePath) + ' z. B. Excel öffnen, Range lesen etc. + Next + + Me.FindForm.SuspendLayout() + POSITIONEN.setValues(EZA, True) + btnPositionen.PerformClick() + Me.FindForm.ResumeLayout() + + MsgBox(cnt & " Datensätze wurden eingelesen. ") + + Me.Cursor = Cursors.Default + Return True + + End If + + Me.Cursor = Cursors.Default + Return False + + End Function + + + Private Function ToDoubleSafe(o As Object) As Double + If o Is Nothing OrElse IsDBNull(o) Then Return 0 + + ' Direkte Numerik + If TypeOf o Is Double Then Return DirectCast(o, Double) + If TypeOf o Is Decimal Then Return Convert.ToDouble(o) + If TypeOf o Is Integer OrElse TypeOf o Is Int64 OrElse TypeOf o Is Int16 Then Return Convert.ToDouble(o) + + ' String-Fälle (leer, deutsch, englisch) + Dim s = o.ToString().Trim() + If s = "" Then Return 0 + + Dim v As Double + If Double.TryParse(s, NumberStyles.Any, CultureInfo.CurrentCulture, v) Then Return v + If Double.TryParse(s, NumberStyles.Any, CultureInfo.InvariantCulture, v) Then Return v + + Return 0 ' Notfalls 0 + End Function + Private Sub pnl_Paint_1(sender As Object, e As PaintEventArgs) Handles pnl.Paint End Sub @@ -951,29 +1465,37 @@ Public Class usrCntlATLAS_EZA DY_ANM.dy_BezugsNr = BezugsNr If EZA IsNot Nothing Then - 'Dim cDY As New cDakosyEZA(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB) - EZA.eza_dyaAnmID = DY_ANM.dy_Id - EZA.eza_Erstellung_SB = DY_ANM.dy_Erstellung_SB - EZA.eza_LetzteBearbeitung = Now - EZA.eza_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB - EZA.eza_firma = Me.FIRMA_DY - DAKOSY_Interface_SEND.loadInClass_VersandanmeldungEZA(EZA, Me, DY_ANM) + 'Dim cDY As New cDakosyEZA(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB) + EZA.eza_dyaAnmID = DY_ANM.dy_Id + EZA.eza_Erstellung_SB = DY_ANM.dy_Erstellung_SB + EZA.eza_LetzteBearbeitung = Now + EZA.eza_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB + EZA.eza_firma = Me.FIRMA_DY + DAKOSY_Interface_SEND.loadInClass_VersandanmeldungEZA(EZA, Me, DY_ANM) ' If Not EZA.SAVE_ALL() Then Exit Sub Dim tempFilePath As String = System.IO.Path.GetTempFileName() ' Ändere die Endung in .xml - Dim saveFile As String = System.io.Path.ChangeExtension(tempFilePath, ".xml") + Dim saveFile As String = System.IO.Path.ChangeExtension(tempFilePath, ".xml") If DAKOSY_Interface_SEND.generateVersandanmeldungEZA(EZA, saveFile, cboDakosyAction._value) Then - If saveFile <> "" Then + If saveFile <> "" Then Process.Start(saveFile) End If End If End If End Sub + + Private Sub GEZEXLSXToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GEZEXLSXToolStripMenuItem.Click + importExcel_Geze() + End Sub + + Private Sub MEYLEXLSXToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MEYLEXLSXToolStripMenuItem.Click + importExcel_MEYLE() + End Sub End Class