Foxtable(狐表)用户栏目专家坐堂 → 请教跨表复制数据


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

主题:请教跨表复制数据

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
请教跨表复制数据  发帖心情 Post By:2013/11/25 10:30:00 [只看该作者]

请教各位老师:

 

我的情况是,一个项目报价,有N张图纸,报价后,客户可能只挑其中N张图纸下单。我需求是 在报价表选定客户下单的项目后,报价表 和 报价明细表 的数据能自动复制到 订单表 和 订单明细表 中 。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/25 10:37:00 [只看该作者]

复制数据是很简单的:

http://www.foxtable.com/help/topics/0680.htm

http://www.foxtable.com/help/topics/1533.htm

http://www.foxtable.com/help/topics/2292.htm

 

先看看上面的帮助,尝试自己解决一下,如果搞不定,就做个简单的例子发上来(不用整个项目上传),我们帮你搞定,以后你参照着写。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/25 10:38:00 [只看该作者]

可以考虑使用数据填充器http://www.foxtable.com/help/topics/0680.htm

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2013/11/25 10:52:00 [只看该作者]

谢谢狐爸,我先试试看~

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2013/11/25 21:21:00 [只看该作者]

 

 

If e.DataCol.Name = "受注" AndAlso e.DataRow("受注") = True Then
    Dim nma() As String = {"客户代码","项目号","报价单编号","业务担当","采购担当","备注"} 'A表数据来源列
    Dim nmb() As String = {"客户代码","项目号","报价单编号","业务担当","采购担当","备注"} 'B表数据接收列
    Dim dr As DataRow = DataTables("项目订单").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
End If

 

上述代码,我想实现 选定 逻辑列 “受注”的行变成锁定状态,后面加多一个逻辑列 “取消受注”,选定后,行解锁,“受注”状态取消,对应复制的数据也删除,请问代码如何写?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/11/25 21:30:00 [只看该作者]

 嗯嗯,楼主,可以参考一下帮助
 

 或者参考一个例子


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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2013/11/26 8:12:00 [只看该作者]

1、不需要两个逻辑列,一个“受注”逻辑列即可

 

2、不需要锁定行,用PrepareEdit事件动态控制:

http://www.foxtable.com/help/topics/0605.htm

 

将PrepareEdit事件代码设置为:

 

if e.Col.Name <> "受注" AndAlso e.Row("受注") = True Then 

    e.Cancel = true

End If

 

3、DataColChanged事件代码改为:

 

If e.DataCol.Name = "受注" Then
    If  e.DataRow("受注") = True Then ‘如果勾选
        Dim nma() As String = {"客户代码","项目号","报价单编号","业务担当","采购担当","备注"} 'A表数据来源列
        Dim nmb() As String = {"客户代码","项目号","报价单编号","业务担当","采购担当","备注"} 'B表数据接收列
        Dim dr As DataRow = DataTables("项目订单").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = e.DataRow(nma(i))
        Next
    Else ’如果是取消勾选
        DataTables("项目订单").Deletefor("报价单编号 = '" & e.DataRow("报价单编号") & "'")  '删除对应报价单号的行
    End If
End If


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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2013/11/26 21:01:00 [只看该作者]

谢谢!

 

如果想再完善些 项目报价 表 的 受注 取消打钩  项目报价明细 表 的 受注 也一起取消打钩 请问代码如何实现?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/11/26 21:29:00 [只看该作者]

 回复8楼,代码参考:

If e.DataCol.Name = "受注" Then
    If  e.DataRow("受注") = True Then '如果勾选
        Dim nma() As String = {"客户代码","项目号","报价单编号","业务担当","采购担当","备注"} 'A表数据来源列
        Dim nmb() As String = {"客户代码","项目号","报价单编号","业务担当","采购担当","备注"} 'B表数据接收列
        Dim dr As DataRow = DataTables("项目订单").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = e.DataRow(nma(i))
        Next
    Else '如果是取消勾选
        DataTables("项目订单").Deletefor("报价单编号 = '" & e.DataRow("报价单编号") & "'")  '删除对应报价单号的行
        DataTables("项目报价明细").ReplaceFor("受注", False, "报价单编号 = '" & e.DataRow("报价单编号") & "'")
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2013/11/26 22:05:00 [只看该作者]

谢谢指教!

 回到顶部