以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  状态栏反应慢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117545)

--  作者:xxcwdlwgo
--  发布时间:2018/4/14 10:59:00
--  状态栏反应慢?

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


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

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

--  作者:有点蓝
--  发布时间:2018/4/14 11:10:00
--  
是不是加载了很多数据?然后有很多的表达式计算?
--  作者:xxcwdlwgo
--  发布时间:2018/4/14 11:27:00
--  

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

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

--  作者:有点蓝
--  发布时间:2018/4/14 11:36:00
--  
有没有在prepareedit设置字典、目录树的用法。

具体上传实例看看

--  作者:xxcwdlwgo
--  发布时间: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

--  作者:有点蓝
--  发布时间:2018/4/14 14:34:00
--  

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

--  作者:xxcwdlwgo
--  发布时间: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

--  作者:有点蓝
--  发布时间: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
--  发布时间: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

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