Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024
This commit is contained in:
@@ -2185,7 +2185,10 @@ Public Class usrCntlSpeditionsBuchSuche
|
|||||||
|
|
||||||
For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows
|
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("A" & cnt).Value = cnt - 1
|
||||||
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
|
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
|
||||||
@@ -2223,7 +2226,10 @@ Public Class usrCntlSpeditionsBuchSuche
|
|||||||
rowcounter += 1
|
rowcounter += 1
|
||||||
Next
|
Next
|
||||||
Else
|
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("A" & cnt).Value = cnt - 1
|
||||||
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
|
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
|
||||||
|
|||||||
@@ -52,11 +52,13 @@ Partial Class usrCntlATLAS_EZA
|
|||||||
Me.OptionenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
Me.OptionenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.SpeichernToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
Me.SpeichernToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.LadenToolStripMenuItem = 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.DateiimportToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.DynamicAutomotiveXLSToolStripMenuItem = 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.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.EZAIDToolStripMenuItem = 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()
|
CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SplitContainer.Panel1.SuspendLayout()
|
Me.SplitContainer.Panel1.SuspendLayout()
|
||||||
Me.SplitContainer.SuspendLayout()
|
Me.SplitContainer.SuspendLayout()
|
||||||
@@ -425,19 +427,25 @@ Partial Class usrCntlATLAS_EZA
|
|||||||
'SpeichernToolStripMenuItem
|
'SpeichernToolStripMenuItem
|
||||||
'
|
'
|
||||||
Me.SpeichernToolStripMenuItem.Name = "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"
|
Me.SpeichernToolStripMenuItem.Text = "Speichern"
|
||||||
'
|
'
|
||||||
'LadenToolStripMenuItem
|
'LadenToolStripMenuItem
|
||||||
'
|
'
|
||||||
Me.LadenToolStripMenuItem.Name = "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.Text = "Laden ..."
|
||||||
Me.LadenToolStripMenuItem.Visible = False
|
Me.LadenToolStripMenuItem.Visible = False
|
||||||
'
|
'
|
||||||
|
'XMLExampleToolStripMenuItem
|
||||||
|
'
|
||||||
|
Me.XMLExampleToolStripMenuItem.Name = "XMLExampleToolStripMenuItem"
|
||||||
|
Me.XMLExampleToolStripMenuItem.Size = New System.Drawing.Size(145, 22)
|
||||||
|
Me.XMLExampleToolStripMenuItem.Text = "XML Example"
|
||||||
|
'
|
||||||
'DateiimportToolStripMenuItem
|
'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.Name = "DateiimportToolStripMenuItem"
|
||||||
Me.DateiimportToolStripMenuItem.Size = New System.Drawing.Size(87, 20)
|
Me.DateiimportToolStripMenuItem.Size = New System.Drawing.Size(87, 20)
|
||||||
Me.DateiimportToolStripMenuItem.Text = "Datei-Import"
|
Me.DateiimportToolStripMenuItem.Text = "Datei-Import"
|
||||||
@@ -448,6 +456,12 @@ Partial Class usrCntlATLAS_EZA
|
|||||||
Me.DynamicAutomotiveXLSToolStripMenuItem.Size = New System.Drawing.Size(224, 22)
|
Me.DynamicAutomotiveXLSToolStripMenuItem.Size = New System.Drawing.Size(224, 22)
|
||||||
Me.DynamicAutomotiveXLSToolStripMenuItem.Text = "Dynamic Automotive (XLSX)"
|
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
|
'ToolStripMenuItem1
|
||||||
'
|
'
|
||||||
Me.ToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.EZAIDToolStripMenuItem})
|
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.Size = New System.Drawing.Size(109, 22)
|
||||||
Me.EZAIDToolStripMenuItem.Text = "EZA ID"
|
Me.EZAIDToolStripMenuItem.Text = "EZA ID"
|
||||||
'
|
'
|
||||||
'XMLExampleToolStripMenuItem
|
'MEYLEXLSXToolStripMenuItem
|
||||||
'
|
'
|
||||||
Me.XMLExampleToolStripMenuItem.Name = "XMLExampleToolStripMenuItem"
|
Me.MEYLEXLSXToolStripMenuItem.Name = "MEYLEXLSXToolStripMenuItem"
|
||||||
Me.XMLExampleToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
|
Me.MEYLEXLSXToolStripMenuItem.Size = New System.Drawing.Size(224, 22)
|
||||||
Me.XMLExampleToolStripMenuItem.Text = "XML Example"
|
Me.MEYLEXLSXToolStripMenuItem.Text = "MEYLE (XLSX)"
|
||||||
'
|
'
|
||||||
'usrCntlATLAS_EZA
|
'usrCntlATLAS_EZA
|
||||||
'
|
'
|
||||||
@@ -524,4 +538,6 @@ Partial Class usrCntlATLAS_EZA
|
|||||||
Friend WithEvents DateiimportToolStripMenuItem As ToolStripMenuItem
|
Friend WithEvents DateiimportToolStripMenuItem As ToolStripMenuItem
|
||||||
Friend WithEvents DynamicAutomotiveXLSToolStripMenuItem As ToolStripMenuItem
|
Friend WithEvents DynamicAutomotiveXLSToolStripMenuItem As ToolStripMenuItem
|
||||||
Friend WithEvents XMLExampleToolStripMenuItem As ToolStripMenuItem
|
Friend WithEvents XMLExampleToolStripMenuItem As ToolStripMenuItem
|
||||||
|
Friend WithEvents GEZEXLSXToolStripMenuItem As ToolStripMenuItem
|
||||||
|
Friend WithEvents MEYLEXLSXToolStripMenuItem As ToolStripMenuItem
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ Imports Tamir
|
|||||||
Imports Tamir.SharpSsh
|
Imports Tamir.SharpSsh
|
||||||
Imports Microsoft.Office.Interop
|
Imports Microsoft.Office.Interop
|
||||||
Imports VERAG_PROG_ALLGEMEIN
|
Imports VERAG_PROG_ALLGEMEIN
|
||||||
|
Imports javax.xml.bind.annotation
|
||||||
|
Imports System.Globalization
|
||||||
|
|
||||||
Public Class usrCntlATLAS_EZA
|
Public Class usrCntlATLAS_EZA
|
||||||
|
|
||||||
@@ -787,6 +789,38 @@ Public Class usrCntlATLAS_EZA
|
|||||||
End Try
|
End Try
|
||||||
Return True
|
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
|
End Function
|
||||||
Private Function importExcel_DynamicAutomotive() As Boolean
|
Private Function importExcel_DynamicAutomotive() As Boolean
|
||||||
|
|
||||||
@@ -933,6 +967,486 @@ Public Class usrCntlATLAS_EZA
|
|||||||
|
|
||||||
End Function
|
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
|
Private Sub pnl_Paint_1(sender As Object, e As PaintEventArgs) Handles pnl.Paint
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@@ -963,7 +1477,7 @@ Public Class usrCntlATLAS_EZA
|
|||||||
Dim tempFilePath As String = System.IO.Path.GetTempFileName()
|
Dim tempFilePath As String = System.IO.Path.GetTempFileName()
|
||||||
|
|
||||||
' Ändere die Endung in .xml
|
' Ä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")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -975,5 +1489,13 @@ Public Class usrCntlATLAS_EZA
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
End Sub
|
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
|
End Class
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user