EZA MEYLE DY Import
This commit is contained in:
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.4.3.1")>
|
||||
<Assembly: AssemblyFileVersion("1.4.3.1")>
|
||||
<Assembly: AssemblyVersion("1.4.3.2")>
|
||||
<Assembly: AssemblyFileVersion("1.4.3.2")>
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user