找回密码
 立即注册

QQ登录

只需一步,快速开始

RamboX

中级会员

11

主题

14

帖子

947

积分

中级会员

积分
947

活字格认证

[已处理] Spread排序问题

RamboX
中级会员   /  发表于:2012-10-29 14:09  /   查看:6114  /  回复:2
我没有用Spread自带的排序方法而是自己手动写了代码进行排序的,但是这样处理之后原先Spread内设置的每一行的格式,如背景色字体色等不会根据排序后的顺序重新设定格式,而是固定的继续保持在我排序前的行位置,求教有什么办法可以修改

排序代码如下
    Public Shared Sub SpdSort(ByRef vssioTarget As FarPoint.Win.Spread.SheetView, ByVal liCol As Integer, _
                               ByVal liStartRow As Integer, ByVal liEndRow As Integer, ByVal liStartCol As Integer, _
                               ByVal liEndCol As Integer, ByVal niSortKeyOrder As Integer)
                If liCol = -1 OrElse niSortKeyOrder = SortIndicator.None Then
            Return
        End If
      
        Dim mpcLastPointer As System.Windows.Forms.Cursor
        
        mpcLastPointer = System.Windows.Forms.Cursor.Current
        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor ' Screen

        Dim sortOrder As Boolean = True
        If niSortKeyOrder = SortIndicator.Descending Then
            sortOrder = False
        End If

        Dim sort(1) As FarPoint.Win.Spread.SortInfo
        sort(0) = New FarPoint.Win.Spread.SortInfo(liCol, sortOrder)
        vssioTarget.SortRange(liStartRow, liStartCol, liEndRow - liStartRow + 1, liEndCol - liStartCol + 1, True, sort)

        System.Windows.Forms.Cursor.Current = mpcLastPointer

    End Sub

2 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-29 19:01:00
沙发
RamboX 你好

你的问题将会在明天得到回复。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-30 21:26:00
板凳
RamboX 你好

我看你使用的是SortRange方法来对区域内的单元格进行排序,如果使用SortRange方法进行排序,那么只有设置到单元格上的样式会跟着变化,如果是设置在行上面的样式就不会改变。

比如 FpSpread1.ActiveSheet.Cells(0, 0).BackColor = Color.Aqua,排序之后可以跟着变化;FpSpread1.ActiveSheet.Rows(3).BackColor = Color.Thistle排序后就不会变化。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部