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


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

主题:状态栏反应慢?

帅哥哟,离线,有人找我吗?
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编辑过]

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


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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
xxcwdlwgo
  3楼 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
xxcwdlwgo
  4楼 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
xxcwdlwgo
  5楼 | 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

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

 回到顶部