Foxtable(狐表)用户栏目专家坐堂 → 流水号如何从头开始编


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

主题:流水号如何从头开始编

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/22 20:12:00 [显示全部帖子]

 idx = CInt(max.Substring(lb.Length-1)) + 1

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/22 21:34:00 [显示全部帖子]

还和档号有关,那又是另外一种规则啊。麻烦一次性把问题说清楚好吗。这个和1楼的问题完全不是一回事

Select e.DataCol.Name
    Case "试验项目号","档号"
        If e.DataRow.IsNull("试验项目号") OrElse e.DataRow.IsNull("档号") Then
            e.DataRow("分类号") = Nothing
        Else
            Dim lb As String = e.DataRow("试验项目号")
            'If e.DataRow("分类号").StartsWith(lb) = False ore '如果单据分类号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(分类号)","试验项目号 = '" & lb & "' and 档号 = '" & e.DataRow("档号") & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该试验项目号的最大分类号
                If max > "" Then '如果存在最大分类号
                    idx = CInt(max.Substring(lb.Length+1)) + 1 '获得最大分类号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("分类号") = lb & "-"& idx
            'End If
        End If
End Select

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/22 21:35:00 [显示全部帖子]

您这种用法,没有明确的界限,所以不能在已经有的数据上重置列。需要清空"分类号"才能重置列

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/22 22:22:00 [显示全部帖子]

Select e.DataCol.Name
    Case "试验项目号","试验地区"
        If e.DataRow.IsNull("试验项目号") OrElse e.DataRow.IsNull("试验地区") Then
            e.DataRow("分类号") = Nothing
        Else
            Dim lb As String = e.DataRow("试验项目号")
            'If e.DataRow("分类号").StartsWith(lb) = False ore '如果单据分类号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(分类号)","试验项目号 = '" & lb & "' and 试验地区 = '" & e.DataRow("试验地区") & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该试验项目号的最大分类号
                If max > "" Then '如果存在最大分类号
                    idx = CInt(max.Substring(lb.Length+1)) + 1 '获得最大分类号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("分类号") = lb & "-"& idx
            'End If
        End If
End Select

 回到顶部