以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动编号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=118826)

--  作者:jeff69
--  发布时间: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 ")

 

 

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

麻烦帮我看看。


--  作者:有点甜
--  发布时间:2018/5/11 18:41:00
--  

换一种方式合并excel文件呢?

 

http://www.foxtable.com/webhelp/scr/2334.htm

 


--  作者:jeff69
--  发布时间:2018/5/11 22:01:00
--  
谢谢了。问题解决了,就是用版主推荐的方式,换了一种合并方式。不过,我说的问题foxtable可以研究一下,我试了好几次,Merge合并的确存在这个问题


--  作者:有点蓝
--  发布时间:2018/5/11 22:36:00
--  
确实有这个问题,我反馈一下