Foxtable(狐表)用户栏目专家坐堂 → [求助]字典很卡求助


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

主题:[求助]字典很卡求助

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
[求助]字典很卡求助  发帖心情 Post By:2020/1/19 17:34:00 [只看该作者]

数据字典很卡,狐表菜单要等很久才能显示。
这样的数据字典在商用实际项目中是否可行?

求助优化,统一后台管理数据字典
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据词典很卡求助.foxdb


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/19 20:11:00 [只看该作者]

1、MainTableChanging事件会导致死循环,去掉,如果要打开窗口,到MainTableChanged事件写代码:
If MainTable.Name = "列项设置" Then
    Forms("列项设置").Open()
End If

2、这种数据字典的设置不适合放在prepareedit事件,会导致假死,放到AfterSelChange事件

Dim dr As DataRow
If e.OldRange.RowSel <> e.NewRange.RowSel OrElse e.OldRange.ColSel <> e.NewRange.ColSel Then
Dim c As Col = e.Table.Cols(e.NewRange.ColSel)
    If c.IsString Then
        dr=DataTables("列项设置").find("表名='" & e.Table.name & "' and 列名='" & c.Name & "' and 下拉选项 Is not null and 停用=false")
        If dr IsNot Nothing Then
            If dr("多值字段")=True Then
                DataTables(e.Table.name).DataCols(c.name).ExtendType = ExtendTypeEnum.Values
            ElseIf dr("多值字段")=False Then
                DataTables(e.Table.name).DataCols(c.name).ExtendType = ExtendTypeEnum.none
            End If
            c.AllowDirectType=dr("允许编辑")
            c.combolist=dr("下拉选项")
        Else
            c.combolist=""
        End If
    End If
End If

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)1、MainTableChanging事件会导致死循...  发帖心情 Post By:2020/1/20 11:16:00 [只看该作者]

群主,窗口控件录入时要根据 允许编辑的值  确定是否允许控件手动录入还是只能下拉选择录入,下面代码怎么修改? 求助

If e.Sender.Gettype.name = "ComboBox" AndAlso e.Sender.BindingField > "" Then
    Dim ary() As String = e.Sender.BindingField.Split(".")
    Dim filter As String = "表名 = '" & ary(0) & "' and 列名 = '" & ary(1) & "' and 停用 = false"
    Dim fdr As DataRow = DataTables("列项设置").Find(filter)
    'If fdr IsNot Nothing Then
    If fdr IsNot Nothing And fdr("允许编辑") = True Then
            'e.sender.AllowDirectType= True
            e.sender.ReadOnly= True
        e.sender.ComboList = fdr("下拉选项")
    End If
    If fdr IsNot Nothing And fdr("允许编辑") = False Then
            e.sender.ReadOnly= False
            'e.sender.AllowDirectType= False
        e.sender.ComboList = fdr("下拉选项")
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/20 11:44:00 [只看该作者]

代码放到enter事件

e.sender.ReadOnly= BooleanEnum.True  :http://www.foxtable.com/webhelp/topics/0749.htm

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
  发帖心情 Post By:2020/1/20 12:17:00 [只看该作者]

群主还有问题,第四列不允许编辑了,要能下拉选择,求助

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/20 13:46:00 [只看该作者]

    Dim fdr As DataRow = DataTables("列项设置").Find(filter)
    'If fdr IsNot Nothing Then
    If fdr IsNot Nothing
        If fdr("允许编辑") = True Then
            'e.sender.AllowDirectType= True
            e.sender.ReadOnly = BooleanEnum.False
            e.sender.ComboList = fdr("下拉选项")
        Else
            e.sender.ReadOnly = BooleanEnum.True
            'e.sender.AllowDirectType= False
            'e.sender.ComboList = fdr("下拉选项")
        End If
    End If

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)    Dim fdr As DataRow =...  发帖心情 Post By:2020/1/20 14:25:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:还是有不行.foxdb


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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
  发帖心情 Post By:2020/1/20 14:28:00 [只看该作者]

群主,不能编辑的时候,还是不能下拉,辛苦再看看了
[此贴子已经被作者于2020/1/20 14:47:24编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/20 14:52:00 [只看该作者]

不能编辑,当然也就不能下拉


If e.Sender.Gettype.name = "ComboBox" AndAlso e.Sender.BindingField > "" Then

    Dim ary() As String = e.Sender.BindingField.Split(".")
    Dim filter As String = "表名 = '" & ary(0) & "' and 列名 = '" & ary(1) & "' and 停用 = false"
    Dim fdr As DataRow = DataTables("列项设置").Find(filter)
    If fdr IsNot Nothing
        e.sender.ComboList = fdr("下拉选项")
        e.Sender.AllowEditValue = fdr("允许编辑")
    End If
End If

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
  发帖心情 Post By:2020/1/20 15:34:00 [只看该作者]

群主,表里可以了,但是在窗口里筛选失效,辛苦有空了再看看了
[此贴子已经被作者于2020/1/20 18:12:56编辑过]

 回到顶部
总数 44 1 2 3 4 5 下一页