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

ExpressQuantumGrid

Если бы мне пришлось придумывать название для ExpressQuantumGrid, то я бы назвал его челябинский грид, ведь он настолько крут, что зачастую руководство нужно не только разработчикам, но и конечным пользователям приложений, в которых он используется.

Сразу попытаюсь оговорить отдельные моменты. Коммерческое название продукта ExpressQuantumGrid, хотя класс в Delphi называется TcxGrid. Кроме этого грида в состав  ExpressQuantumGrid  Suite входят еще несколько гридов и сопутствующих им компонентов. Но пока здесь речь пойдет только о cxGrid.  Я буду использовать слово “грид”, хотя его фактически не в русском языке. Но изобретать переводы как-то сетка, табличный элемент управления и т.д. я не буду. Грид, он и в Африке грид.

То, о чем я собираюсь написать в данной серии постов – очень объемный материал. То, о чем я писать не планирую – еще объемнее. Вероятно, для многих мои посты не будут откровением, но полностью пересказать 3400 страниц документации я не в состоянии. Так, что не судите меня строго, если что-то важное, на ваш взгляд “останется за кадром”. Данная серия постов всего -лишь попытка дать общее представление о продуктах Devexpress, но отнюдь не учебник. Здесь уже упоминался форум на RuBoard. Ответы на многие вопросы  можно найти там. У меня собралась приличная подборка материалов из этого и других форумов. Возможно, если найду “сообщника(ов)”, я сделаю структурированный русскоязычный FAQ.

Я планирую разбить материал, посвященный ExpressQuantumGrid на несколько частей. В первой я расскажу о том, что же собою представляет этот грид, и о том, как произвести элементарные настройки, что бы “научить” TcxGrid отображать данные из DataSet. Далее – о некоторых “тонких” настройках, для решения конкретных задач, с которыми мне пришлось столкнуться.

Из того, что отличает ExpressQuantumGrid и делает его привлекательным для использования в приложениях, я бы выделил следующее:

  • Возможность произвольной группировки данных пользователем;
  • Возможность сортировки;
  • Возможность фильтрации;
  • Возможность получения статистики (например, можно вывести сумму по одной или нескольким колонкам в футере грида);
  • Поддержка альтернативного оформления (скинов, правда за скины придется платить отдельно).

Есть множество других функций, зачастую уникальных, не имеющих аналогов в гридах других производителей. Но обо всех рассказать практически невозможно. В принципе, единственным гридом, которой хотя бы отдаленно приближен по функциональности к рассматриваемому, на мой взгляд, является GridEh. И хотя он не умеет делать всего того, что умеет ExpressQuantumGrid, его стоимость позволяет задуматься о нем, как о разумной альтернативе (например, на начальной стадии проекта).

Прежде всего, следует понять, что TcxGrid это не совсем аналог TDBGrid, а контейнер объектов. Далее я позволю себе процитировать официальную документацию.

При размещении TcxGrid на форму и просмотре его свойств в Object Inspector‘е, вы не найдете никаких свойств, которые позволят вам привязать грид к DataSource, настроить  свойства столбцов или изменить какие-либо другие параметры привязки и представления данных. Это может показаться странным, если вы ранее использовали, скажем, стандартный TDBGrid, который имеет такие свойства, как DataSource, Columns и т. п.

Во-первых, позвольте отметить два основных преимущества TcxGrid:

  • Этот элемент управления позволяет представлять данные в виде различных макетов. Этот набор макетов включает в себя стандартный макет столбцов или строк, макет карт, диаграмм, расширенный макет столбцов или строк, позволяющий группировать столбцы, создавать многострочные ячейки в строках, и т.д. И конечно, мы предоставляем возможность расширить этот набор форматов представления данных, а также развить любой из упомянутых макетов.
  • Этот элемент управления позволяет отображать Master-Detail  данные, а также отображать данные из нескольких независимых источников данных.

Реализация двух описанных выше преимуществ, включает в себя два ключевых понятия для ExpressQuantumGrid - grid Views и grid Levels (представления и уровни). Для реализации отображения разных форматов данных грид предоставляет набор объектов, grid Views со следующими свойствами:

  • Каждый grid View может иметь собственный механизм привязки данных;
  • Каждый grid View может визуально представлять данный в свойственной ему манере и использовать для этих целей свои собственные уникальные настройки;
  • Все grid View имеют общий интерфейс, что позволяет гриду управлять ими единым способом.

Второе преимущество осуществляется с помощью grid levels – объектов, позволяющих организовывать grid View в иерархические и многоуровневые структуры. Грид содержит иерархию grid levels в то время, как каждый grid level имеет связанный grid View, который должен использоваться для отображения данных в каждой из точек иерархии. Так что грид это просто  контейнер для grid View, которые, фактически отображают данные.

Все вышесказанное наглядно будет видно, если просто поместить грид на форму. В правом нижнем углу грида как раз и представлена его структура. Цветные прямоугольники – кликабельны. Нажав, скажем, на cxGrid1DBTableView1 вы можете в Object Inspector редактировать свойства данного Grid View.

ExpressQuantumGrid

ExpressQuantumGrid

Теперь, давайте посмотрим, что же требуется, что бы грид начал отображать данные. Создаем приложение, подключаем DataSet к любой таблице и отображаем данные в обычном TDBGrid. Теперь попытаемся вывести те же данные в TcxGrid.

Первый способ – примитивно прост. Контекстное меню cxGrid, пункт import. В появившемся диалоге выбираем, что и откуда надо импортировать.

Второй способ тоже прост. Контекстное меню, пункт Link to <название компонента TDataSource>. В данном случае эффект тот же.

Третий способ – расставить свойства вручную. Примерно так:

(cxGrid1.Views[0] as TcxGridDBTableView).DataController.DataSource:= DataSource1;
(cxGrid1.Views[0] as TcxGridDBTableView).DataController.CreateAllItems();

Настроить грид – т.е. выставить ширину столбцов, их заголовки и т.д. можно в Layout and Data редакторе (вызывается кнопкой Customize или из контекстного меню).

Таким образом, мы получили практически обычный TDBGrid, который можно использовать в приложении и в таком виде. О дальнейшей настройке грида, а соответственно и о других его возможностях в следующих постах.

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

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


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

4 комментария: DevExpress. Заметки на полях #5

  • Я бы не стал так говорить за пользователей.
    Специально отключал у девкиного грида якобы сложные для пользователей возможности – и даже бухгалтерши просили их обратно, хотя документации не читали ни страницы.
    Для разработчиков же хорошо работает презумпция “грид может все, надо только найти как”.

    • Ну это же шутка. Хотя в каждой шутке есть доля шутки. например, многие не могут слету понять, что столбцы можно таскать, а данные – фильтровать. Приходится объяснять…

      “грид может все, надо только найти как” – это да…

  • А куда делась 4-ая часть статьи ?

Ответить на Bonart Отмена ответа

Ваш 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
Яндекс.Метрика