В бесплатной библиотеке компонентов JVCL присутствуют 4 DbGrida. TJvgDbGrid, TJvDbGrid, TJvDBUltimGrid и TJvgVertDbSGrid. Я сравнил доступные гриды. Самым лучшим оказался TJvDBUltimGrid(хотя Ehlib даже версии 3.6 ему не переплюнуть).
TJvgDbGrid – DbGrid из библиотеки Globus. TJvgVertDBSGrid – грид отображающий список полей вертикально, отображает только одну запись.
Также в JVCL присутствует несколько компонентов, облегчающих работу с гридом.
- Компоненты для экспорта содержимого DBGrid в файл, вместе с форматированием:
- TJvDbGridCSVExport, TJvDbGridXMLExport, TJvDbGridHTMLExport – экспорт в CSV, XML и HTML(посмотрел только экспорт в HTML)
- TJvDBGridExcelExport, TJvDbGridWordExport – требуют установленных Excel, Word.
- TJvDbGridFooter – дополнительный Footer для DbGrid.
- TJvgGridHeaderControl – дополнительный header для грида.(не смотрел)
Я опишу в этом посте большинство свойств TJvDBUltimGrid, отсутствующих в стандартном TDbGrid-e. Кстати, большая их часть присутствует и в TJvDbGrid.
Список вкусностей под катом..
AutosizeColumns – автоматически подстраивать ширину колонок.AutoSizeRows – автоматически подстраивать высоту строк.
AlternateRowColor и AlternateRowFontColor – позволяет использовать другие цвета для чётных рядов
BooleanEditor – показывать CheckBox для Boolean-полей
DotNetHighlightning – рисовать рамочку вокруг контрола имеющего фокус(стандартное свойство для всех JVCL контролов)
FixedCols – аналогично свойству StringGrid-a
IniStorage – позволяет подключать TJvFormStorage[*], который будет использоваться для сохранения настроек grid-a(я не использовал, но полагаю, что это видимые столбцов, их ширина e.t.c.)
MaxColumnWIdth и MinColumnWidth – ограничения по ширине столбцов
MultiColorSort – позволяет проводить сортировку по нескольким колонкам(с зажатым Ctrl)
PostOnEnterKey – Post по нажатию Enter(?)
ReadOnlyCellColor – выделять другим цветом, ячейки только для чтения
RowResize – разрешается изменять высоту строк(если отключено свойство AutoSizeRows)
TitleArrow - показывает стрелочку в верхнем левом углу, вызывающую диалог, позволяющий скрывать/показывать колонки
TitleButton - заголовки колонок начинают работать как кнопки(нажимаются). При включении этого свойства, колонки мож
но перетаскивать правой кнопкой мышки(а обычно - левой).
TitleButtonAllowMove - разрешает перетаскивать колонки при включенном режиме TitleButton левой кнопкой мышки
SelectColumn и SelectColumnDialog – позволяет настроить параметры этого диалога
ShowMemos – отображать текстовые блобы в grid-e.
ShowCellHint, ShowTitleHint – не смотрел
SortWith – теоретически это свойство управляет автосортировкой записей в гриде. Но мне не удалось подружить его с ClientDataset-ом.
UseXPThemes – отрисовывать grid с использованием тем Windows.
WordWrap – включает многострочное отображение для заголовков, строковых полей и полей типа memo.
А теперь десерт. EditControls – это, наверное, самое вкусное свойство, позволяющее назначить для каждого поля свой тип редактора. Редактором может быть любой DB Editor. Вот как выглядит присвоение редактора в design-time:
В коде, редактор можно установить следующим образом:
edtText1.DataSource:=JvDbGrid1.DataSource; edtText1.DataField := ‘RES_NAME’; with JvDbGrid1.EditControls.Add do begin FieldName:=’RES_NAME’; ControlName:=’edtText1’; end;
Помимо этого, при включенном режиме Multiselect, JvDbGrid позволяет выделять записи мышкой(с зажатым Shift-ом).
p.s. при написании этого поста, нехороший Windows принудительно перезапустил компьютер, но пост спасся, благодаря автосохранению в Windows Live Writer.
* TJvIniFormStorage – это бывший TrxFormStorage из RxLib. Существенно улучшенный.
Версия для мобильного

13 человек заметили этот пост: