'全局变量:
'排列的列名
Public sSortedColID As String = ""
'排列的顺序: ASC - 升,DESC - 降
Public sOrder As String = "ASC"
'Grid的查询语句
Public sQuery As String = "select CardCode, CardName, DocDate, DocNum, DocTotal, DocStatus from OINV order by {0} {1}"
'处理Grid双击事件
Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
If FormUID = "frmGrid" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_DOUBLE_CLICK And pVal.BeforeAction = True And pVal.Row = -1 Then
If Not pVal.ColUID.Equals(sSortedColID) Then
'上次排序的列名与双击排序的列名不同
sOrder = "ASC"
sSortedColID = pVal.ColUID
oGrid.DataTable.ExecuteQuery(String.Format(sQuery, sSortedColID, sOrder))
Else '双击的是同一列,则更改排列顺序
If sOrder = "ASC" Then
sOrder = "DESC"
Else
sOrder = "ASC"
End If
oGrid.DataTable.ExecuteQuery(String.Format(sQuery, sSortedColID, sOrder))
End If
'只处理一次
BubbleEvent = False
End If
End Sub