以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  数据合并怎么无效?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=6431)

--  作者:floor2
--  发布时间:2010/4/2 14:01:00
--  数据合并怎么无效?
控件代码如下
 Dim mg As New Merger
mg.SourcePath = "d:\\fahuo\\" \'指定数据文件所在目录
mg.Format = "Delimited" \'指定格式
mg.SourceTableName = "data" \'指定要合并的文件,无需扩展名
mg.DataTableName = "发货清单明细" \'指定接收数据的表
\'mg.FieldMaps.Add("条形码","条形码") \'将指定ID列的数据合并到编号列中
mg.Merge() \'开始合并

点击控件后,只是增加空行,没有数据
用手工合并可以的。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹 (3).rar

开发者 密码 :admin
在发货清单明细表 的窗口
[此贴子已经被作者于2010-4-2 14:22:30编辑过]

--  作者:czy
--  发布时间:2010/4/2 15:17:00
--  
data.xlsx文件发上来
--  作者:czy
--  发布时间:2010/4/2 15:19:00
--  

测试没有任何问题。


--  作者:floor2
--  发布时间:2010/4/2 16:00:00
--  
 事情比较复杂,本来是把文件写到data.txt,然后把这个文件(data.txt)合并到 发货清单明细表里,看一楼的代码,试了很多次都不行,就想换一个格式看能不能合并,把data.txt的格式换成xlsx,上传的就是这样的格式,但发现 写入公式writealltext只能是向文本文件写入,换成xlsx格式的路不行,所以还得是data.txt进行合并

但是用data.txt格式进行合并,只增加了空行,没有数据合并。麻烦高手把一楼代码拷到控件里 测试下,是什么原因,谢谢。

--  作者:czy
--  发布时间:2010/4/2 16:16:00
--  
这或许是老六的问题吧。
个人感觉,如果合并文本文件应该有指定分隔符的参数才对。
老六来看下。
--  作者:贺老六
--  发布时间:2010/4/2 16:21:00
--  

是盖茨的问题,收藏此帖,以后看看能不能改进。


--  作者:floor2
--  发布时间:2010/4/2 16:42:00
--  
一桶冷水,
不是有 mg.Format = "Delimited" 格式指定吗?手动也还是可以合并的啊!
有没有其他的办法,把文本文件的内容写入到表的某列里?
[此贴子已经被作者于2010-4-2 17:05:21编辑过]

--  作者:floor2
--  发布时间:2010/4/2 22:24:00
--  
 狐爸改帮助吧
在一楼的代码里加入 mg.header=true 这样就可以合并了,帮助里都省略了
如果要多列合并的话,要把fieldmaps语句多写几次,一次一列
[此贴子已经被作者于2010-4-2 22:27:58编辑过]

--  作者:floor2
--  发布时间:2010/4/3 17:04:00
--  
有些文本可以这样操作,有些文本不行,通过导入文本文件测试,会发现第1列的名称会自动改变,导致无法进行数据合并,第2列之后列名不会改变,可以合并。
现改变思路,先把文本文件导入到新表中,用cols(0)获取列名,然后用filler语句,不过指定数据来源列,不能用变量,狐爸有没有办法,或者可以对列名重命名。谢谢

dim n as string =tables("表d").cols(0).name
messagebox.show(n)
dim f As New Filler
f.SourceTable = DataTables("表d") \'指定数据来源
f.SourceCols = "n" \'指定数据来源列
f.DataTable = DataTables("发货清单明细") \'指定数据接收表
f.DataCols = "第一列" \'指定数据接收列
f.Fill() \'填充数据