Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:排序问题

1楼
实话实说 发表于:2010/8/16 20:19:00
我想[产品]表的"规格"列的下拉列表按数字大小排序,如何简单做到?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

2楼
czy 发表于:2010/8/16 21:16:00
将规格列改成数值型,然后在GetComboListString中指定Sort参数.
3楼
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编辑过]
4楼
实话实说 发表于: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、“规格”列新录入的规格不能加入下拉列表。

字符型的数字排序经常会遇到,希望加入到狐表系统中默认使用

5楼
mr725 发表于:2010/8/19 9:52:00
以下是引用实话实说在2010-8-19 6:58:00的发言:

用了一下,与1楼相比,1、“型号”列不能录入新的型号;2、“规格”列新录入的规格不能加入下拉列表。

字符型的数字排序经常会遇到,希望加入到狐表系统中默认使用

这个应该很好解决吧, Datacolchanged 事件中判断一下 Val 中是否包含新录入的数字, 否则重新执行一下C版的代码就可以了.

6楼
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

7楼
实话实说 发表于:2010/8/19 20:13:00
谢谢
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 3 queries.