Foxtable(狐表)用户栏目专家坐堂 → 自动生成编号出错


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

主题:自动生成编号出错

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


加好友 发短信
等级:婴狐 帖子:50 积分:395 威望:0 精华:0 注册:2014/8/16 1:11:00
自动生成编号出错  发帖心情 Post By:2014/9/5 0:17:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140905001353.jpg
图片点击可在新窗口打开查看
欲自动生成编号,可是为什么只能自动编两个单号,并且还是先生成01,后生成00.这代码中哪里错了呢?求指错。

Select e.DataCol.Name
    Case "确定订单"
        If e.NewValue = True Then
            e.DataRow.Locked = True
        End If
    Case  "下单时间","影楼名称"
        If e.DataRow.IsNull("下单时间") OrElse e.DataRow.IsNull("影楼名称") Then
            e.DataRow("订单编号") = Nothing
        Else
            Dim  d As Date = e.DataRow("下单时间")
            Dim  max As String
            Dim idx As Integer
            Dim flt As String
            Dim bh As String = e.DataRow("影楼代码")  & Format(d,"yyyyMMdd") & "-"  '生成编号的前缀
            flt =  "影楼代码 = '"& e.DataRow("影楼代码") &  "'and 下单时间 = #" & e.DataRow("下单时间") & "# And [_Identify] <> " & e.DataRow("_Identify")
            max =  e.DataTable.Compute("Max(订单编号)",flt)  '取得该天的同影楼的最大单据编号
            If max > "" Then  '如果存在最大单据编号
                idx = max.Substring ( max.IndexOf ("-"),3) +1 '获得最大单据编号的后三位顺序号,并加1
            Else
                idx = 1  '否则顺序号等于1
            End If
            e.DataRow("订单编号") = bh & Format(idx,"00")
        End If
    End  Select


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/9/5 8:31:00 [只看该作者]

Select e.DataCol.Name
    Case "确定订单"
        If e.NewValue = True Then
            e.DataRow.Locked = True
        End If
    Case  "下单时间","影楼名称"
        If e.DataRow.IsNull("下单时间") OrElse e.DataRow.IsNull("影楼名称") Then
            e.DataRow("订单编号") = Nothing
        Else
            Dim  d As Date = e.DataRow("下单时间")
            Dim  max As String
            Dim idx As Integer
            Dim flt As String
            Dim bh As String = e.DataRow("影楼代码")  & Format(d,"yyyyMMdd") & "-"  '生成编号的前缀
            flt =  "影楼代码 = '"& e.DataRow("影楼代码") &  "'and 下单时间 = #" & e.DataRow("下单时间") & "# And [_Identify] <> " & e.DataRow("_Identify")
            max =  e.DataTable.Compute("Max(订单编号)",flt)  '取得该天的同影楼的最大单据编号
            If max > "" Then  '如果存在最大单据编号
                idx = max.Substring ( max.IndexOf ("-")+1,2) +1 '获得最大单据编号的后三位顺序号,并加1
            Else
                idx = 1  '否则顺序号等于1
            End If
            e.DataRow("订单编号") = bh & Format(idx,"00")
        End If
    End  Select

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


加好友 发短信
等级:婴狐 帖子:50 积分:395 威望:0 精华:0 注册:2014/8/16 1:11:00
  发帖心情 Post By:2014/9/5 13:24:00 [只看该作者]

谢谢狐爸!

原因是把"-"识别为减号了,对吗?


 回到顶部