找回密码
 立即注册

QQ登录

只需一步,快速开始

hanamichi

论坛元老

12

主题

40

帖子

1万

积分

论坛元老

积分
13590

活字格认证

hanamichi
论坛元老   /  发表于:2014-7-2 15:35  /   查看:4974  /  回复:4
sheetView的SortRows方法可以指定某列的列号,以及升序还是降序,是否显示排序的三角符号,但好像只能指定一列作为排序条件。
请问,想对多列分别指定升降序以后进行排序,怎么做?

4 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-7-2 15:54:00
沙发
回复 1楼hanamichi的帖子

SortColumns 方法用于多列排序,排序通过 SortInfo[]数组指定,多列排序可以设置多个 SortInfo ,参考代码:

  1. FarPoint.Win.Spread.SortInfo[] sorter = new FarPoint.Win.Spread.SortInfo[1];
  2. sorter[0] = new FarPoint.Win.Spread.SortInfo(0, false, System.Collections.Comparer.Default);
  3. fpoint1.ActiveSheet.SortColumns(12,230,sorter);
复制代码


点击列头三角号只能进行单列排序。

更详细信息,请参考帮助文档相关章节。
回复 使用道具 举报
hanamichi
论坛元老   /  发表于:2014-7-2 15:57:00
板凳
用下面这个写法,排序可以实现了。不过好像SortInfo里不能指定是否显示排序的三角符号?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim si(2) As FarPoint.Win.Spread.SortInfo
  si(0) = New FarPoint.Win.Spread.SortInfo(0, True)
  si(1) = New FarPoint.Win.Spread.SortInfo(1, True)
  si(2) = New FarPoint.Win.Spread.SortInfo(2, True)
  FpSpread1.ActiveSheet.SortRows(0, FpSpread1.ActiveSheet.RowCount, si)
End Sub
回复 使用道具 举报
hanamichi
论坛元老   /  发表于:2014-7-2 16:17:00
地板
用下面这个写法好像可以解决了,谢谢版主!
        FpSpread1.ActiveSheet.Columns(0).SortIndicator = FarPoint.Win.Spread.Model.SortIndicator.Descending
        FpSpread1.ActiveSheet.Columns(1).SortIndicator = FarPoint.Win.Spread.Model.SortIndicator.Ascending
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-2 17:48:00
5#
回复 4楼hanamichi的帖子

好的,感谢反馈问题结果。

评分

参与人数 1满意度 +5 收起 理由
hanamichi + 5 谢谢

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部