Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Еще одним свойством TcxGridTableView, на которое я хотел бы обратить внимание, является ViewData. Как гласит документация, ViewData это мост между Data Controler‘ом и Table View. Именно это свойство позволяет получить доступ к строкам, отображаемым в Table View. Тип  данного свойства – TcxGridViewData.

Экземпляр TcxGridViewData получает данные от Data Controller‘а и представляет их в виде массива строк. Соответственно, у данного класса (TcxGridViewData) есть свойство Rows. Строки в свою очередь, так же представлены объектами типа TcxCustomGridRow (TcxCustomGridRow = class(TcxCustomGridRecord);), используя атрибуты данного класса, мы можем получить доступ к параметрам конкретной строки.

Существует несколько наследников TcxCustomGridRow, предназначенных для отображения разных типов строк.

  • data row (TcxGridDataRow) – отображает ячейки и их значения.
  • master data row (TcxGridMasterDataRow) отображает строки данных в master View.
  • new item row (TcxGridNewItemRow) – специальная строка для ввода новых данных.
  • group row (TcxGridGroupRow) – строка, отображающая значения столбца, по которому произведена группировка.

Кроме того, от данного класса наследуется класс TcxGridCard, служащий для представления данных в Card View.
Используя наследников TcxCustomGridRecord можно:

  • Получать доступ к значениям полей отдельных строк;
  • Определять индекс, индекс записи и уровень записи;
  • Устанавливать фокус на конкретной записи во View;
  • Разворачивать строку, если речь идет о master или group строках.

Простейший пример демонстрирует, как вывести в виде сообщения значение первого столбца первой строки:

ShowMessage(String(cxGrid1DBTableView1.ViewData.Rows[0].Values[0]));

Обратите внимание на то, что ViewData обрабатывает те данные, которые непосредственно отображаются во View. Иными словами, если мы изменим порядок сортировки или расположение полей, то все равно будет выведено значение верхней левой ячейки. Значение cxGrid1DBTableView1.ViewData.Rows[0].Values[0] имеет тип Variant, поэтому при написании кода следует позаботиться о безопасном приведении типов.
С помощью приведенного ниже кода можно понять разницу между свойствами RecordIndex и Index.

ShowMessage(IntToStr(cxGrid1DBTableView1.ViewData.Rows[0].RecordIndex));
ShowMessage(IntToStr(cxGrid1DBTableView1.ViewData.Rows[0].Index));

Значение Index всегда показывает индекс записи во View, иными словами, в данном случае оно будет равно 0, вне зависимости от порядка сортировки. В свою очередь, RecordIndex показывает индекс соответствующей записи в наборе данных. Он при изменении порядка сортировки будет меняться, и будет равен 0, если порядок сортировки не задан.

Установить фокус на конкретной записи мы можем так:

cxGrid1DBTableView1.ViewData.Rows[0].Focused:= True;

Другие статьи серии:

DevExpress. Заметки на полях #0
DevExpress. Заметки на полях #1
DevExpress. Заметки на полях #2
DevExpress. Заметки на полях #3
DevExpress. Заметки на полях #3.5
DevExpress. Заметки на полях #5
DevExpress. Заметки на полях #6
DevExpress. Заметки на полях #7
DevExpress. Заметки на полях #8
DevExpress. Заметки на полях #10
DevExpress. Заметки на полях #11
DevExpress. Заметки на полях #12
DevExpress. Заметки на полях #13


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика