以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 排序问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7890)
|
-- 作者:实话实说
-- 发布时间:2010/8/16 20:19:00
-- 排序问题
我想[产品]表的"规格"列的下拉列表按数字大小排序,如何简单做到?
|
-- 作者:czy
-- 发布时间:2010/8/16 21:16:00
--
将规格列改成数值型,然后在GetComboListString中指定Sort参数.
|
-- 作者:czy
-- 发布时间:2010/8/18 13:42:00
--
现学现卖一个。
If e.Col.Name = "型号" Then e.Col.Combolist = DataTables("产品").GetComboListString("型号") End If If e.Col.Name = "规格" Then Dim List As String = DataTables("产品").GetComboListString("规格","[规格] Is Not Null And [型号] = \'" & e.Row("型号") & "\'") Dim s1() As String = List.Split("|") Dim s2(s1.Length - 1) As Single For i As Integer = 0 To s1.Length - 1 s2(i) =s1(i) Next Array.Sort(s2) Dim Val As String For i As Integer = 0 To s2.Length - 1 Val = Val & s2(i) & "|" Next e.Col.Combolist = Val End If
[此贴子已经被作者于2010-8-18 13:49:06编辑过]
|
-- 作者:实话实说
-- 发布时间:2010/8/19 6:58:00
--
以下是引用czy在2010-8-18 13:42:00的发言:
现学现卖一个。
If e.Col.Name = "型号" Then e.Col.Combolist = DataTables("产品").GetComboListString("型号") End If If e.Col.Name = "规格" Then Dim List As String = DataTables("产品").GetComboListString("规格","[规格] Is Not Null And [型号] = \'" & e.Row("型号") & "\'") Dim s1() As String = List.Split("|") Dim s2(s1.Length - 1) As Single For i As Integer = 0 To s1.Length - 1 s2(i) =s1(i) Next Array.Sort(s2) Dim Val As String For i As Integer = 0 To s2.Length - 1 Val = Val & s2(i) & "|" Next e.Col.Combolist = Val End If
[此贴子已经被作者于2010-8-18 13:49:06编辑过]
用了一下,与1楼相比,1、“型号”列不能录入新的型号;2、“规格”列新录入的规格不能加入下拉列表。
字符型的数字排序经常会遇到,希望加入到狐表系统中默认使用
|
-- 作者:mr725
-- 发布时间:2010/8/19 9:52:00
--
以下是引用实话实说在2010-8-19 6:58:00的发言:
用了一下,与1楼相比,1、“型号”列不能录入新的型号;2、“规格”列新录入的规格不能加入下拉列表。
字符型的数字排序经常会遇到,希望加入到狐表系统中默认使用
这个应该很好解决吧, Datacolchanged 事件中判断一下 Val 中是否包含新录入的数字, 否则重新执行一下C版的代码就可以了.
|
-- 作者:czy
-- 发布时间:2010/8/19 13:15:00
--
以下是引用实话实说在2010-8-19 6:58:00的发言:
用了一下,与1楼相比,1、“型号”列不能录入新的型号;2、“规格”列新录入的规格不能加入下拉列表。
字符型的数字排序经常会遇到,希望加入到狐表系统中默认使用
如果你知道问题出在哪里,修正代码应该很简单了。
If e.Col.Name = "型号" Then e.Col.Combolist = DataTables("产品").GetComboListString("型号") End If If e.Col.Name = "规格" Then Dim List As String = DataTables("产品").GetComboListString("规格","[型号] = \'" & e.Row("型号") & "\'") List = List.Trim("|") If List.Length > 0 Then Dim s1() As String = List.Split("|") Dim s2(s1.Length - 1) As Single For i As Integer = 0 To s1.Length - 1 s2(i) =s1(i) Next Array.Sort(s2) Dim Val As String For i As Integer = 0 To s2.Length - 1 Val = Val & s2(i) & "|" Next e.Col.Combolist = Val Else e.Col.Combolist = "" End If End If
|
-- 作者:实话实说
-- 发布时间:2010/8/19 20:13:00
--
谢谢
|