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


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

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

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2015/7/10 10:08:00 [只看该作者]

老师, 我这样设计可以吗?

建立一个产品ID表达式用 _Identify 生成

建立一个产品ID列 e.DataRow("产品ID")=e.DataRow("产品ID表达式")

[此贴子已经被作者于2015/7/10 10:22:46编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2015/7/10 10:36:00 [只看该作者]

等待老师回复


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 11:09:00 [只看该作者]

 直接在DataRowAdded写代码

 

e.DataRow.Save

e.DataRow("产品ID") = "bh-" & Format(e.DataRow("_Identify"), "000000")


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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2015/7/10 12:30:00 [只看该作者]

老师这样做是不是多人同时录入号码就不会重复了, 对吗?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 12:52:00 [只看该作者]

以下是引用seal51在2015/7/10 12:30:00的发言:

老师这样做是不是多人同时录入号码就不会重复了, 对吗?

 

是的,不会重复,因为_Identify列就是不重复的。


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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2015/7/10 14:11:00 [只看该作者]

非常感谢!

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2015/7/10 14:29:00 [只看该作者]

'---------采购单号自动根据厂家编号年份生成--------------------------------
Select e.DataCol.Name
    Case "订货日期","厂家编号"
        If e.DataRow.isnull("采购单号") Then
            If e.DataRow.IsNull("订货日期") OrElse e.DataRow.IsNull("厂家编号") Then
                e.DataRow("采购单号") = Nothing
            Else
                Dim d As Date = e.DataRow("订货日期")
                Dim bh As String = "SM-" & e.DataRow("厂家编号") & "" & Format(d,"yy") & "" '生成编号的前缀
               
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "采购单号 like '" & bh & "%' And [_Identify] <> " & e.DataRow("_Identify")
                max = e.DataTable.Compute("Max(采购单号)",flt) '取得该年的相同厂家编号的最大采购单号
                If max > "" Then '如果存在最大采购单号
                    idx = CInt(max.Substring(bh.Length,2)) + 1 '获得最大采购单号的后两位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("采购单号") = bh & Format(idx,"00")
            End If
        End If
End Select
'---------采购单号自动根据厂家编号年份生成--------------------------------

 

老师,这种编号多人操作如何编码重复呢?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 14:53:00 [只看该作者]

这样才不会重复

 

Select e.DataCol.Name
    Case "订货日期","厂家编号"
        If e.DataRow.isnull("采购单号") Then
            If e.DataRow.IsNull("订货日期") OrElse e.DataRow.IsNull("厂家编号") Then
                e.DataRow("采购单号") = Nothing
            Else
                Dim d As Date = e.DataRow("订货日期")
                Dim bh As String = "SM-" & e.DataRow("厂家编号") & "" & Format(d,"yy") & "" '生成编号的前缀
                e.DataRow.Save
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "采购单号 like '" & bh & "%' And [_Identify] <> " & e.DataRow("_Identify")
                max = e.DataTable.SQLCompute("Max(采购单号)",flt) '取得该年的相同厂家编号的最大采购单号
                If max > "" Then '如果存在最大采购单号
                    idx = CInt(max.Substring(bh.Length,2)) + 1 '获得最大采购单号的后两位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("采购单号") = bh & Format(idx,"00")
                e.DataRow.Save
            End If
        End If
End Select

[此贴子已经被作者于2015/7/10 14:53:13编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2015/7/10 15:31:00 [只看该作者]

If e.DataCol.Name = "排产日期" Then
    If e.DataRow.IsNull("排产日期") Then
        e.DataRow("排产单号") = Nothing
    Else
        Dim d As Date = e.DataRow("排产日期")
        Dim bh As String = "P" & Format(d,"yy-MM") & "" '生成编号的前缀
        e.DataRow.Save
        Dim max As String
        Dim idx As Integer
        Dim flt As String
        flt = "排产单号 like '" & bh & "%' And [_Identify] <> " & e.DataRow("_Identify")
        max = e.DataTable.sqlCompute("Max(排产单号)",flt) '取得该月的相同排产单号的最大排产单号
        If max > "" Then '如果存在最大排产单号
            idx = CInt(max.Substring(bh.Length,2)) + 1 '获得最大排产单号的后两位顺序号,并加1
        Else
            idx = 1 '否则顺序号等于1
        End If
        e.DataRow("排产单号") = bh & Format(idx,"00")
        e.DataRow.Save
    End If
End If

 

老师,这个这样改对吗?

[此贴子已经被作者于2015/7/10 15:31:50编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 15:37:00 [只看该作者]

对。有什么问题?


 回到顶部
总数 41 上一页 1 2 3 4 5 下一页