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


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

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 9:46:00 [显示全部帖子]

 呃,直接在foxtable里面新增表,就自动带有 _Identify 的,

 

 参考 http://www.foxtable.com/help/topics/1443.htm

 


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


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

 编号用_Identify啊。

 

 如果要特殊的编号,参考 http://www.foxtable.com/help/topics/1994.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 10:00:00 [显示全部帖子]

以下是引用seal51在2015/7/10 9:58:00的发言:
用表达式列, 一旦系统变更,编号表达式列的数据更改, 所有的关联全部就乱了, 怎么办呢, 已经有几千条数据了

 

你新增一列,把表达式列的内容,复制到数据列去不就行了?

 

以后就用数据列存储,参考4楼的设置。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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列就是不重复的。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

对。有什么问题?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 16:01:00 [显示全部帖子]

 不肯能。重复的概率,是极少极少的

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/10 18:04: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)) + 1 '获得最大排产单号的后两位顺序号,并加1
        Else
            idx = 1 '否则顺序号等于1
        End If
        e.DataRow("排产单号") = bh & Format(idx,"000")
        e.DataRow.Save
    End If
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/12 10:14:00 [显示全部帖子]

以下是引用seal51在2015/7/12 9:48:00的发言:
发现问题了, 我把排产日期列的默认值写成DATE, 或者NOW(), 自动编号就不会新增, 如何把排产日期默认为当天, 自动编号能新增呢?

 

DataRowAdded事件

 

e.DataRow("排产日期") = Date.Now


 回到顶部
总数 12 1 2 下一页