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


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

主题:数据表字典

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


加好友 发短信
等级:三尾狐 帖子:727 积分:7517 威望:0 精华:0 注册:2017/2/3 10:29:00
数据表字典  发帖心情 Post By:2020/1/31 23:46:00 [只看该作者]

老师,我在学习数据表字典作为下拉框选取数据,但不知道filter怎么用。下列代码中filter的使用方法有问题,把第二列都 filter了,您帮忙看看。谢谢

Dim dmp As New TableDataMap
dmp.DataTable = "表A" '指定数据来源表
dmp.ValueCol = "第二列" '指定取值列
dmp.DisplayCol = "第二列" '指定显示列
'指定下拉列表时显示哪些列的数据
dmp.ListCols = "第二列" 

dmp.Filter = "[第一列] = '" & Tables("表A").current("第一列") & "'"

Tables("表A").Cols("第二列").DataMap = dmp.CreateDataMap() '生成并设置DataMap

另外,上述代码最好放在哪个事件中,在哪里关闭datamap?
[此贴子已经被作者于2020/1/31 23:54:18编辑过]

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


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

这个表AfterSelChange事件

Dim c As Col = e.Table.Cols(e.NewRange.ColSel)

If c.Name = "第二列" AndAlso e.OldRange.RowSel <> e.NewRange.RowSel  '如果选择的是不同的行
    If e.OldRange.RowSel >=  0  AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then  '而且原来选择的是一个有效的数据行
        Dim r  As  Row = e.Table.Rows(e.NewRange.Rowsel) '获得新选择的行
        If r.IsNull("第一列") Then
            c.DataMap = Nothing
        Else
            Dim dmp As New TableDataMap
            dmp.DataTable = "表A" '指定数据来源表
            dmp.ValueCol = "第二列" '指定取值列
            dmp.DisplayCol = "第二列" '指定显示列
            '指定下拉列表时显示哪些列的数据
            dmp.ListCols = "第二列"
            dmp.Filter = "[第一列] = '" & r("第一列") & "'"
            c.DataMap = dmp.CreateDataMap()
        End If
    End  If
End If

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


加好友 发短信
等级:三尾狐 帖子:727 积分:7517 威望:0 精华:0 注册:2017/2/3 10:29:00
  发帖心情 Post By:2020/2/1 11:18:00 [只看该作者]


老师,将上述代码拷贝到 afterselchange 后,在mouseleavecell中加人代码: 
Tables("表A").Cols("第二列").DataMap = Nothing  
有如下情况:
1:重新启动狐表,第二列的数据如图。点击第九行的第二列后 第二列 1~7行数据都没有了。
2:第二列的数据不可编辑





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

图片点击可在新窗口打开查看此主题相关图片如下:捕获1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/2/1 11:19:40编辑过]

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


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

去掉mouseleavecell代码,没有必要

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


加好友 发短信
等级:三尾狐 帖子:727 积分:7517 威望:0 精华:0 注册:2017/2/3 10:29:00
  发帖心情 Post By:2020/2/1 15:16:00 [只看该作者]

老师,我把例子传上来,点击第二列,就会有许多行第二列的内容被隐藏


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip



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


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

嗯,数据字典是对整列起作用的,经过筛选后,数据字典不存在的数据就无法显示了。

建议改为使用下拉窗口吧http://www.foxtable.com/webhelp/topics/2116.htm

 回到顶部