Foxtable(狐表)用户栏目专家坐堂 → 关于Datacolchanged事件的执行效率问题


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

主题:关于Datacolchanged事件的执行效率问题

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


加好友 发短信
等级:小狐 帖子:314 积分:2917 威望:0 精华:0 注册:2017/11/5 13:39:00
关于Datacolchanged事件的执行效率问题  发帖心情 Post By:2022/2/15 11:51:00 [只看该作者]

If e.DataTable.AllowEdit = True Then
    Dim apc As Table = Tables("生产工单_pc")
    Dim trv As WinForm.TreeView = e.Form.Controls("glist")
    trv.StopRedraw
    apc.StopRedraw
    Select Case e.DataCol.Name
        Case "选中"
            If e.NewValue = True Then
                e.DataRow("排产张数") = e.DataRow("未排产")
            Else
                e.DataRow("排产张数") = 0
            End If
        Case "排产张数"
            If e.DataRow.IsNull("单号") Then
                e.DataRow("未排产") = e.DataRow("订单明细_排单") - e.DataRow("已排产") - e.DataRow("排产张数")
            Else
                e.DataRow("未排产") = e.DataRow("订单明细_订单") - e.DataRow("已排产") - e.DataRow("排产张数")
            End If
            If e.DataRow("未排产") < 0 Then
                e.DataRow("未排产") = 0
            End If
            e.DataRow("排单库存平方") = e.DataRow("排产张数") * e.DataRow("单张库存平方")
            
            trv.BuildTree(e.DataTable, "品名|规格","选中 = 1")
            For Each nd As WinForm.TreeNode In trv.AllNodes
                Dim zl As String = nd.DataRow("种类")
                Dim gg As String = nd.DataRow("规格")
                Select Case nd.Level
                    Case 0
                        nd.Text = nd.text & "  (" & e.DataTable.Compute("Sum(排产张数)","种类 = '" & zl & "'and 选中 = 1") & "张)" & "  /" & format(e.DataTable.Compute("Sum(排单库存平方)","种类 = '" & zl & "'and 选中 = 1"),"0") & " 平方"
                    Case 1
                        nd.Text = nd.text & "  (" & e.DataTable.Compute("Sum(排产张数)","规格 = '" & gg & "'and 选中 = 1") & "张)"
                End Select
            Next
            apc.Sort = "选中 DESC"
    End Select
    apc.ResumeRedraw
    trv.ExpandAll
    trv.ResumeRedraw
End If


老师,关于这段代码     执行效率很低,因为一次选中的行最少都有几十行,下面 TreeView 控件仅需要选中结束后刷新一次即可,但是每次都会跟着计算刷新,效率非常低,是否有什么办法解决呢?

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


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

目录树的更新建议放到按钮:使用代码重置列,然后在刷新目录树

 回到顶部