Foxtable(狐表)用户栏目专家坐堂 → 劳驾帮忙优化代码


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

主题:劳驾帮忙优化代码

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/9 14:33:00 [显示全部帖子]

  代码无法优化。

 

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

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/9 15:01:00 [显示全部帖子]

以下是引用hbhb在2015-1-9 14:47:00的发言:
慢的一比吊烧,就没有办法提高速度?

 

具体多慢,例子发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/9 16:25:00 [显示全部帖子]

Dim t As Table = Tables("上报资料")
Dim dt As DataTable = DataTables("物料信息")
Dim scs As String = ""
Dim dcs As String = ""

For Each c As Col In t.Cols
    Dim cname As String = t.Rows(1)(c.Name)
    If dt.DataCols.Contains(cname) Then
        dcs &= cname & ","
        scs &= c.Name & ","
    End If
Next

Dim f As new Filler
f.SourceTable = DataTables("上报资料") '指定数据来源
f.SourceCols = scs.Trim(",") '指定数据来源列
f.DataTable = DataTables("物料信息") '指定数据接收表
f.DataCols = dcs.Trim(",") '指定数据接收列
f.Filter = "_Identify >= " & t.Rows(2)("_Identify")
f.Fill() '填充数据


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/9 17:39:00 [显示全部帖子]

数据类型不一样也可以填充啊,不会报错啊。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/11 17:34:00 [显示全部帖子]

 几秒啊

 

Dim t As Table = Tables("上报资料")
Dim dt As DataTable = DataTables("物料信息")
Dim scs As new List(Of String)
Dim dcs As new List(Of String)

For Each c As Col In t.Cols
    Dim cname As String = t.Rows(1)(c.Name)
    If dt.DataCols.Contains(cname) Then
        dcs.Add(cname)
        scs.add(c.name)
    End If
Next
dt.StopRedraw
For Each dr As DataRow In t.DataTable.Select("_Identify >= " & t.Rows(2)("_Identify"))
    Dim ndr As DataRow = dt.AddNew
    For i As Integer = 0 To scs.Count - 1
        ndr(dcs(i)) = dr(scs(i))
    Next
Next
dt.ResumeRedraw


 回到顶部