8
0
2024-01-24 16:42:38 +01:00

111 lines
3.4 KiB
Plaintext

' 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
' ---------------------------------------------------------
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 &"') "
' Versandkosten (Art.Gruppe 100) rausfiltern
SQL = SQL & "and c012 NOT IN (100) "
' Nur Artikel aus offenen Belegen anzeigen
SQL = SQL & "and c031 = c112"
' Nach Mandant und Wirtschaftsjahr filtern
SQL = SQL & SQLQuery_BasicWhere
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.." & 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
Do
' Zeilen hochzählen
Amount = Cint(Result.Value("c005"))
ChargeFlag = Cint(Result.Value("c055"))
If ChargeFlag = 2 Then
For index = 1 To Amount
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
Grid.AddLine
' Zeilenfarbe mit ROT vorbelegen
Grid.SetLineColor LineCounter, COLOR_RED
LineCounter = LineCounter + 1
Next
Else
CWLCurrentWindow.ActiveWindow.Vars.Value(495,0) = Cint(Result.Value("c005"))
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) = 0
' Ergebnisse aus SQL in Zeile schreiben
Grid.AddLine
' Zeilenfarbe mit ROT vorbelegen
Grid.SetLineColor LineCounter, COLOR_RED
LineCounter = LineCounter + 1
End If
If Result.NextRecord = False Then
Exit Do
End If
Loop
LoadOrder = True
Else
MsgBox "Auftrag wurde bereits bearbeitet oder existiert nicht", vbExclamation, DEFAULT_TITLE
LoadOrder = False
End If
Grid.IsRedraw = True
End Function