以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何在foxtable中实现易表的“排序项目”功能?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8357)

--  作者:abcdzabcdz
--  发布时间:2010/10/11 22:05:00
--  如何在foxtable中实现易表的“排序项目”功能?

不知foxtable里有无易表“排序项目”设计,若无,不知该怎样设计?谢谢!

 

现有一表的“科目”列内容有“化学,生物,历史,地理,语文,数学,英语,物理”等,我希望按指定顺序排序(如语文,数学,英语,物理,化学,生物,历史,地理),如何实现?


--  作者:abcdzabcdz
--  发布时间:2010/10/11 22:08:00
--  
坛主也限制得太严了,由于有一科目“政 治”,始终不能发贴;去掉“政 治”总算发上来了(中间加空格才通得过)。
[此贴子已经被作者于2010-10-11 22:09:24编辑过]

--  作者:czy
--  发布时间:2010/10/11 22:32:00
--  

类似易表的排序项目现在是没有的。

加个辅助列吧,如果排序项目不多,可以用表达式列,iff下去就可以了,如果排序项目多,还是用数据列,然后用代码简单一些,生成顺序后再对辅助列进行排序。


--  作者:abcdzabcdz
--  发布时间:2010/10/11 23:11:00
--  
好主意,谢谢C老师!
--  作者:czy
--  发布时间:2010/10/11 23:57:00
--  

个人认为还是用数据列简单,因为用那么多iif写起来费劲,而用代码只是几行而已。

比如:

 

If e.DataCol.Name = "科目" Then
    Dim Str As String = "化学|生物|历史|地理|语文|数学|英语|物理|政 治|"
    If Str.IndexOf(e.DataRow("科目") & "|") > -1 Then
        e.DataRow("排序") = Str1.IndexOf(e.DataRow("科目") & "|")
    End If
End If

 

也可以:

 

If e.DataCol.Name = "科目" Then
    Dim Values() As String = "化学|生物|历史|地理|语文|数学|英语|物理|政 治".split("|")
    For i As Integer = 0 To Values.Length -1
        If Values(i) = e.DataRow("科目")
            e.DataRow("排序") = i
        End If
    Next
End If