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


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

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

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)这段代码去掉If dr("多值字段")=True...  发帖心情 Post By:2020/1/21 15:23:00 [只看该作者]

去掉报错

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,窗口录入下拉有问题不能限制手动录入,Enter
详细错误信息:
未找到类型“ComboBox”的公共成员“AllowDirectType”。

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


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

改为AllowEditValue 

e.Sender.AllowEditValue = fdr("允许编辑")

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)改为AllowEditValue e.Sender.A...  发帖心情 Post By:2020/1/21 16:01:00 [只看该作者]

If e.Sender.Gettype.name = "ComboBox" AndAlso e.Sender.BindingField > "" Then
    
    Dim ary() As String = e.Sender.BindingField.Split(".")
    Dim r As Row = Tables(ary(0)).Current
    If r IsNot Nothing Then
        Dim filter As String = "表名 = '" & ary(0) & "' and 列名 = '" & ary(1) & "' and 下拉选项 Is not null and 停用=false  and ','+条件值+',' like '%," & r("列项条件列") & ",%'"
        Dim fdr As DataRow = DataTables("列项设置").Find(filter)
        
        If fdr IsNot Nothing Then
            e.sender.ComboList = fdr("下拉选项")
            e.Sender.AllowEditValue = fdr("允许编辑")
        End If
        
        If fdr Is Nothing Then
            Dim dr As DataRow
            dr = DataTables("列项设置").Find("表名='" & ary(0) & "' and 列名='" & ary(1) & "' and 下拉选项 Is not null and 停用=false and 条件值='其他'")
            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
                e.Sender.AllowEditValue = fdr("允许编辑")
                e.sender.ComboList = dr("下拉选项")
            Else
                e.sender.combolist= " "
            End If
        End If
    End If
End If

群主
当 列项条件列 为空,或 列项条件列的值不在 列项设置表的条件值里,报错

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,窗口录入下拉有问题不能限制手动录入,Enter
详细错误信息:
未将对象引用设置到对象的实例。


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


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

e.Sender.AllowEditValue = dr("允许编辑")

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)e.Sender.AllowEditValue = dr("允许...  发帖心情 Post By:2020/4/14 22:11:00 [只看该作者]

群主,再请教一下
列项设置 表里的 列项条件列,允许为空时,下面代码怎么修改求助
 
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
 
窗口与控件事件
 
窗口录入下拉有问题不能限制手动录入_Enter
 
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
 
 上面代码,当列项设置 表里的 列项条件列为空时,没有下拉选项,想也实现有下拉选项,求助


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


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

没看懂。都没有选项,下拉什么?

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)没看懂。都没有选项,下拉什么?  发帖心情 Post By:2020/4/15 9:55:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看

想实现第一列下拉
1  2  等于条件值的,对应 下拉选项
3 有条件值,不等于 1 2 ,对应 其他 下拉选项
4 没有列项条件列,条件,及没有条件值时,下拉选项值为1234

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


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

没有条件值时,下拉选项值为所有数据?判断一下条件如果是空的,直接取所有下拉选项数据不就行了

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)没有条件值时,下拉选项值为所有数据...  发帖心情 Post By:2020/4/15 10:56:00 [只看该作者]

尝试了坛主的,加条件,搞不懂,辛苦坛主出手帮忙,先多谢了

我的公司不让上论坛网站,用手机上论坛,发自己的有问题代码上来比较麻烦,要电脑转到微信再到手机论坛,图片文字大小不一

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


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

试试

If e.Sender.Gettype.name = "ComboBox" AndAlso e.Sender.BindingField > "" Then
    
    Dim ary() As String = e.Sender.BindingField.Split(".")
    Dim r As Row = Tables(ary(0)).Current
    If r IsNot Nothing Then
        Dim dr As DataRow
        If  r.IsNull("列项条件列") = False
            Dim filter As String = "表名 = '" & ary(0) & "' and 列名 = '" & ary(1) & "' and 下拉选项 Is not null and 停用=false  and ','+条件值+',' like '%," & r("列项条件列") & ",%'"
            Dim fdr As DataRow = DataTables("列项设置").Find(filter)
            
            If fdr IsNot Nothing Then
                e.sender.ComboList = fdr("下拉选项")
                e.Sender.AllowEditValue = fdr("允许编辑")
            Else
                dr = DataTables("列项设置").Find("表名='" & ary(0) & "' and 列名='" & ary(1) & "' and 下拉选项 Is not null and 停用=false and 条件值='其他'")
                If dr IsNot Nothing Then
                    e.Sender.AllowEditValue = dr("允许编辑")
                    e.sender.ComboList = dr("下拉选项")
                Else
                    e.sender.combolist= " "
                End If
            End If
        Else
            Dim d As String = DataTables("列项设置").GetComboListString("下拉选项","表名='" & ary(0) & "' and 列名='" & ary(1) & "' and 下拉选项 Is not null and 停用=false")
            If d > "" Then
                e.Sender.AllowEditValue = dr("允许编辑")
                e.sender.ComboList = d
            Else
                e.sender.combolist= " "
            End If
        End If
    End If
End If

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