Foxtable(狐表)用户栏目专家坐堂 → 表单元格下拉多列取值问题


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

主题:表单元格下拉多列取值问题

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
表单元格下拉多列取值问题  发帖心情 Post By:2017/6/29 22:37:00 [只看该作者]

请教老师,下面代码怎样修改实现表的单元格下拉多列取值填入,取值列为“系数”  这里无法使用数据字典

 

If e.IsFocusCell Then
    If e.Col.Name = "提取系数" Then
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "SELECT DISTINCT 系数 岗位 F rom {管理系数} Where [系数] = '" & e.Row("提取系数") & "'"
        dt = cmd.ExecuteReader
        e.Col.Combolist = dt.SQLGetComboListString("系数") & "|" dt.SQLGetComboListString("岗位")
    End If
End If


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/29 23:02:00 [只看该作者]

这个意思?

 

        cmd.CommandText = "SELECT DISTINCT 系数 + ',' + 岗位 as 值 From {管理系数} Where [系数] = '" & e.Row("提取系数") & "'"
        dt = cmd.ExecuteReader
        e.Col.Combolist = dt.GetComboListString("值")


还是说这样的?

 

http://www.foxtable.com/webhelp/scr/0581.htm

 

http://www.foxtable.com/webhelp/scr/2653.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/6/30 11:00:00 [只看该作者]

老师,帮助里面我看了,都是从加载进来的表提取的,如果要取值表不加载进来,无法取值

如果不加载要取值的表(非动态数据),不知道怎样从后台提取多列下拉,最终的结果想实现从后台提取数据,在表的单元格下拉可见

 

比如       0.5|副总

             0.4|经理

             0.3|副经理

             ....

            表的单元格取值为0.5或0.4 或0.3

 

1楼代码,现在得到的下拉是

 

0.1

0.2

0.3

副总

经理

副经理

 

 

 

 

[此贴子已经被作者于2017/6/30 11:18:21编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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


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


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

1、不要在prepareEdit事件写你那段代码,prepareEdit执行的频率很高的,你的查询代码很耗时。

 

2、如果要设置,参考代码

 

Dim dt As DataTable = DataTables("表A")
Dim mdm As New MultiDataMap
For Each dr As DataRow In dt.Select("")
    mdm.Add(dr("第一列") & "|" & dr("第二列") & "|" & dr("第三列"))
Next
mdm.ValueCol = 0
mdm.DisplayCol = 1
Tables("表B").Cols("第一列").DataMap = mdm.CreateDataMap()


 回到顶部