Foxtable(狐表)用户栏目专家坐堂 → 自动生成工序号


  共有581人关注过本帖树形打印复制链接

主题:自动生成工序号

帅哥哟,离线,有人找我吗?
1234567
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
自动生成工序号  发帖心情 Post By:2024/11/12 16:18:00 [只看该作者]

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

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


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

 回到顶部
帅哥,在线噢!
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4773 积分:34673 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111407 积分:567105 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By: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

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111407 积分:567105 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 17:15:00 [只看该作者]

2、3楼都有取上一行的用法,请仔细看看

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By: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

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111407 积分:567105 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/13 14:26:00 [只看该作者]

另外一个表要使用find查找:http://www.foxtable.com/webhelp/topics/0396.htm

 回到顶部