以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自动生成工序号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194124)

--  作者:1234567
--  发布时间:2024/11/12 16:18:00
--  自动生成工序号

根据工序列,自动生成工序号

工序列编号从01开始,当下一行的工序内容不同于上一行内容时,工序号自动加1。


图片点击可在新窗口打开查看此主题相关图片如下:1 (2).png
图片点击可在新窗口打开查看

--  作者:y2287958
--  发布时间:2024/11/12 16:21:00
--  
遍历一下

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编辑过]

--  作者:有点蓝
--  发布时间:2024/11/12 16:44:00
--  
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

--  作者:1234567
--  发布时间:2024/11/12 17:05:00
--  
For Each r As Row In Tables("编制工艺文件_Table05").Rows
   Dim max As String
Dim idx As Integer
If max > "" Then           如果max > "" 并且遍历行的工序内容不同于上一行内容时,这句代码怎么写?
    idx = CInt(max) + 1
Else
    idx = 1
End If
r("工序号") = Format(idx, "00")
max = r("工序号")
Next

--  作者:有点蓝
--  发布时间:2024/11/12 17:15:00
--  
2、3楼都有取上一行的用法,请仔细看看
--  作者:1234567
--  发布时间:2024/11/13 14:21:00
--  
For i As Integer = 0 To Tables("编制工艺文件_Table05").Rows.count - 1
 If Tables("编制工艺文件_Table05").Rows(i)("工序号") <> Tables("编制工艺文件_Table05").Rows(i - 1)("工序号") Then 改成如果在Tables("编制工艺文件_Table04")表【工序号】列中找不到相同的 Tables("编制工艺文件_Table05").Rows(i)("工序号"),怎么改?
       Dim r1 As Row = Tables("编制工艺文件_Table05").Rows(i)
        Dim r2 As Row = Tables("编制工艺文件_Table04").AddNew()
        r2("工艺单编号") = r1("工艺单编号")
        r2("工序号") = r1("工序号")
    End If
Next

--  作者:有点蓝
--  发布时间:2024/11/13 14:26:00
--  
另外一个表要使用find查找:http://www.foxtable.com/webhelp/topics/0396.htm