Foxtable(狐表)用户栏目专家坐堂 → 数据字典的过滤


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

主题:数据字典的过滤

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


加好友 发短信
等级:六尾狐 帖子:1439 积分:10622 威望:0 精华:0 注册:2014/8/13 16:19:00
数据字典的过滤  发帖心情 Post By:2014/10/22 13:47:00 [只看该作者]

如果我将一列的数据字典设为数据表,但是我打开的时候,希望根据其他的字段进行筛选,这个怎么设置?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/10/22 14:28:00 [只看该作者]


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


加好友 发短信
等级:六尾狐 帖子:1439 积分:10622 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2014/10/22 14:53:00 [只看该作者]

谢谢。
写在prepareedit事件中吗?
每次我在这个事件中写代码,就发现系统显示不太正常。


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


加好友 发短信
等级:六尾狐 帖子:1439 积分:10622 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2014/10/22 14:54:00 [只看该作者]

Select Case e.Col.name
    Case "合同编号"

'
        If e.Row("委托人编码") Is Nothing Then
        Else
            Dim dmp As New TableDataMap
            dmp.DataTable = "合同清单" '指定数据来源表
            dmp.ValueCol = "编码" '指定取值列
            dmp.DisplayCol = "编码" '指定显示列
            '指定下拉列表时显示哪些列的数据
            dmp.ListCols = "编码,类型,单位名称,签订日,状态"
            dmp.Filter = "单位编码 = '" & e.Row("委托人编码") & "'"
            dmp.Sort = "签订日" '指定排序方式
            Tables("案件申报").Cols("合同编号").DataMap = dmp.CreateDataMap() '生成并设置DataMap
        End If
    Case Else
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/22 14:54:00 [只看该作者]

 不能用数据字典,数据字典不能这样用。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/22 14:56:00 [只看该作者]

 换一种思路吧,数据字典不能像你那样用的 http://www.foxtable.com/help/topics/2465.htm

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/10/22 14:56:00 [只看该作者]

数据字典最好不要动态,如果某些项目没有包括在字典中,那么这些项目就不能正常显示,显示的是空白


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


加好友 发短信
等级:六尾狐 帖子:1439 积分:10622 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2014/10/22 15:38:00 [只看该作者]

我换了种做法,在prepareedit事件中,加入以下代码:
Select Case e.Col.name
    Case "合同编号"
        If e.Row("委托人编码") Is Nothing  Then           
            e.Col.ComboList = ""
            e.cancel = True                         ‘不允许用户编辑
        ElseIf e.IsFocusCell   Then
            e.Col.ComboList = DataTables("合同清单").GetComboListString("编码","[单位编码] = '" & e.Row("委托人编码")  &  "'")
        End If
    Case Else
End Select

但是我的e.cancel = True好像没有起作用,还是可以通过键盘输入,这是什么原因?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/22 15:43:00 [只看该作者]

 只要执行了 e.Cancel = true 就不可能能输入,除非没有执行

 回到顶部