Foxtable(狐表)用户栏目专家坐堂 → 数据复制到后台


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

主题:数据复制到后台

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
数据复制到后台  发帖心情 Post By:2017/7/13 10:33:00 [只看该作者]

以下代码是销售明细表数复制到生产计划表,2个表是在已经加载的情况下复制的,如果生产计划表没有加载,直接复制到后台的生产计划表,代码如何?

'勾选[排产]后复制数据到生产计划,取消勾选则删除
If e.DataCol.Name = "排产" Then
    If e.DataRow("排产") = True Then
        'Dim tr As DataRow =DataTables("销售明细").find("订单编号 ='" & e.DataRow("订单编号") & "'") '只能找到1条记录
        Dim trs As List(Of DataRow) = DataTables("销售订单明细").Select("订单编号 ='" & e.DataRow("订单编号") & "'")
        For Each tr As DataRow In trs
        If tr IsNot Nothing Then
            Dim nma() As String = {"订单编号","客户","产品分类","产品型号","产品规格","订单数量","交货日期","备注"} '销售明细表数据来源列
            Dim nmb() As String = {"订单编号","客户","产品分类","产品型号","产品规格","订单数量","交货日期","生产要求"} '生产计划表数据接收列
            Dim dr As DataRow = DataTables("生产计划").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = tr(nma(i))
            Next
        End If
        Next
    Else
        If e.DataRow("排产") = False Then
            DataTables("生产计划").DeleteFor("订单编号 = '" & e.DataRow("订单编号")& "'")
        End If
    End If
End If


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


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

为什么不把表加载出来?你可以不加载数据,单纯加载表结构。

 

反过来 http://www.foxtable.com/webhelp/scr/2137.htm

 


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2017/7/13 11:03:00 [只看该作者]

1、如果加载表则要一同加载与生产计划相关联的表,我不想这样。

2、用数据合并的方法,如何修改我上面的代码?


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


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

AfterOpenProject事件执行下面代码得到临时表

 

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.ConnectionName = "数据源名称"
cmd.CommandText = "SELECT * From {生产计划} where 1=2"
dt = cmd.ExecuteReader(True)

vars("生产计划") = dt


 

然后写

 

If e.DataCol.Name = "排产" Then
    If e.DataRow("排产") = True Then
        'Dim tr As DataRow =DataTables("销售明细").find("订单编号 ='" & e.DataRow("订单编号") & "'") '只能找到1条记录
        Dim trs As List(Of DataRow) = DataTables("销售订单明细").Select("订单编号 ='" & e.DataRow("订单编号") & "'")
        For Each tr As DataRow In trs
        If tr IsNot Nothing Then
            Dim nma() As String = {"订单编号","客户","产品分类","产品型号","产品规格","订单数量","交货日期","备注"} '销售明细表数据来源列
            Dim nmb() As String = {"订单编号","客户","产品分类","产品型号","产品规格","订单数量","交货日期","生产要求"} '生产计划表数据接收列
            Dim dr As DataRow = vars("生产计划").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = tr(nma(i))
            Next

            dr.save
        End If
        Next
    Else
        If e.DataRow("排产") = False Then
            vars("生产计划").sqlDeleteFor("订单编号 = '" & e.DataRow("订单编号")& "'")
        End If
    End If
End If

[此贴子已经被作者于2017/7/13 11:29:59编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2017/7/18 14:46:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.ConnectionName = "数据源名称"
cmd.CommandText = "SELECT * From {生产计划} where 1=2"
dt = cmd.ExecuteReader(True)

vars("生产计划") = dt

 

1、以上代码能否写在窗口的AferLoad;2、如果生产计划表已经加载了有影响吗?


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


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

1、代码你写到哪里都可以;

 

2、是否加载,都不影响。


 回到顶部