• CXGRID用法(取行、列值;定位选中某行等等)


    Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值

    cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号

    cxGrid1DBTableView1.Controller.FocusedRow 当前行
    cxGrid1DBTableView1.Controller.FocusedColumn 当前列
    cxGrid1DBTableView1.Controller.FocusedColumnIndex 当前列号
    cxGrid1DBTableView1.Controller.EditingItem 当前编辑中的单元框
    cxGrid1DBTableView1.Controller.EditingController.Edit 当前的编辑框

    在编辑状态下可以这样取当前单元格的值:
    if cxGrid1DBTableView1.Controller.FocusedColumn.Editing then
    ShowMessage(cxGrid1DBTableView1.Controller.EditingController.Edit.EditingValue)
    else
    cxGrid1DBTableView1.DataController.GetValue(cxGrid1DBTableView1.DataController.FocusedRecordIndex,
    cxGrid1DBTableView1.Controller.FocusedItemIndex);

    非编辑状态下可以这样取得单元格内的值:
    OnCellClick事件代码: 
    procedure   TForm1.cxGrid1DBTableView1CellClick( 
        Sender:   TcxCustomGridTableView; 
        ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; 
        AShift: TShiftState;   var   AHandled: Boolean); 
    var 
        v : Variant; 
    begin 
        v := ACellViewInfo.Value; 
    end;

    取列值
    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);

    5.获取多选的值

      for   i   :=   0   to   cxgrid1.SelectedRows.Count-1   do
    begin 
     cxgrid1.DataSource.DataSet.GotoBookmark(Pointer(cxgrid1.SelectedRows.Items[i])); //定位选中的字段

    end;

    6.//选择行的第1列的值

     for I:=0 to cxGrid1DBTableView1.DataController.GetSelectedCount - 1 do
     begin
       J := cxGrid1DBTableView1.DataController.GetSelectedRowIndex(I);
       ShowMessage(VarToStr(cxGrid1DBTableView1.DataController.GetValue(J, 0)));  

    end;

    7.获取所选行的值

      with cxGrid1DBTableView1.Controller do
      begin

       for i:=0 to SelectedRowCount-1   do
       begin
        SelectedRows[i].Focused:=True;
        ShowMessage(ADOQuery1.fieldbyname('mc').AsString);
       end;

    end

  • 相关阅读:
    C# 遍历类字段 及 字段值
    u8 采购到货单中的 业务类型 没有表字典,是系统预置 存入表也是文字: 普通采购 固定资产
    win7 X64 OLEDB读取EXCEL提示“未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序”
    关于 C# select 读取 Excel 数据 为空,或成科学计数法解决方案
    如何设置C#程序在Windows 7 Vista下以管理员权限运行
    C# OLE DB 的连接方式下 对 sql 参数的操作 需要改成 ? 号
    NHibernate (一) 五部曲
    做优秀产品经理
    Python Test in Hudson
    [转载]Openstack Essex安装文档资料
  • 原文地址:https://www.cnblogs.com/Kim53622744/p/4428995.html
Copyright © 2020-2023  润新知