以文本方式查看主题 - 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 -- 确实有这个问题,我反馈一下 |