根据工序列,自动生成工序号
工序列编号从01开始,当下一行的工序内容不同于上一行内容时,工序号自动加1。
此主题相关图片如下:1 (2).png
遍历一下
DataTables("表A").ReplaceFor("工序号", "")
Tables("表A").Filter = "工序 is not null and 工序<>''"
Tables("表A").Rows(0)("工序号") = "01"
For i As Integer = 1 To Tables("表A").Rows.count - 1
Dim 工序号 As String = ""
If Tables("表A").Rows(i)("工序号") = Tables("表A").Rows(i - 1)("工序号") Then
工序号 = Tables("表A").Rows(i - 1)("工序号")
Else
Dim 最大值 As Integer = Tables("表A").Rows.Select(Function(行) val(行("工序号"))).max
工序号 = format(最大值 + 1, "00")
End If
Tables("表A").Rows(i)("工序号") = 工序号
Next
[此贴子已经被作者于2024/11/12 16:44:21编辑过]
datacolchanged事件
if e.datacol.name = "工序" then
dim idx as integer = tables("表A").finrow(e.datarow)
if idx = 0 then
e.datarow("工序号") = 1
else
dim r as row = tables("表A").rows(idx- 1)
if r("工序") = e.datarow("工序") then
e.datarow("工序号") = r("工序号")
else
e.datarow("工序号") = r("工序号") + 1
end if
end if
end if