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


  共有1689人关注过本帖平板打印复制链接

主题:自动编号

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


加好友 发短信
等级:幼狐 帖子:77 积分:679 威望:0 精华:0 注册:2018/5/2 11:29:00
自动编号  发帖心情 Post By:2018/5/11 17:03:00 [只看该作者]

老师,各位大神:

我刚接触FOXTABLE,尝试做个小项目,但在自动编号上出现了问题,麻烦指定一下:

想实现的功能是:输入或合并入数据(只要有“客户名称”就行)就会自动生成7位编号:年份加上三位顺序号

这里引用的代码:(在DataColChanged

If e.DataCol.Name = "客户名称" Then

    If e.DataRow.IsNull("客户名称") Then

        e.DataRow("业务编号") = Nothing

    Else

        Dim d As Date = Date.Today

        Dim y As Integer = d.Year

        Dim bh As String = Format(d,"yyyy") '生成编号的前6位,4位年,2位月.

        If e.DataRow("业务编号").StartsWith(bh) = False '如果编号的前6位不符

            Dim max As String

            Dim idx As Integer

            max = e.DataTable.Compute("Max(业务编号)") '取得该月的最大编号

            If max > "" Then '如果存在最大编号

                idx = CInt(max.Substring(4,3)) + 1 '获得最大编号的后三位顺序号,并加1

            Else

                idx = 1 '否则顺序号等于1

            End If

            e.DataRow("业务编号") = bh & Format(idx,"000")

        End If

    End If

End If

 

问题:在手动一条一条记录输入时,完成正常。问题出在合并上,我在窗体上设置了合并按扭,合并的execl表只有一条记录的话,没问题,关键是表上有多条记录时,自动生成的编号是一样的。

更加令人疑惑的是,如果通过手动在杂项—高速合并上操作就没问题!

 

窗体按扭的代码是:

 

Dim mg As New Merger

mg.SourcePath = "d:\合悦旅游\业务需求表.xlsx"

mg.Format = "excel" '指定格式

mg.SourceTableName = "业务需求表$" '指定要合并的表

mg.DataTableName = "业务需求表" '指定接收数据的表

mg.Merge() '开始合并

 

DataTables("业务需求表").DeleteFor("客户名称 Is Null ")

 

 

这个问题困扰了我好几天了!

麻烦帮我看看。


 回到顶部