Foxtable(狐表)用户栏目专家坐堂 → 状态栏反应慢?


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

主题:状态栏反应慢?

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


加好友 发短信
等级:幼狐 帖子:157 积分:2019 威望:0 精华:0 注册:2012/5/29 15:35:00
状态栏反应慢?  发帖心情 Post By:2018/4/14 10:59:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180414105334.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看图片点击可在新窗口打开查看状态栏 RadioButton 反应慢,不知何原因。

全部结论项 状态钮 代码 只有一行 CurrentTable.Filter = ""
显示二维码项           也只有一行 CurrentTable.Filter = "[是否封面项] = true"
[此贴子已经被作者于2018/4/14 11:02:43编辑过]

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


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 11:10:00 [只看该作者]

是不是加载了很多数据?然后有很多的表达式计算?

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


加好友 发短信
等级:幼狐 帖子:157 积分:2019 威望:0 精华:0 注册:2012/5/29 15:35:00
  发帖心情 Post By:2018/4/14 11:27:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180414112543.png
图片点击可在新窗口打开查看

这个表有36条记录
没有表达式列

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


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 11:36:00 [只看该作者]

有没有在prepareedit设置字典、目录树的用法。

具体上传实例看看

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


加好友 发短信
等级:幼狐 帖子:157 积分:2019 威望:0 精华:0 注册:2012/5/29 15:35:00
  发帖心情 Post By:2018/4/14 12:57:00 [只看该作者]

原因是 prepareedit代码复杂了。我把 prepareedit中代码注释了,速度上来了,但是,我想要效果是根据不同记录,产生不同的下拉列表。

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180414124909.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180414125045.png
图片点击可在新窗口打开查看
如图
A表中记录 要引用表B 的对应项,形成下拉列表
如何做 效率高些?
       e.Col.ComboList = ""
       'Dim dr As DataRow
       dr = DataTables(Vars("cylb_lwg")).Find("列表项 = '"  & e.Row("列表标志") & "'")
       If dr IsNot Nothing Then '如果找到的话
            Select Case dr("列表值")
                Case "[date]"
                    e.Col.DropForm = "下拉日期"
                Case Else
                   e.Col.DropForm = ""
                   e.Col.ComboList = DataTables(Vars("cylb_lwg")).GetComboListString("列表值","[列表项] = '" & e.Row("列表标志") & "'")
                    '
            End Select

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


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 14:34:00 [只看该作者]


If e.IsFocusCell Then '如果是焦点所在单元格
    
If e.Col.Name = "县市" Then '如果正在编辑的是县市列
…………
    
End If
End
 
If

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


加好友 发短信
等级:幼狐 帖子:157 积分:2019 威望:0 精华:0 注册:2012/5/29 15:35:00
  发帖心情 Post By:2018/4/14 15:38:00 [只看该作者]

在表的prepareedit改成这段代码,感觉还是慢。
If e.IsFocusCell Then
    If e.Col.Name = "统计表项" Then
        If e.Row("是否统计表项") = True Then
            e.Col.DropForm = ""
            e.Col.ComboList = DataTables(Vars("tjbx_lwg")).GetComboListString("统计项","[统计表名] = '机电类统计表'","序号")
        Else
            e.Cancel = True
        End If
    End If
    If  e.Col.Name = "项目值" Then
        e.Col.ComboList = ""
        Dim dr As DataRow
        dr = DataTables(Vars("cylb_lwg")).Find("列表项 = '"  & e.Row("列表标志") & "'")
        If dr IsNot Nothing Then '如果找到的话
            If dr("列表值") = "[date]" Then
                e.Col.DropForm = "下拉日期"
            Else
                e.Col.DropForm = ""
                e.Col.ComboList = DataTables(Vars("cylb_lwg")).GetComboListString("列表值","[列表项] = '" & e.Row("列表标志") & "'")
                
            End If
        End If
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 16:00:00 [只看该作者]

具体上传实例测试

If e.IsFocusCell Then
    If e.Col.Name = "统计表项" Then
        If e.Row("是否统计表项") = True Then
            e.Col.DropForm = ""
            e.Col.ComboList = DataTables(Vars("tjbx_lwg")).GetComboListString("统计项","[统计表名] = '机电类统计表'","序号")
        Else
            e.Cancel = True
        End If
    elseIf  e.Col.Name = "项目值" Then
        e.Col.ComboList = ""
        Dim dr As DataRow
        dr = DataTables(Vars("cylb_lwg")).Find("列表项 = '"  & e.Row("列表标志") & "'")
        If dr IsNot Nothing Then '如果找到的话
            If dr("列表值") = "[date]" Then
                e.Col.DropForm = "下拉日期"
                e.Col.ComboList = nothng
            Else
                e.Col.DropForm = nothng
                e.Col.ComboList = DataTables(Vars("cylb_lwg")).GetComboListString("列表值","[列表项] = '" & e.Row("列表标志") & "'")
                
            End If
        End If
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:157 积分:2019 威望:0 精华:0 注册:2012/5/29 15:35:00
  发帖心情 Post By:2018/4/14 16:33:00 [只看该作者]

调整了一下代码位置
在PositionChanged事件中的代码
If e.Table.Current Is Nothing Then '如果Current为Nothing
    '没有选定行时执行的代码
    Vars("lbbz_lwg") = Nothing
Else
    '有选定行时执行的代码
    Vars("lbbz_lwg") =  CurrentTable.Current("列表标志")
    Vars("lbbz_lwg") = DataTables("常用列表").GetComboListString("列表值","列表项 = '" & Vars("lbbz_lwg") & "'")
End If

在PrepareEdit的代码
If e.IsFocusCell Then
    If e.Col.Name = "统计表项" Then
        If e.Row("是否统计表项") = True Then
            e.Col.DropForm = ""
            e.Col.ComboList = DataTables(Vars("tjbx_lwg")).GetComboListString("统计项","[统计表名] = '机电类统计表'","序号")
        Else
            e.Cancel = True
        End If
    End If
    If  e.Col.Name = "项目值" Then
        If Vars("lbbz_lwg") = "[Date]" Then
            e.Col.ComboList = Nothing
            e.Col.DropForm = "下拉日期"
        Else
            e.Col.DropForm = Nothing 
            e.Col.ComboList = Vars("lbbz_lwg")
            
        End If
    End If

End If

感觉 好像快了许多 ,正在测试中……

 回到顶部