以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  列表项目的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3767)

--  作者:pyh6918
--  发布时间:2009/8/1 7:02:00
--  列表项目的问题
窗口的combobox控件项目列表来源于某一列时:
    1、能否设置默认为:提取不重复的列。因为在列表项目中重复的内容是没什么用的;
    2、默认的排序方式应该按输入的行顺序。现在的排序方式是按拼音的拼写顺序;
    3、能否默认为排除空白行。
    以上情况可以通过其他事件实现,但我认为设成上述默认值更有利于操作。
--  作者:狐哥
--  发布时间:2009/8/1 10:13:00
--  
各有所需,COMBOBOX属性中只是提取基础表中的资料,则此基础不本来就是不重复的.如要提取数据录入表中,只能通过公式.


1.如要提取不重复的列,则可设置条件,如下:

示例二

Dim cmb As WinForm.ComboBox
cmb
= Forms("窗口1").Controls("ComboBox1")
cmb.ComboList =
DataTables("客户").GetComboListString("公司名称")
 

上述的代码如果设置在窗口的AfterLoad事件中,即可在打开窗口的时候,自动从客户表提取公司名称,作为组合框Combox1的列表项目。



2.这个没有了解过
3.可设置FILTER属性   如:[列] > ""

GetComboListString(ColumnName,Filter)

ColumnName:列名称,从此列中提取不重复的值。
Filter:     可选参数,指定一个条件表达式,只返回符合此条件的值。

请参考表达式的运算符和函数

示例

Output.Show(DataTables("订单").("产品"))

也可以设置条件,例如从客户表中提取华北地区的客户名单:

Output.Show(DataTables("客户").GetComboListString("客户名称","[地区] = \'华北\'"))

[此贴子已经被作者于2009-8-1 10:15:38编辑过]

--  作者:yangming
--  发布时间:2009/8/1 11:30:00
--  
2、默认的排序方式应该按输入的行顺序。
如果要改成按拼音的拼写顺序,那对于要按输入顺序排序的,不也是要反对了?我想大多数人还是愿意按顺序排序的,主要是看看用什么办法更好
--  作者:pyh6918
--  发布时间:2009/8/1 14:52:00
--  
我只是从简化操作方面提出上述问题1的。
还会有人需要列表项目中有许多重复的值吗?

--  作者:mr725
--  发布时间:2009/8/1 15:23:00
--  
既然绑定到列了,在列属性里都有设置啊~  过滤条件、排序方法都有啊····
我没试过,只是提示一下。  呵呵
[此贴子已经被作者于2009-8-1 15:24:03编辑过]

--  作者:pyh6918
--  发布时间:2009/8/1 15:50:00
--  
窗口的combobox控件好象没有排序方式。

再就是,我是从简化操作和人性化的角度提出的问题,并不是说这种设计无法实现。

谁也不会用到重复的列表项目。
--  作者:mr725
--  发布时间:2009/8/1 16:14:00
--  
呵呵 ,  楼主提的重复项目是个问题, 我也为此烦恼过,  刚才灵机一动:  是不是可以增加一列(如:项目标号 列,按列表项目列的顺序1、2、3......给个编号, 再判断要引用的 项目列 的‘项目’是否重复,有重复则给个空值, 这样在过滤条件中设置 项目标号 列不为空。就不会出现重复内容了,但排序好像combobox属性中没有。。。
--  作者:czy
--  发布时间:2009/8/1 21:02:00
--  
以下是引用pyh6918在2009-8-1 7:02:00的发言:
窗口的combobox控件项目列表来源于某一列时:
    1、能否设置默认为:提取不重复的列。因为在列表项目中重复的内容是没什么用的;
    2、默认的排序方式应该按输入的行顺序。现在的排序方式是按拼音的拼写顺序;
    3、能否默认为排除空白行。
    以上情况可以通过其他事件实现,但我认为设成上述默认值更有利于操作。


我也觉得是个问题,但老六说已经没办法了。
还是改用代码生成列表项吧。