feat: add component priority support to MainModule
Update MainModule to support component priority field: - Read component priority from column E of [产品订单] worksheet - Pass component priority to ProcessSingleModel function - Apply category exclusion logic based on priority flag: - When "否"/"0"/"FALSE", exclude "部件" category - Only extract sub-category materials when disabled - Consistent with BIPUploadModule implementation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -75,10 +75,12 @@ Public Sub ProcessProductModels()
|
|||||||
' 假设产品型号在第1列,从第2行开始
|
' 假设产品型号在第1列,从第2行开始
|
||||||
For i = 2 To lastRow
|
For i = 2 To lastRow
|
||||||
modelString = Trim(inputSheet.Cells(i, 2).value)
|
modelString = Trim(inputSheet.Cells(i, 2).value)
|
||||||
|
Dim componentPriority As String
|
||||||
|
componentPriority = Trim(inputSheet.Cells(i, 5).value) ' E列:部件优先
|
||||||
|
|
||||||
If modelString <> "" Then
|
If modelString <> "" Then
|
||||||
' 处理单个型号
|
' 处理单个型号
|
||||||
outputRow = ProcessSingleModel(modelString, BomExtractor, outputSheet, outputRow)
|
outputRow = ProcessSingleModel(modelString, componentPriority, BomExtractor, outputSheet, outputRow)
|
||||||
processedCount = processedCount + 1
|
processedCount = processedCount + 1
|
||||||
End If
|
End If
|
||||||
Next i
|
Next i
|
||||||
@@ -106,12 +108,14 @@ End Sub
|
|||||||
' 函数: ProcessSingleModel
|
' 函数: ProcessSingleModel
|
||||||
' 功能: 处理单个产品型号
|
' 功能: 处理单个产品型号
|
||||||
' 参数: modelString - 产品型号字符串
|
' 参数: modelString - 产品型号字符串
|
||||||
|
' componentPriority - 部件优先标志("是"或"否")
|
||||||
' bomExtractor - BOM提取器对象
|
' bomExtractor - BOM提取器对象
|
||||||
' outputSheet - 输出工作表
|
' outputSheet - 输出工作表
|
||||||
' startRow - 起始行号
|
' startRow - 起始行号
|
||||||
' 返回: Long - 下一个可用行号
|
' 返回: Long - 下一个可用行号
|
||||||
'=====================================================================
|
'=====================================================================
|
||||||
Private Function ProcessSingleModel(modelString As String, _
|
Private Function ProcessSingleModel(modelString As String, _
|
||||||
|
componentPriority As String, _
|
||||||
BomExtractor As BomExtractor, _
|
BomExtractor As BomExtractor, _
|
||||||
outputSheet As Worksheet, _
|
outputSheet As Worksheet, _
|
||||||
startRow As Long) As Long
|
startRow As Long) As Long
|
||||||
@@ -120,6 +124,14 @@ Private Function ProcessSingleModel(modelString As String, _
|
|||||||
Dim currentRow As Long
|
Dim currentRow As Long
|
||||||
currentRow = startRow
|
currentRow = startRow
|
||||||
|
|
||||||
|
' 根据部件优先设置排除类别
|
||||||
|
BomExtractor.ClearExcludeCategories
|
||||||
|
If UCase(componentPriority) = "否" Or componentPriority = "0" Or componentPriority = "FALSE" Then
|
||||||
|
Dim excludeCats As New collection
|
||||||
|
excludeCats.Add "部件"
|
||||||
|
BomExtractor.SetExcludeCategories excludeCats
|
||||||
|
End If
|
||||||
|
|
||||||
' 解析产品型号
|
' 解析产品型号
|
||||||
Dim parser As ProductModelParser
|
Dim parser As ProductModelParser
|
||||||
Set parser = New ProductModelParser
|
Set parser = New ProductModelParser
|
||||||
|
|||||||
Reference in New Issue
Block a user