Библиотека компонент EhLib Руководство разработчика


Настройка сетки для сортировки данных



страница4/13
Дата09.08.2019
Размер456 Kb.
#128179
ТипРуководство
1   2   3   4   5   6   7   8   9   ...   13

Настройка сетки для сортировки данных:


TDBGridEh позволяет отображать специальные sortmarking bitmaps (маленькие треугольники) в правой части заголовков столбцов. Для отображения sortmarking bitmaps добавьте dghAutoSortMarking в свойство OptionsEh. Добавьте также dghMultiSortMarking в OptionsEh для обеспечения одновременной пометки сортировки по нескольким столбцам. Установите Column.Title.TitleButton в True для заголовков, у которых вы хотите изменять sortmarkers в run-time. Вы можете установить свойство сетки ColumnDefValues.Title.TitleButton чтобы позволить метки сортировки для всех столбцов, у которых не менялось свойство Column.Title.TitleButton. В run-time клик на заголовке изменяет порядок сортировки. При нажатом Ctrl можно отметить насколько столбцов одновременно. После клика на заголовке, если событие OnSortMarkingChanged не пусто то оно вызывается, иначе дейсвие передается на выполнение специальному объекту, если тот зарегистрирован. Специальный объект использует свойство Grid.SortLocal для определения типа сортировки данных: локально либо на сервере. Если вы пишете обработчик события OnSortMarkingChanged вы можете использовать свойство TDBGrid.SortMarkedColumns для доступа к сортируемым столбцам и свойство TColumnEh.Title.SortMarker для получения состояния маркера сортировки.

Настройка grid'а для фильтрации данных:


TDBGridEh позволяет отображать специальную строку (под заголовком), где пользователь вводит в ячейки текст для фильтрации записей в dataset'е. (Значения в ячейке могут выглядеть как: "1", ">=1", ">1 AND <=5", "%TestStr%"). Установите STFilter.Visible в True для отображения специальной строки. Во run-time, когда курсор находится в ячейке фильтрации, пользователь может нажать ENTER для применения фильтра. Grid проанализирует выражения в каждой непустой ячейке фильтрации и вызовет метод TDBGridEh.ApplyFilter, далее вызывается событие OnApplyFilter либо осуществляется передача действия специальному объекту, если тот зарегистрирован.

Текст выражения в ячейке фильтра должен иметь следующий формат:

[Operator1] Operand1 [)] [AND|OR Operator2 Operand2 [)] ]

