Anlage des Repos
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
' LoadOrder(OrderNumber: String)
|
||||
' ---------------------------------------------------------
|
||||
' Sucht Belegzeilen zur angegebenen Belegnummer
|
||||
' - Filtert Artikel der Gruppe 100 aus
|
||||
' - Lädt Ergebnisse in eine Tabelle auf dem Formular
|
||||
' - Erzeugt N Zeilen für Seriennummer-Artikel der Menge N
|
||||
'
|
||||
' Rückgabewert: LoadSuccessful: Boolean
|
||||
' ---------------------------------------------------------
|
||||
' Version Date: 04.01.2021
|
||||
Function LoadOrder(OrderNumber)
|
||||
Set mywin = CWLStart.CurrentModule.Windows.Item(WINDOW_ID)
|
||||
Set Grid = mywin.Controls.Item(GRID_ID).Grid
|
||||
|
||||
' ARTIKEL FILTERN
|
||||
SQL = ""
|
||||
' Nach eingescannter Auftragsnummer/Belegnummer filtern
|
||||
SQL = SQL & "(c067 = '"& OrderNumber &"') "
|
||||
' Nur Artikelzeilen anzeigen
|
||||
SQL = SQL & "AND (c042 = 1) "
|
||||
' Teillieferungs-Zeilen rausfiltern
|
||||
SQL = SQL & "AND (c005 - c016) > 0 AND (c099 = 0) "
|
||||
'SQL = SQL & "AND c039 <> '*' AND (c005 - c016) > 0 AND (c099 = 0) "
|
||||
' Versandkosten (Art.Gruppe 100) rausfiltern
|
||||
' SQL = SQL & "AND c012 NOT IN (100, 101) "
|
||||
' Keine Hauptartikel, wenn dazu auch Ausprägungen vorhanden sind
|
||||
' Legende:
|
||||
'-1 - Ausprägung
|
||||
' 0 - HA ohne Ausprägungen
|
||||
' 2 - HA mit Ausprägungen + Ident
|
||||
' 12 - HA mit Ausprägungen + Ident (bereits ausgeprägt)
|
||||
SQL = SQL & "AND c055 NOT IN (12)"
|
||||
' Nach Mandant und Wirtschaftsjahr filtern
|
||||
SQL = SQL & SQLQuery_OrderWhere
|
||||
|
||||
Set Result = CWLStart.CurrentCompany.SearchRecord (TABLE_26, SQL)
|
||||
|
||||
If DEBUG_ON = True Then
|
||||
MsgBox "SQL: ... FROM "& TABLE_26 & " WHERE " & SQL, vbOkonly, DEBUG_TITLE
|
||||
|
||||
AddDebugLine "Searching For Order by OrderId (Mid Table).." & vbNewline & vbNewline
|
||||
AddDebugLine "Result Columns: " & Result & vbNewline
|
||||
AddDebugLine "Result Rows: " & Result.RowCount & vbNewline
|
||||
AddDebugLine "SQL: " & SQL
|
||||
|
||||
ShowDebugBox "LoadOrder"
|
||||
End If
|
||||
|
||||
If Result < 0 Then
|
||||
If err <> 0 Then
|
||||
Msgbox "Fehler bei Abfrage:" & vbNewline & err.description, vbExclamation, DEFAULT_TITLE & " - LoadOrder"
|
||||
Exit Function
|
||||
Else
|
||||
Msgbox "Abfrage lieferte keine Ergebnisse.", vbExclamation, DEFAULT_TITLE & " - LoadOrder"
|
||||
Exit Function
|
||||
End If
|
||||
End If
|
||||
|
||||
Grid.InitUserGrid
|
||||
Grid.Header
|
||||
Grid.Clear(1002)
|
||||
Grid.IsRedraw = False
|
||||
|
||||
If Result.RowCount > 0 Then
|
||||
LineCounter = 1
|
||||
|
||||
' Speicher für benutzerdefinierte Felder
|
||||
' (495,0) - Menge Gescannt
|
||||
' (495,1) - Menge Gesamt
|
||||
' (495,2) - Seriennummer
|
||||
' (495,3) - Artikelnummer
|
||||
' (495,4) - Bezeichnung
|
||||
|
||||
ORDER_ACCOUNT_NUMBER = Result.Value("c044")
|
||||
ORDER_RUNNING_NUMBER = Result.Value("c045")
|
||||
ORDER_DOCUMENT_NUMBER = Result.Value("c067")
|
||||
|
||||
Do
|
||||
' Zeilen hochzählen
|
||||
Dim AmountOrdered, AmountDelivered
|
||||
AmountOrdered = Cint(Result.Value("c005"))
|
||||
AmountDelivered = Cint(Result.Value("c016"))
|
||||
ProductGroup = Cint(Result.Value("c012"))
|
||||
Amount = AmountOrdered - AmountDelivered
|
||||
|
||||
ChargeFlag = Cint(Result.Value("c055"))
|
||||
|
||||
If ChargeFlag = 2 Then
|
||||
For index = 1 To Amount
|
||||
Dim IsLateShape
|
||||
|
||||
SQL = "(C002 = '" & Result.Value("c003") & "')"
|
||||
' Nach Mandant und Wirtschaftsjahr filtern
|
||||
SQL = SQL & SQLQuery_BasicWhere
|
||||
Set ShapeResult = CWLStart.CurrentCompany.SearchRecord (TABLE_21, SQL)
|
||||
If Len(ShapeResult.Value("C222")) > 0 Then
|
||||
IsLateShape = 1
|
||||
Else
|
||||
IsLateShape = 0
|
||||
End If
|
||||
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,0) = 1
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,1) = 0
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,2) = ""
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,3) = Result.Value("c003")
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,4) = Result.Value("c004")
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,5) = 1
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,6) = IsLateShape
|
||||
Grid.AddLine
|
||||
|
||||
' Zeilenfarbe mit ROT vorbelegen
|
||||
Grid.SetLineColor LineCounter, COLOR_RED
|
||||
|
||||
LineCounter = LineCounter + 1
|
||||
Next
|
||||
Else
|
||||
If ProductGroup >= 100 Then
|
||||
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,0) = Amount
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,1) = Amount
|
||||
LineColor = COLOR_GREEN
|
||||
|
||||
Else
|
||||
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,0) = Amount
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,1) = 0
|
||||
LineColor = COLOR_RED
|
||||
|
||||
End If
|
||||
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,2) = ""
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,3) = Result.Value("c003")
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,4) = Result.Value("c004")
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,5) = 0
|
||||
CWLCurrentWindow.ActiveWindow.Vars.Value(495,6) = 0
|
||||
|
||||
' Ergebnisse aus SQL in Zeile schreiben
|
||||
Grid.AddLine
|
||||
|
||||
' Zeilenfarbe mit ROT vorbelegen
|
||||
Grid.SetLineColor LineCounter, LineColor
|
||||
|
||||
LineCounter = LineCounter + 1
|
||||
End If
|
||||
Loop While Result.NextRecord = True
|
||||
Else
|
||||
MsgBox "Beim Laden des Auftrags ["& OrderNumber &"] wurden keine Zeilen zurück gegeben.", vbExclamation, DEFAULT_TITLE
|
||||
LoadOrder = False
|
||||
End If
|
||||
|
||||
LoadOrder = True
|
||||
Grid.IsRedraw = True
|
||||
End Function
|
||||
Reference in New Issue
Block a user