Foxtable(狐表)用户栏目专家坐堂 → [求助]自动编号问题


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

主题:[求助]自动编号问题

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


加好友 发短信
等级:幼狐 帖子:136 积分:915 威望:0 精华:0 注册:2016/3/8 17:16:00
[求助]自动编号问题  发帖心情 Post By:2017/3/8 14:23:00 [只看该作者]

表A为采购订单表(筛选状态为:“增新”or“审核”),当前行状态为:“新增”,审核后,为:“待付款”状态,此状态不在筛选后的采购订单表中,问题是:“待付款”行的订单编号是存在的假设为A005,但是如果这时在采购订单表中添加订单的话,自动编号也是A005,就是说在筛选的订单表中只能根据筛选后的结果来编号(我是参考的帮助自动编号这一章),一但订单被提交了,同一天再建订单的话,编号会和提交过的订单编号重复!有没有解决的办法?我是新手!
If e.DataCol.Name = "日期" Then
    If e.DataRow.IsNull("日期"Then
        e.DataRow("编号") = Nothing
    Else
        Dim bh As String = Format(e.DataRow("日期"),"yyyyMMdd"'取得编号的8位前缀
        If e.DataRow("编号").StartsWith(bh) = False '如果编号的前8位不符
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(编号)","日期 = #" & e.DataRow("日期") & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大编号
            If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(9,3)) + 1 '获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("编号") = bh & "-" & Format(idx,"000")
        End If
    End 
If

End
 If
这是复制帮助里的,If max > "" Then 这里有没有办法把提交后的订单编号也能找出来?要不然的话上一笔订单提交后,再添加订单的话,编号就会与上一笔订单相同!

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/8 14:29:00 [只看该作者]

 

e.DataTable.Compute是根据你加载的数据查找的。如果希望根据数据库所有数据查找,你可以把改成SqlCompute

 


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


加好友 发短信
等级:幼狐 帖子:136 积分:915 威望:0 精华:0 注册:2016/3/8 17:16:00
  发帖心情 Post By:2017/3/8 14:36:00 [只看该作者]

改了之后,提示:“#号附近有错误”?

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


加好友 发短信
等级:幼狐 帖子:136 积分:915 威望:0 精华:0 注册:2016/3/8 17:16:00
  发帖心情 Post By:2017/3/8 14:38:00 [只看该作者]

已解决!谢谢有点色!今天女王节,你要悠着点!

 回到顶部