以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]下拉列表过滤 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108629) |
-- 作者:积水成渊 -- 发布时间:2017/10/26 10:53:00 -- [求助]下拉列表过滤 A表有两个字段:(列名,值),列下我已经做成了下拉(单据类型|商品编码|开始时间|结束时间),现在我需要判断列名下拉的内容,给值字段也做成下拉 比如当列名的内容为单据类型时,值字段的下拉内容为:入库单|退货单,当列名的内容为商品编码失望,值字段的下拉内容为:001|002 我在datacolchanged事件中的代码如下; Dim t4 As Table = e.Form.Controls("Table4").Table If e.DataCol.name = "列名" Then If e.DataRow("列名") = "单据类型" Then \' If e.IsFocusCell Then \'如果是焦点单元格 \' If e.Col.Name = "值" Then \'如果正在编辑的是值列 t4.Cols("值").Combolist ="入库单|退货单|入库退货单" End If \'End If \' End If End If 现在的问题是,我要实现的是选中行列名为单据类型时,当前行值的下拉内容为:入库单|退货单|入库退货单;而不是整个列都变成了下拉内容为:入库单|退货单|入库退货单
|
-- 作者:有点甜 -- 发布时间:2017/10/26 11:05:00 -- prepareEdit事件
If e.Col.Name = "值" Then \'如果正在编辑的是值列
If e.Row("列名") = "单据类型" Then e.Col.Combolist ="入库单|退货单|入库退货单" ElseIf e.Row("列名") = "商品编码" Then e.Col.Combolist ="001|002" End If End If |
-- 作者:积水成渊 -- 发布时间:2017/10/26 11:08:00 -- 谢谢 |
-- 作者:积水成渊 -- 发布时间:2017/10/26 11:39:00 -- 还有个问题,就是当列名选择开始时间时,值列要变成时间内置器,这个怎么处理,我加了个代码,没有起到作用:e.Col.UsetBuildInEditor = True |
-- 作者:有点甜 -- 发布时间:2017/10/26 11:50:00 -- If e.Col.Name = "值" Then \'如果正在编辑的是值列 ElseIf e.Row("列名") = "时间" Then
|