' UpdateArticleRow(RowNumber: Integer) ' ---------------------------------------------------------------------------- ' Trägt die gescannte Menge eines Artikel in das Grid ein ' - Ändert die Farbe, abhängig von Gesamtmenge und Gescannte Menge ' - Überprüft, ob der Artikel in der Gescannten Menge auf Lager liegt ' ' Returns: UpdateArticleRow : Boolean ' ---------------------------------------------------------------------------- ' Copyright (c) 2021 by Digital Data GmbH ' ' Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim ' Tel.: 0641/202360 • E-Mail: info-flow(at)digitaldata.works ' ---------------------------------------------------------------------------- ' Creation Date / Author: 01.09.2021 / JJ ' Version Date / Editor: 25.03.2021 / MP ' Version Number: 4.0.0.0 ' Aktualisiert den Wert COLUMN_MACRO_ARTICLE_SCAN_FLAG für den aktuellen ' MacroIndex Sub UpdateMacroArticleRow(MacroArticleLineNumber) For MacroArrayIndex = 0 To UBound(MACRO_ARTICLE_LIST): Do If MACRO_ARTICLE_LIST(COLUMN_MACRO_ARTICLE_LINE_NUMBER, MacroArrayIndex) = MacroArticleLineNumber Then MACRO_ARTICLE_LIST(COLUMN_MACRO_ARTICLE_SCAN_FLAG, MacroArrayIndex) = True Exit For End If Loop While False: Next End Sub Function UpdateArticleRow(RowNumber) Set mywin = CWLStart.CurrentModule.Windows.Item(WINDOW_ID) Set Grid = mywin.Controls.Item(GRID_ID).Grid Set amountBox = mywin.Controls.Item(AMOUNT_INPUT) ' Bereits gescannte, Gesamt und Anzahl zu Scannen auslesen ArticleNumber = Grid.GetCellValue(RowNumber, COLUMN_ARTICLENUMBER) Total = Cint(Grid.GetCellValue(RowNumber, COLUMN_TOTAL)) Scanned = Cint(Grid.GetCellValue(RowNumber, COLUMN_SCANNED)) ScannedAmount = Cint(amountBox.Contents) MacroFlag = Cint(Grid.GetCellValue(RowNumber, COLUMN_MACRO_FLAG)) MacroArticleLineNumber = Cint(Grid.GetCellValue(RowNumber, COLUMN_MACRO_LINE_NUMBER)) ' Standard Rückgabewert setzen UpdateArticleRow = True ' Aktuellen Lagerstand abfragen StockedAmount = GetWinLineStockedAmount(ArticleNumber, False) ' Neue bereits gescannte berechnen NewScanned = Scanned + ScannedAmount If DEBUG_ON = True Then AddDebugLine "Total " & Total AddDebugLine "Scanned: " & Scanned AddDebugLine "NewScanned: " & NewScanned AddDebugLine "StockedAmount: " & StockedAmount ShowDebugBox "UpdateArticleRow" End If ' Zeilenfarbe anpassen: ' GRÜN: Komplett gescannt ' GELB: Teilweise gescannt If NewScanned > StockedAmount Then Message = "" Message = Message & "Der Artikel ist nur in der Menge " & StockedAmount & " vorhanden." & vbNewline Message = Message & "Der Scan wird abgebrochen!" Msgbox Message, vbExclamation, DEFAULT_TITLE Elseif NewScanned = Total Then If MacroFlag = 2 Then Grid.SetLineColor RowNumber, COLOR_PACKAGE_GREEN UpdateMacroArticleRow(MacroArticleLineNumber) ReduceSubMacroCounterInDuplList ArticleNumber, MacroArticleLineNumber Else Grid.SetLineColor RowNumber, COLOR_GREEN End If Grid.SetCellValue RowNumber, COLUMN_SCANNED, NewScanned ReduceCounterInDuplList ArticleNumber, MacroFlag Elseif NewScanned < Total Then If MacroFlag = 2 Then Grid.SetLineColor RowNumber, COLOR_PACKAGE_YELLOW UpdateMacroArticleRow(MacroArticleLineNumber) Else Grid.SetLineColor RowNumber, COLOR_YELLOW End If Grid.SetCellValue RowNumber, COLUMN_SCANNED, NewScanned Else Message = "" Message = Message & "Die eingegebene Menge überschreitet die Gesamtanzahl oder" & vbNewline Message = Message & "der Artikel wurde bereits vollständig gescannt!" Msgbox Message, vbExclamation, DEFAULT_TITLE UpdateArticleRow = False End If End Function