Где OperatorX - один из [ = | <> | != | > | < | >= | <= | ~ | !~ | in ( ]

OperandX - число, дата, строковое выражение, либо, для оператора 'IN', - список значений, разделенных запятыми.

Например:

'1'

'>=1'


'>1 AND <=5'

'~ TestStr%'

'!~ TestStr_'

'in (1,2,3,4,5,6) and >100'

'in (Str1,Str2,Str3)'

Настройка заголовков grid'а.

Комплексные заголовки.


TDBGridEh позволяет создавать заголововок над несколькими столбцами.

See Figure:

Для этого надо установить свойство DBGridEh.UseMultiTitle в True и заполнить заголовки полей (TField.DisplayLabel) или заголовки столбцов, используя следующее правило: каждая часть текста в заголовке поля или заголовке столбца должна состоять из нескольких частей разделенных символом "|", где каждая общая часть одинакова для нескольких столбцов. Остальные поля или заголовки должны содержать одинаковый текст в соответствующих частях. 

Например:

Field1.DisplayLabel := 'Title1|SubTitle1';

Field2.DisplayLabel := 'Title1|SubTitle2';



    or

DBGridEh.Columns[0].Title.Caption := 'Title1|SubTitle1';



DBGridEh.Columns[1].Title.Caption := 'Title1|SubTitle2';

Заголовок как кнопка.


Для того, чтобы заголовки работали как кнопки установите свойство Column.Title.TitleButton в True. Напишите обработчик события OnTitleBtnClick для пределения действия на клик пользователя на ячейке заголовка.

Отображение картинок в заголовках.


Для отображения картинок в заголовках вместо текста, нужно использовать свойство TitleImages TDBGridEh'а и свойство ImageIndex TColumnTitleEh'а.

Значения по умолчанию для свойств заголовков.


Для установки значенией по умолчанию для свойств заголовков используйте свойство TDBGridEh.ColumnDefValues.Title. Эти свойсва будут действовать для свойств всех заголовков до момента изменения аналогичного свойства в заголовке Column.Title.

Настройка колонтитулов grid'а.

Колонтитулы и итоговые значения.


TDBGridEh позволяет отображать специальную строку (колонтитул) либо строки в нижней части grid'а. Используйте свойство FooterRowCount для определения числа строк колонтитулов в grid'е и свойства Footer или Footers объекта TColumnEh для назначения информации, которая должна быть отобрадена в ячейках колонтитула. Свойство Footers полезно задействовать когда у вас более одной строки колонтитулов. TColumnEh.Footers - это коллекция объектов TColumnFooterEh, где информация об i-м элементе коллекции будет отображаться в i-ой ячейке стобца колонтитула. В ячейке колонтитула может отображаться сумма по указанному полю, количество записей, значение поля либо статический текст. Используйте свойства Footer.ValueType либо Footers[i].ValueType для определения типа значения, отображаемого в ячейке колонтитула. Если ValueType = fvtStaticText, тогда в свойстве Value нужно задать текст для отображения. Если ValueType = fvtFieldValue, тогда в свойстве FieldName необходимо задать имя поля, значение которого будет отображаться. Для того, чтобы grid подсчитал итоговое значение, нужно активировать SumList (DBGridEh.SumList.Active := True) и установить ValueType Footer'а в fvtSum или fvtCount. Значение fvtSum означает подсчет суммы по полю колонки или указанному в свойстве FieldName Footer'а.

Настройка ячеек данных.

Отображение картинок в ячейках даннных, в зависимости от значений полей.


TDBGridEh позволяет отображать картинки из компонента TImageList, в зависимости от значений полей. Для этого нужно заполнить список значений полей в свойстве Column.KeyList (каждое значение в отдельной строке) и назначить свойству Column.ImageList значеним компоненты типа TImageList, в которой располагаются картинки в порядке номеров строк KeyList'а. Можно также присвоить свойство Column.NotInKeyListIndex индексом картини выводимой в случае если значениt поля не совпадающего ни с одним значением в KeyList (например, вы можете задать индекс картинки для значения Null). В run-time вы не можете менять картинке в ячейке. Использйте клавишу пробел и клик мышки для установки следующего значения из Column.KeyList в поле. Shift-пробел и Shift-клик для установки предыдущего значения из Column.KeyList. Установка Column.DblClickNextval в True позволяет изменять значения двойным-кликом мышки.

Checkbox'ы для boolean и не-boolean полей.


Grid автоматически отображает checkbox'ы для boolean-полей. Для отображения checkbox'ов для не-boolean полей заполните первую строку свойства Column.KeyList, которая соответствует значению 'checked' checkbox'а, вторая строка - значению 'non checked' и установите свойство Column.Checkboxes в True. Cтрока в KeyList может содержать более одного значения, разделенных точкой с запятой.

Высота строк данных.


Используйте свойства RowHeight и RowLines для определения высоты строк данных. Полная высота строки данных в пикселях равна (RowLines * высота одной строки текста) + RowHeight. Установка RowSizingAllowed в True позволяет менять мышкой высоту строк в run-time.

Для разбивки длинного текста на несколько строк установите Column.WordWrap в True. Текст будет перенесен, если высота строки (Row) больше высоты одной строки текста.


Отображение memo-полей.


Для отображение memo-полей установите DrawMemoText в True.

Изменение настроек шрифта в ячейке и ее цвета.


Свойства TDBGridEh Font и Color описывают шрифт и цвет, используемый для отображения ячейки grid'а.

Свойства Font и Color объекта TColumnEh описывают шрифт и цвет, используемый для отображения ячейки в определенном столбце. 


События для изменения настроек шрифта ячеек и цвета.


Ниже перечислены несколько событий, обработчики которых в можете написать для настройки атрибутов шрифта и цвета ячейки перед тем, как данные в ней будут напечатаны. Вы можете написать обработчик события TDBGridEh.OnDrawColumnCellEvent для настройки отображения текста в ячейках grid'а. Вы можете отрисовывать ячейку, используя методы свойства TDBGrid.Canvas. Но если вам нужно просто изменить атрибуты текста или цвет, то лучше использовать события, указанные ниже. Вы можете написать обработчик события TDBGridEh.OnGetCellParams для выставления свойств щрифта, цвета и других параметров ячейки перед отрисовкой данных в ячейке. Если вы хотите изменить атрибуты ячейки только в определенном столбце, вы можете использовать событие столбца TColumnEh.OnGetCellParams. Перед прорисовкой данных ячейки столбца в этом событии вы можете менять шрифт, цвет, выравнивание, ImageIndex, Text или State для checkbox'а. Перед редактированием данных ячейки столбца вы можете изменить шрифт, цвет фона, текст и управлять состоянием readonly. При вызови этих событий DataSet будет находистя на правильной записи, так что вы можете обращатся к значению полей используя например метод TDataSet.FieldByName(..).Value.

Значения по умолчанию для свойств столбцов.


Для установки значений по умолчанию для свойств столбцов используйте свойство TDBGridEh.ColumnDefValues. Вновь создаваемые столбцы получат свойства из ColumnDefValues и будет хранить их до первого изменения.


Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   13




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница