现在的位置: 首页 > 综合 > 正文

Cxgrid获取选中行列,排序规则

2013年08月19日 ⁄ 综合 ⁄ 共 1448字 ⁄ 字号 评论关闭
 取列值
 i := cxGrid1DBBandedTableView1.Controller.FocusedColumn.Index; 
cxGrid1DBBandedTableView1.DataController.GetValue(cxGrid1DBBandedTableView1.Controller.SelectedRows[0].RecordIndex,i);
cxGrid1DBTableView1.DataController.Values[行,列]
取得焦点
cxGrid1DBTableView1.Columns[5].FocusWithSelection;
cxGrid1DBTableView1.Columns[4].Focused:=True;
得到当前点击的单元格的值
uses   Clipbrd;

OnCellClick事件代码:
procedure   TForm1.cxGrid1DBTableView1CellClick(
    Sender:   TcxCustomGridTableView;
    ACellViewInfo:   TcxGridTableDataCellViewInfo;   AButton:   TMouseButton;
    AShift:   TShiftState;   var   AHandled:   Boolean);
var
    v   :   Variant;
begin
    v   :=     ACellViewInfo.Value;//值
    Clipboard.AsText     :=     vartostr(v);//保存到clipboard
end;

cxGrid的DBTableView的名称为dgtv1

1. 返回选中的行数 gdtv1.DataController.GetSelectedCount;

2. 返回选中行的索引: gdtv1.DataController.GetSelectedRowIndex(0) , 表示第一个选中行的索引

3. 返回选中行的数据;

   var
   I, J:Integer;
begin
   for I:=0 to gdtv1.DataController.GetSelectedCount - 1 do begin
     J := gdtv1.DataController.GetSelectedRowIndex(I);
     ShowMessage(VarToStr(gdtv1.DataController.GetValue(J, 0))); //选择中行的第列的值
   end;
end;

4. 获取cxGrid排序规则

const
   OrderArray: array[soNone..soDescending] of string = ('None', 'ASC', 'DESC');
var
   I: integer;
   S, OrderStr: string;
begin
   for I := 0 to gdtv1.SortedItemCount - 1 do begin
     if S <> '' then
       S := S + ', ';
     OrderStr := OrderStr + gdtv1.SortedItems[I].DataBinding.DefaultCaption + ' ';
     OrderStr := OrderStr + OrderArray[TcxDataSortOrder(gdtv1.SortedItems[I].SortOrder)];
     S := S + OrderStr;
   end;
   ShowMessage('ORDER BY ' + S);

 

抱歉!评论已关闭.