cxgrid列值获取

cxgrid列值获取

A.

 取列值 

 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);

B.

procedure TWKO_ORDER_SCHEDULE_F.cxGrid1DBBandedTableView1EditKeyDown(

  Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;

  AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState);

begin

  inherited;

  if (Chr(Key)=#13and

    (cxGrid1DBBandedTableView1.Controller.FocusedColumnIndex+ 1=cxGrid1DBBandedTableView1.VisibleColumnCount) then

  begin

    if (cxGrid1DBBandedTableView1.Controller.FocusedRowIndex+ 1=cxGrid1DBBandedTableView1.DataController.RowCount) then

    begin

      ActiveControl:=cxGrid1;

      Exit;

    end

    else

    begin

      cxGrid1DBBandedTableView1.Controller.FocusedRowIndex:=cxGrid1DBBandedTableView1.Controller.FocusedRowIndex+1;

      cxGrid1DBBandedTableView1.Controller.FocusedColumnIndex:= -1;

    end;

  end;

end;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值