以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据字典的过滤 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58695) |
-- 作者:newsun2k -- 发布时间:2014/10/22 13:47:00 -- 数据字典的过滤 如果我将一列的数据字典设为数据表,但是我打开的时候,希望根据其他的字段进行筛选,这个怎么设置? |
-- 作者:狐狸爸爸 -- 发布时间:2014/10/22 14:28:00 -- 参考: http://www.foxtable.com/help/topics/2653.htm
|
-- 作者:newsun2k -- 发布时间:2014/10/22 14:53:00 -- 谢谢。 写在prepareedit事件中吗? 每次我在这个事件中写代码,就发现系统显示不太正常。 |
-- 作者:newsun2k -- 发布时间: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
|
-- 作者:有点甜 -- 发布时间:2014/10/22 14:54:00 -- 不能用数据字典,数据字典不能这样用。 |
-- 作者:有点甜 -- 发布时间:2014/10/22 14:56:00 -- 换一种思路吧,数据字典不能像你那样用的 http://www.foxtable.com/help/topics/2465.htm
|
-- 作者:狐狸爸爸 -- 发布时间:2014/10/22 14:56:00 -- 数据字典最好不要动态,如果某些项目没有包括在字典中,那么这些项目就不能正常显示,显示的是空白 |
-- 作者:newsun2k -- 发布时间: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好像没有起作用,还是可以通过键盘输入,这是什么原因?
|
-- 作者:有点甜 -- 发布时间:2014/10/22 15:43:00 -- 只要执行了 e.Cancel = true 就不可能能输入,除非没有执行 |