Foxtable(狐表)用户栏目专家坐堂 → 自动复制行问题


  共有6564人关注过本帖树形打印复制链接

主题:自动复制行问题

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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
自动复制行问题  发帖心情 Post By:2013/10/21 23:04:00 [显示全部帖子]

开发指南自动复制行

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim nma() As String = {"A1","A2","A3","A4"}
'A表数据来源列
    Dim nmb() As String = {"B1"
,"B2","B3","B4"} 'B表数据接收列
    Dim dr As DataRow = DataTables("表B"
).AddNew
   
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
   
Next
End
If

 

要是不用逻辑列名,改用字符型的列如:

 

If e. DataCol.Name="客户" and AndAlso e.DataRow("客户")="AAA"

 Dim nma() As String = {"A1","A2","A3","A4"} 'A表数据来源列
    Dim nmb() As String = {"B1"
,"B2","B3","B4"} 'B表数据接收列
    Dim dr As DataRow = DataTables("表B"
).AddNew
   
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
   
Next
End
I

 

问题是每次重置列后,都会复制一遍,怎样才能只复制一次?


 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/21 23:39:00 [显示全部帖子]

能帮我写出代码吗?我现在还不行?

 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/22 6:18:00 [显示全部帖子]

以下是引用yan2006l在2013-10-22 1:58:00的发言:

你再增加一个辅助列得了:逻辑列“已复制”。然后代码加一点点进去:

if e.DataRow("已复制") = false then

e.DataRow("已复制") = true

   

    If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim nma() As String = {"A1","A2","A3","A4"}
'A表数据来源列
    Dim nmb() As String = {"B1"
,"B2","B3","B4"} 'B表数据接收列
    Dim dr As DataRow = DataTables("表B"
).AddNew
   
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
   
Next
    End
If

 

end if

谢谢!这样可以解决重复复制的问题,但我希望没有手动点击的动作,将复合条件的行完全自动复制到另一张表。


 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/22 7:46:00 [显示全部帖子]

以下是引用有点甜在2013-10-21 23:08:00的发言:
 这样的话,就需要在表B里存储表A的_Identify列。

 在新增复制之前,先用find查找表B是否有表A当前行的内容(比较_Identify),有就不新增/复制。
[此贴子已经被作者于2013-10-21 23:08:55编辑过]

A表_Identify的添加到表B(VMI1)的“调拨ID”列,下面的代码还是有错误,不知如何改,请指教,谢谢!

If e.DataCol.Name = "CustomerCode" AndAlso e.DataRow("CustomerCode") = "LOMBJ"
    Dim nma() As String = {"_Identify","StokvisPN","CustomerCode","实际发货数量"}
    Dim nmb() As String = {"调拨ID","StokvisPN","客户编码","数量"}
  
    Dim dr As DataRow= DataTables("VMI1入库")
    dr = e.DataTables("VMI1入库") .Find("调拨ID = '" & e.NewValue & "'")
    If dr IsNot Nothing Then
        e.Cancel = True
    Else
            Dim dr As DataRow = DataTables("VMI1入库").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = e.DataRow(nma(i))
            Next
       End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/22 22:11:00 [显示全部帖子]

刚试过了,报错“编译错误,变量dr在封闭块中隐藏变量“,错误代码: Dim dr As DataRow = DataTables("VMI1入库").AddNew

 

记得其它项目代码也有类似的报错,你让将所有的dr改成ndr就好了,我这次也试了ndr,还是报错。


 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/22 22:19:00 [显示全部帖子]

都改成pr了,还是不行,同样的报错。

 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/22 22:38:00 [显示全部帖子]

不报错了,但是每点击重置列还会增加重复的行。

 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/22 23:11:00 [显示全部帖子]

这次好了,太感谢了,不仅解决了大问题,我也学到了一些东西,你的代码我看懂了。


 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/25 17:41:00 [显示全部帖子]

在网络环境应用,“实际发货数量”连接一个外部数据库,其它表在同一个数据库中,测试时当重置列时报错,显示”调用的目标发生了异常,未找到'调拨ID'",实际已经复制了几行,但没有复制全,我怀疑是数据有问题,但不知如何解决。请帮忙!谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
tj-pacer
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/25 22:19:00 [显示全部帖子]

有调拨ID列,之前用内部表,数据是测试用的,没问题,定位到外部数据源后,就报错。

 回到顶部
总数 15 1 2 下一页