以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合并数据的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34743)

--  作者:魔鬼之神
--  发布时间:2013/6/14 15:25:00
--  合并数据的问题

从表格导入数据,我采用的是以下方式来执行导入的:Dim mg As New Merger
mg.SourcePath = txt.Text  \'指定路径文件
mg.Format = "excel" \'指定格式
mg.SourceTableName = "Sheet1$" \'指定要合并的表。。。 我想请教一下,在导入时,要遍历给每一条数据添加一个自定义的编号,代码如下: Case "意向客户"
        str = "YXKH"
        mg.DataTableName = str \'指定接收数据的表
        mg.Merge() \'开始合并
        For Each dr As DataRow In DataTables(str).DataRows
            If dr.RowState=DataRowState.Added Then
                dr("LCMC") = "制订"
                Functions.Execute("导入数据",Tables("YXKH").Current)
            End If
        Next
标红色的语句是自定义编号的函数,但我在执行按钮导时,只有第一行数据有编号,后面的都没有编号,然后发现在导入数据时,这个函数只执行了一次。请教一下是什么原因,是我的代码有问题吗?


--  作者:Bin
--  发布时间:2013/6/14 15:32:00
--  
上例子,这也没办法判断是什么原因造成的.
--  作者:狐狸爸爸
--  发布时间:2013/6/14 15:40:00
--  

呵呵,我蒙一下,这个逻辑似乎有问题:
 
Functions.Execute("导入数据",Tables("YXKH").Current)
 
按道理应该是:
 
Functions.Execute("导入数据",dr)

 

否则你永远处理的都是当前行,也就是第一行。
 
当然自定义函数也应该修改,因为现在参数的类型是DataRow,而不是Row



--  作者:iliksou
--  发布时间:2013/6/14 16:28:00
--  
蒙对了。
--  作者:魔鬼之神
--  发布时间:2013/6/14 17:15:00
--  回复:(狐狸爸爸)呵呵,我蒙一下,这个逻辑似乎有问...
我有点明白你的意思了,但Functions.Execute("导入数据",Tables("YXKH").Current) 这个怎么修改呢?函数我改成了Dim r As DataRow=args(0) 这样
--  作者:Bin
--  发布时间:2013/6/14 17:17:00
--  
以下是引用魔鬼之神在2013-6-14 17:15:00的发言:
我有点明白你的意思了,但Functions.Execute("导入数据",Tables("YXKH").Current) 这个怎么修改呢?函数我改成了Dim r As DataRow=args(0) 这样



改为 Functions.Execute("导入数据",dr)  狐爸已经告诉你了啊
--  作者:狐狸爸爸
--  发布时间:2013/6/14 17:17:00
--  
Functions.Execute("导入数据",dr)