Foxtable(狐表)用户栏目专家坐堂 → [求助]按条件批量更新列内容


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

主题:[求助]按条件批量更新列内容

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


加好友 发短信
等级:幼狐 帖子:108 积分:1179 威望:0 精华:0 注册:2015/1/19 15:16:00
[求助]按条件批量更新列内容  发帖心情 Post By:2017/12/23 15:49:00 [只看该作者]

 在dataColChanged写如下代码If e.DataCol.Name = "料件品号" Then
    Dim t As DataTable
    Dim s As String
    Dim t1 As String = E.NewValue
    Dim q As new QueryBuilder
    q.ConnectionName = "ERP"
    q.TableName = "临时"
    q.SelectString =  " Select MV002 AS 采购员 Fro m {INVMB} LEFT JOIN {CMSMV} ON MB067=MV001 WHERE MB001 = '" & t1 & "'"
    t = q.Build
    For Each r As DataRow In t.DataRows
        s = s + r("采购员")
    Next
    e.DataRow("采购员") = s
    DataTables.Unload("临时")
End If
实现料件品号变更后,采购员列自动取我们ERP数据库中对应的采购员信息。目前存在的问题就是运行速度太慢,复制几千个料件品号黏贴进狐表后,每秒处理十几行。有其他方法实现类似功能不?或者做个按钮,一下处理全部的行,要怎么实现?麻烦大家了 

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/23 15:59:00 [只看该作者]

1、如果采购员的数据不多,可以作为查询表一次性加载进来,进行操作,每一行数据都到后台取值是很慢的

2、类似

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.ConnectionName = "ERP"
cmd.CommandText = "Select MV002 AS 采购员 From {INVMB} LEFT JOIN {CMSMV} ON MB067=MV001"
dt = cmd.ExecuteReader()

For Each r As Row In Tables("xxx表").Rows
    r("采购员") = dt.GetComboListString("MB001 = '" & r("料件品号") & "'")
Next
[此贴子已经被作者于2017/12/23 16:00:15编辑过]

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


加好友 发短信
等级:幼狐 帖子:108 积分:1179 威望:0 精华:0 注册:2015/1/19 15:16:00
  发帖心情 Post By:2017/12/23 16:33:00 [只看该作者]

料件品号信息台多,10万+,所以全部导进的话,速度也慢。最好是只导进表里存在的料件品号对应采购

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/23 16:59:00 [只看该作者]

不是导入料件品号啊,是导入采购员信息啊,采购员大不了几十上百个?

如果采购员只能通过料件品号才能关联查询,那就没有办法了。不知道你业务逻辑是怎样的,只能从逻辑层面来优化了,不是代码能够解决的

 回到顶部