Hallo
Ich habe gerade etwas programmiert, bzw. bin dabei. Wenn ich mir das aber so anschaue, glaube ich nicht, dass ich den besten Ansatz gewählt habe.
Folgendes ist gegeben:
Ein DataSet mit 3 DataTables (CustomerOrder, Order und Supplier)
Die beiden Tables CustomerOrder und Order haben eine Spalte SupplierID, mit dieser wird auf den entsprechenden LIeferanten verwiesen.
Nun möchte ich beim tätigen einer neuen Bestellung (Einfügen von neuer Row in Order, mit auswählbarem Supplier), offene Kundenbestellungen dieses "Suppliers" anzeigen.
Die DataTable CustomerOrder hat folgende relevante Spalten (Date = Bestelldatum des Kunden bei mir / OrderDate = mein Bestelldatum bei der Firma)
Löse ich nun eine neue Bestellung (Order) aus, suche ich mit einer Schleife in meiner CustomerOrder nach offenen Kunenbestellungen für diese Firma.
Offen ist eine Kundenbestellung, wenn die Spalte OrderDate DBNull ist.
Diese Funktion funktioniert, aber gibt es hier nicht eine Möglichkeit der Sortierung (leer nach oben oder sowas), damit ich nicht immer die gesamte DataTable durchforsten muss?
In der Aufrufsub wird dann geprüft ob die übergebene List(of String) leer ist.
Wenn nicht, wird eine Form mit DGV angezeigt und die List(of String) an diese übergeben.
Hier splitte ich die List of wieder und stelle die Daten im Dgv dar.
Möchte ich nun eine Kundenbestellung als "bestellt" markieren, lese ich aus der List(of string) die ID, gehe mit einer Schleife jede ID in CustomerOrder durch, bis beide übereinstimmen und setzte den Wert für .OrderDate.
Das funktioniert, scheint mir aber unnötig kompliziert.
Ich habe gerade etwas programmiert, bzw. bin dabei. Wenn ich mir das aber so anschaue, glaube ich nicht, dass ich den besten Ansatz gewählt habe.
Folgendes ist gegeben:
Ein DataSet mit 3 DataTables (CustomerOrder, Order und Supplier)
Die beiden Tables CustomerOrder und Order haben eine Spalte SupplierID, mit dieser wird auf den entsprechenden LIeferanten verwiesen.
Nun möchte ich beim tätigen einer neuen Bestellung (Einfügen von neuer Row in Order, mit auswählbarem Supplier), offene Kundenbestellungen dieses "Suppliers" anzeigen.
Die DataTable CustomerOrder hat folgende relevante Spalten (Date = Bestelldatum des Kunden bei mir / OrderDate = mein Bestelldatum bei der Firma)
Löse ich nun eine neue Bestellung (Order) aus, suche ich mit einer Schleife in meiner CustomerOrder nach offenen Kunenbestellungen für diese Firma.
Offen ist eine Kundenbestellung, wenn die Spalte OrderDate DBNull ist.
VB.NET-Quellcode
- Private Function SearchCustomerOrders(SupplierID As Integer) As List(Of String)
- Dim OpenOrders As New List(Of String)
- Dim COrderRow = DtsSettings.CustomerOrder
- If COrderRow.Rows.Count < 1 Then Exit Function
- For Each row In COrderRow
- If row.IsOrderedNull AndAlso row.SupplierID = SupplierID Then
- OpenOrders.Add(row.OrderDate & "|" & row.CustomerName & "|" & row.ArtNr & "|" & row.ArticleName & "|" & row.Amount & "|" & row.ID)
- End If
- Next
- Return OpenOrders
- End Function
Diese Funktion funktioniert, aber gibt es hier nicht eine Möglichkeit der Sortierung (leer nach oben oder sowas), damit ich nicht immer die gesamte DataTable durchforsten muss?
In der Aufrufsub wird dann geprüft ob die übergebene List(of String) leer ist.
Wenn nicht, wird eine Form mit DGV angezeigt und die List(of String) an diese übergeben.
Hier splitte ich die List of wieder und stelle die Daten im Dgv dar.
Möchte ich nun eine Kundenbestellung als "bestellt" markieren, lese ich aus der List(of string) die ID, gehe mit einer Schleife jede ID in CustomerOrder durch, bis beide übereinstimmen und setzte den Wert für .OrderDate.
Das funktioniert, scheint mir aber unnötig kompliziert.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DerSmurf“ ()