Foxtable(狐表)用户栏目专家坐堂 → [求助]动态数据字典问题


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

主题:[求助]动态数据字典问题

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


加好友 发短信
等级:童狐 帖子:204 积分:1904 威望:0 精华:0 注册:2016/2/17 12:11:00
[求助]动态数据字典问题  发帖心情 Post By:2017/12/25 9:59:00 [只看该作者]

"表A"PrepareEdit表事件中代码:
If e.IsFocusCell Then '如果是焦点所在单元格
    If e.Col.Name = "第一列" Then
        If e.Row.IsNull("第二列") = False Then
            Dim dmp As New TableDataMap
            dmp.DataTable = "表B" '指定数据来源表
            dmp.ValueCol = "第三列" '指定取值列
            dmp.DisplayCol = "第四列" '指定显示列
            '指定下拉列表时显示哪些列的数据
            dmp.ListCols = "第四列"
            dmp.Sort = "第四列" '指定排序方式
            e.col.DataMap = dmp.CreateDataMap() '生成并设置DataMap
        Else
            e.Cancel = True
        End If
    End If
End If
"表A"StartEdit 事件代码:
If e.IsFocusCell Then '如果是焦点所在单元格
    If e.Col.Name = "第一列" Then
        If e.Row.IsNull("第二列") = False Then
            Dim dmp As New TableDataMap
            dmp.DataTable = "表B" '指定数据来源表
            dmp.ValueCol = "第三列" '指定取值列
            dmp.DisplayCol = "第四列" '指定显示列
            '指定下拉列表时显示哪些列的数据         
            dmp.ListCols = "第四列"   
            dmp.Filter = "第五列= '"& e.row("第二列") &"'"
            dmp.Sort = "第四列" '指定排序方式
            e.Col.DataMap = dmp.CreateDataMap() '生成并设置DataMap
        Else
            e.Cancel = True
        End If
    End If
End If
这样实现了我想在选中"表A""第一列"的时候根据"表A"本行"第二列"的内容显示不同的下拉列表,显示"表B""第四列"内容,取"表B""第三列"值。
但是有一点体验不太好,就是每次点开"表A""第一列","表A"其他行的"第二列"的内容如果和本行第二列内容不相同,根据设置的数据字典,这些行的"第一列"会显示空白,重新选中才会显示,请教如何改进。

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


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

 你这种是没办法的。数据字典重新生成后,不在数据字典里面的内容,就显示空白,这个是正常的。

 

 建议你用界面三处理 http://www.foxtable.com/webhelp/scr/2465.htm

 


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


加好友 发短信
等级:童狐 帖子:204 积分:1904 威望:0 精华:0 注册:2016/2/17 12:11:00
回复:(有点甜) 你这种是没办法的。数据字典重...  发帖心情 Post By:2017/12/25 10:25:00 [只看该作者]

好吧,谢谢了。
我还是用数据字典吧,因为要实现,取值是ID,显示是内容。为了增加可读性。。
还有一个问题是,怎么判断数据字典内容是否为空?因为第二列的内容决定第一列的数据字典,想要实现第二列更改时,如果数据字典内容为空,第一列值为-1.

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


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

以下是引用whyxd在2017/12/25 10:25:00的发言:
好吧,谢谢了。
我还是用数据字典吧,因为要实现,取值是ID,显示是内容。为了增加可读性。。
还有一个问题是,怎么判断数据字典内容是否为空?因为第二列的内容决定第一列的数据字典,想要实现第二列更改时,如果数据字典内容为空,第一列值为-1.

 

你可以设置数据字典和下拉窗口一起的。选择的时候,用下拉窗口,选择结束以后,设置数据字典。

 

新问题,表数据是根据数据字典的值显示内容的,你无法修改显示的值,你只能修改表数据。


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


加好友 发短信
等级:童狐 帖子:204 积分:1904 威望:0 精华:0 注册:2016/2/17 12:11:00
回复:(有点甜)以下是引用whyxd在2017/12/25 10:25:...  发帖心情 Post By:2017/12/25 11:18:00 [只看该作者]

如何判断下拉选择结束??


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


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

以下是引用whyxd在2017/12/25 11:18:00的发言:
如何判断下拉选择结束??

 

如果是界面三,窗口关闭的时候,不就是下拉结束?

 

如果是数据字典,afterEdit事件不就是下拉结束?


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


加好友 发短信
等级:童狐 帖子:204 积分:1904 威望:0 精华:0 注册:2016/2/17 12:11:00
回复:(有点甜)以下是引用whyxd在2017/12/25 11:18:...  发帖心情 Post By:2017/12/25 15:04:00 [只看该作者]

知道了,谢谢


 回到顶部