Foxtable(狐表)用户栏目专家坐堂 → 代码运行很慢。请问怎么改好?


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

主题:代码运行很慢。请问怎么改好?

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
代码运行很慢。请问怎么改好?  发帖心情 Post By:2015/10/2 11:10:00 [只看该作者]

Dim strs() As String = {"收支维护","洽商维护","设计维护","工资维护","考勤维护","机具订单维护","预算计划维护","需用计划维护","采购订单维护","销售订单维护"}
Dim strs1() As String ={"收支管理","洽商汇总","设计汇总","工资发放","考勤","机具订单","预算计划","需用计划","采购订单","销售订单"}
For Each str As String In strs
    For Each str1 As String In strs1
        If Forms(str).Opened = True And Tables(str1).Current IsNot Nothing Then
            If e.Node.Level = 0 Then '如果单击的是第三层节点
                Dim tr As Row = Tables(str1).Current
                Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
                tr("合同编号") = dr("合同编号")
                e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
                e.Form.DropDownBox.CloseDropdown()
            End If
        End If
    Next
Next

上面是一个:下拉窗口目录树的单击代码。运行很慢。
 'If Forms("考勤维护").Opened = True Then
            'If e.Node.Level = 0 Then '如果单击的是第三层节点
                'Dim tr As Row = Tables("考勤").Current
                'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
                'tr("合同编号") = dr("合同编号")
                'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
                'e.Form.DropDownBox.CloseDropdown()
            'End If
        'End If
如果不用循环语句,只用单个的写,没问题。快的。

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15508 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2015/10/2 13:55:00 [只看该作者]

这是要做什么?怎么同时对每一个窗口进行循环,每一个窗口又要对所有的表进行操作呢?这么做不慢才怪呢!

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/10/2 15:19:00 [只看该作者]

If Forms("考勤维护").Opened = True Then
            If e.Node.Level = 0 Then '如果单击的是第三层节点
                Dim tr As Row = Tables("考勤").Current
                Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
                tr("合同编号") = dr("合同编号")
                e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
                e.Form.DropDownBox.CloseDropdown()
            End If
        End If
'

'ElseIf Forms("洽商维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("洽商汇总").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
'ElseIf Forms("设计维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("设计汇总").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
'ElseIf Forms("工资维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("工资发放").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
'ElseIf Forms("机具订单维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("机具订单").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
'ElseIf Forms("预算计划维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("预算计划").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
'ElseIf Forms("需用计划维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("需用计划").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
'ElseIf Forms("采购订单维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("采购订单").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
'ElseIf Forms("销售订单维护").Opened = True Then
    'If e.Node.Level = 0 Then '如果单击的是第三层节点
        'Dim tr As Row = Tables("销售订单").Current
        'Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        'tr("合同编号") = dr("合同编号")
        'e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        'e.Form.DropDownBox.CloseDropdown()
    'End If
我就是将上面的代码用:FOR EACH,简化。是不是简化得不对,有什么好办法?

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


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/10/2 15:47:00 [只看该作者]

 

 

Dim strs() As String = {"收支维护","洽商维护","设计维护","工资维护","考勤维护","机具订单维护","预算计划维护","需用计划维护","采购订单维护","销售订单维护"}
Dim strs1() As String ={"收支管理","洽商汇总","设计汇总","工资发放","考勤","机具订单","预算计划","需用计划","采购订单","销售订单"}
For i As Integer = 0 To strs.Length - 1
    If Forms(strs(i)).Opened Then
        Dim tr As Row = Tables(strs1(i)).Current
        If tr IsNot Nothing Then
            If e.Node.Level = 0 Then '如果单击的是第一层节点
                Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
                tr("合同编号") = dr("合同编号")
                e.Form.DropDownBox.Value = tr("合同编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
                e.Form.DropDownBox.CloseDropdown()
            End If
        End If
        Return
    End If
Next


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/10/2 18:05:00 [只看该作者]

谢谢,搞定。哎哟,放假,有还朋友帮助,太感谢了。

 回到顶部