feat(BIP): dynamic row number from platform config column L
This commit is contained in:
@@ -9,9 +9,7 @@ Option Explicit
|
||||
' 常量定义
|
||||
'=====================================================================
|
||||
' 提取条件配置
|
||||
Private Const CONDITION_CONFIG = "azxs,安装形式|bkxs,表壳形式|gclj,过程连接|jycz,接液材质|lcfw,量程范围|fjgn,附加功能"
|
||||
' 行号基数
|
||||
Private Const ROW_NUMBER_BASE = 7000
|
||||
Private Const CONDITION_CONFIG = "azxs,安装形式 |bkxs,表壳形式 |gclj,过程连接 |jycz,接液材质 |lcfw,量程范围 |fjgn,附加功能"
|
||||
|
||||
'=====================================================================
|
||||
' 过程: ProcessOrdersToBIP
|
||||
@@ -222,6 +220,10 @@ Private Sub ProcessSingleOrder(orderNumber As String, _
|
||||
Dim lineIndex As Long
|
||||
lineIndex = 1
|
||||
|
||||
' 创建字典跟踪每个 BIP 行号基数的当前序号
|
||||
Dim bipRowBaseDict As Object
|
||||
Set bipRowBaseDict = CreateObject("Scripting.Dictionary")
|
||||
|
||||
For Each item In matchedItems
|
||||
Dim itemNote As String
|
||||
itemNote = extractNote
|
||||
@@ -232,9 +234,24 @@ Private Sub ProcessSingleOrder(orderNumber As String, _
|
||||
itemNote = itemNote & item.MatchError
|
||||
End If
|
||||
|
||||
' 计算实际行号:行号 = BIP 行号基数 + 组内序号 (从 1 开始)
|
||||
Dim baseValue As Long
|
||||
baseValue = item.BipRowNumberBase
|
||||
|
||||
Dim currentIndex As Long
|
||||
If bipRowBaseDict.Exists(baseValue) Then
|
||||
currentIndex = bipRowBaseDict(baseValue) + 1
|
||||
Else
|
||||
currentIndex = 1
|
||||
End If
|
||||
bipRowBaseDict(baseValue) = currentIndex
|
||||
|
||||
Dim actualRowNumber As Long
|
||||
actualRowNumber = baseValue + currentIndex
|
||||
|
||||
' 创建 BIP 行数据并添加到集合
|
||||
outputData.Add CreateBIPRowArray(orderNumber, productCode, Quantity, _
|
||||
lineIndex, item.Code66, itemNote)
|
||||
actualRowNumber, item.Code66, itemNote)
|
||||
|
||||
lineIndex = lineIndex + 1
|
||||
Next item
|
||||
@@ -242,20 +259,20 @@ Private Sub ProcessSingleOrder(orderNumber As String, _
|
||||
End Sub
|
||||
|
||||
'=====================================================================
|
||||
' 函数: CreateBIPRowArray
|
||||
' 功能: 创建BIP上传模板一行数据的数组
|
||||
' 参数: orderNumber - 生产订单号
|
||||
' 函数:CreateBIPRowArray
|
||||
' 功能:创建 BIP 上传模板一行数据的数组
|
||||
' 参数:orderNumber - 生产订单号
|
||||
' productCode - 产品编码
|
||||
' quantity - 生产数量
|
||||
' lineIndex - 行号索引(从1开始)
|
||||
' actualRowNumber - 实际行号(BIP 行号基数 + 组内序号)
|
||||
' materialCode - 材料编码(66 编码)
|
||||
' note - 备注
|
||||
' 返回: Variant() - 包含10个元素的数组
|
||||
' 返回:Variant() - 包含 10 个元素的数组
|
||||
'=====================================================================
|
||||
Private Function CreateBIPRowArray(orderNumber As String, _
|
||||
productCode As String, _
|
||||
Quantity As String, _
|
||||
lineIndex As Long, _
|
||||
actualRowNumber As Long, _
|
||||
materialCode As String, _
|
||||
note As String) As Variant()
|
||||
Dim rowData(1 To 10) As Variant
|
||||
@@ -263,7 +280,7 @@ Private Function CreateBIPRowArray(orderNumber As String, _
|
||||
rowData(1) = orderNumber ' 来源单据号(生产订单号)
|
||||
rowData(2) = productCode ' 产品编码
|
||||
rowData(3) = Quantity ' 生产数量
|
||||
rowData(4) = ROW_NUMBER_BASE + lineIndex ' 行号 = 基数 + 索引
|
||||
rowData(4) = actualRowNumber ' 行号
|
||||
rowData(5) = materialCode ' 材料编码(66 编码)
|
||||
rowData(6) = "一般发料" ' 供应方式(固定值)
|
||||
rowData(7) = Date ' 需用日期(当天日期)
|
||||
|
||||
Reference in New Issue
Block a user