以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]Combolist中值的排序求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=76004)

--  作者:huangfanzi
--  发布时间:2015/10/19 20:01:00
--  [求助]Combolist中值的排序求助
e.Form.Controls("CheckedComboBox_本厂牌号").Combolist = "全选|" & _dt工序合并表.SQLGetComboListString("牌号","库存标记 = 1","牌号")
上面代码中,不加黄底的排序条件可生成Combolist,但值乱序,想根据牌号排个序便加了排序条件,可这样一来Combolist中没有值了,何解?

--  作者:大红袍
--  发布时间:2015/10/19 20:05:00
--  
不可能,只要你列名没写错,就不可能没值
--  作者:huangfanzi
--  发布时间:2015/10/19 20:25:00
--  
真的好奇怪,如果我把代码改成:
e.Form.Controls("CheckedComboBox_本厂牌号").Combolist = "全选|" & _dt工序合并表.SQLGetComboListString("牌号","工序 Like \'销售出库%\' And 库存标记 = 1")
上面的代码生成的下拉是按内容值排序的
但把代码写成:
e.Form.Controls("CheckedComboBox_本厂牌号").Combolist = "全选|" & _dt工序合并表.SQLGetComboListString("牌号","库存标记 = 1")
或写成:
e.Form.Controls("CheckedComboBox_本厂牌号").Combolist = "全选|" & _dt工序合并表.SQLGetComboListString("牌号","工序 <> \'\' And 库存标记 = 1")
上面的代码能生成下拉,但值不会排序

--  作者:大红袍
--  发布时间:2015/10/19 20:33:00
--  

你的是最新版11.11吗?这个版本不应该报错。

 

否则,如是sqlserver数据库,取值列和排序列相同的话,就有问题。

 

你可以用SqlGetValue,或者GetComboListString来做


--  作者:huangfanzi
--  发布时间:2015/10/19 20:44:00
--  
_dt工序合并表.LoadFilter = "库存标记 = 1"
_dt工序合并表.Load
e.Form.Controls("CheckedComboBox_本厂牌号").Combolist = "全选|" & _dt工序合并表.GetComboListString("牌号","库存标记 = True")

执行上面的代码生成的下拉是排序的,但这个效率不好,窗口打开时要停顿几秒才能打开,因为这时在执行_dt工序合并表.Load,如果用SqlGetValue,效率会高一点吗?

--  作者:大红袍
--  发布时间:2015/10/19 20:56:00
--  

呃,这种问题,你测试一下便知。

 

最后把集合拼凑成字符串即可 http://www.foxtable.com/help/topics/1423.htm