以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  引用某列的时,不引用空白行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64940)

--  作者:cyrollin
--  发布时间:2015/3/5 14:30:00
--  引用某列的时,不引用空白行
 多值字段,我是引用的某个表的某个列
 一个基础表
 很多列
每个列所占的行数不一样

我引用的时候,怎么才能不用引出没有数据的行?

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


--  作者:Bin
--  发布时间:2015/3/5 14:33:00
--  
用代码赋值的方式吧http://www.foxtable.com/help/topics/0925.htm

然后条件设置为 "列名 is not null"

--  作者:cyrollin
--  发布时间:2015/3/5 14:46:00
--  
 If e.datacol.name = "休息" then
Dim cmb As WinForm.ComboBox
cmb.ComboList = DataTables("列表数据").GetComboListString("第三列","第三列 <>")
end if 

这样的吗, BIN BIN

--  作者:Bin
--  发布时间:2015/3/5 14:49:00
--  
列的下拉列表,就不应该操作控件 http://www.foxtable.com/help/topics/1457.htm

条件2楼已经告诉你了,怎么不看?

--  作者:cyrollin
--  发布时间:2015/3/5 15:12:00
--  
搞定,谢谢, 直接这条帮助:

动态列表项目之三

更多的时候,列表项目来自于某个表中已经输入的记录,例如客户表已经输入所有的客户名称及资料,那么订单表的客户名称列的列表项目,应该自动从客户表的客户名称列提取。

如果列表项目来自于某个表的某一列,而这个表会经常增加删除行;那么可以在项目事件MainTableChanged中 ,设置代码提取列表项目。

例如:

If MainTable.Name = "订单" Then \'如果选择的主表是订单表
    Tables("订单").Cols("客户").Combolist = DataTables("客户").GetComboListString("公司名称")
End
 
If

上面的代码从客户表提取公司名称,作为订单表客户列的列表项目,由于经常会增加删除客户,所以我们将上面的代码设置在MainTableChanged事件中,这样每次切换到订单表,就会重新设置订单表客户列的列表项目,保证其内容是最新的。

如果某列的列表项目不仅来自于另一个表,而且要根据其它列已经输入的内容来决定显示哪些条目,那么这样的代码就只能设置在表事件PrepareEdit中。



--  作者:cyrollin
--  发布时间:2015/3/5 15:12:00
--  
每天都能学到新的知识,非常感谢!