Foxtable(狐表)用户栏目专家坐堂 → 如何动态实现下拉列表的值


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

主题:如何动态实现下拉列表的值

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


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
如何动态实现下拉列表的值  发帖心情 Post By:2012/9/21 15:51:00 [只看该作者]

请教:假如一个表中有两列,如果第一列操作获得值过后,第二列做一个下拉列表,它的值是根据每一次第一列的值来筛选另外一个表中是否存在相应的值,如果没有值,就保持空值的下拉列表,不能录入下拉不存在的值,怎么实现了呢?
我在进入单元格,准备编辑事件中添加如下代码:

Dim tb As Table = Tables("订单_生产工资_table1")
Select Case e.Col.Name
    Case "工作名称"
        tb.Cols("工作名称").AllowDirectType = False '不允许直接输入
        tb.Cols("工作名称").ComboList = ""
        tb.Cols("工作名称").ComboList = DataTables("sc_cpys_cx").GetComboListString("说明","订单编号='" & Trim(e.Row("订单编号")) & "' and 序号 = " & Trim(e.Row("序号")) & " And 编号 > '1007'")
        If tb.Cols("工作名称").ComboList = "" Then
            tb.Cols("工作名称").ComboList = ""
        End If
End Select

 

如果存在值的时候下拉列表会有相应的值,如果不存在值的时候,单元格还是能够往里面输入其他值,想通过动态实现控制不能输入前部分未输入的值


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/21 16:31:00 [只看该作者]

 在ValidateEdit事件中写如下验证代码。

 if e.Col.ComboList.Contains(e.Row(e.Col.Name)) = false then
     
 '不存在下拉列表中

 end if
[此贴子已经被作者于2012-9-21 16:31:06编辑过]

 回到顶部