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


Возможности, не поддерживаемые текущей версией TDBGridEh



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

Возможности, не поддерживаемые текущей версией TDBGridEh .


Данная версия TDBGridEh не поддерживает следующие возможности:

    TDBGridEh не может иметь индивидуальную высоту строк для каждой строки данных.

    TDBGridEh не может объединять ячейки данных горизонтально и вертикально.

Преобразование существующего компонента TDBGrid в TDBGridEh.


Несмотря на то, что TDBGridEh не является потомком компонента TCustomDBGrid, у них есть много похожих свойств.

Это позволяет конвертировать существующий компонент TDBGrid в TDBGridEh с минимальными потерями.

Для конвертирования существующего компонента TDBGrid в TDBGridEh сделайте следующее:

Откройте форму с компонентом TDBGrid в Delphi IDE.

Установите view form as Text (Alt-F12) 

Переименуйте все типы TDBGrid в TDBGridEh  ('object DBGrid1: TDBGrid' -> 'object DBGrid1: TDBGridEh')

Установите view form обратно как Form (Alt-F12)

В published части описания класса формы переименуйте все объекты TDBGrid в TDBGridEh ('DBGrid1: TDBGrid;' -> 'DBGrid1: TDBGridEh;' )

Попробуйте перекомпилировать проект.

Использование TPrintDBGridEh


Компонент TPrintDBGridEh предназнчен для предварительного просмотра и печати компонента TDBGridEh. Используйте функции Print и Preview для печати грида либо просмотра перед печатью в специально окне.

Rich text перед и после grid'а


TPrintDBGridEh позволяет печатать текст перед и после grid'а. Для этого используйте свойства AfterGridText и BeforeGridText. Также используя метод SetSubstitutes, вы можете задавать подстановку текста в свойствах BeforeGridText и AfterGridText в процессе печати/предварительного просмотра.

Возможности, не поддерживающиеся текущей версией TPrintDBGridEh.


Эта версия TPrintDBGridEh не поддерживает следующие возможности:

    TPrintDBGridEh не может производить печать/предварительный просмотр нескольких grid'ов на одной странице.


FAQ List:


Q: Как производить печать/предварительный просмотр grid'а в ландшафтной ориентации листа.

A: TPrintDBGridEh не имеет специальных свойств для установки ориентации страницы. Перед вызовом функций Print либо Preview вы можете послать установить ориентацию для виртуального принтера.



uses ......, PrViewEh, Printers.

..............



procedure TForm1.bPreviewClick(Sender: TObject);

begin

PrinterPreview.Orientation := poLandscape;

PrintDBGridEh1.Preview;

end;

Использование компонента TDBSumList

Общие сведения о TDBSumList.


Вы можете использовать TDBSumList для подсчета общего количества записей в TDataSet'е с динамическим отсаживанием изменений. Установите свойство DataSet в DBSumList'е для которого вы хотите считать и напишите обработчик события SumListChanged для описания действий после того как суммы в TDBSumList'е будут изменены. TDBSumList имеет свойство SumCollection, которое представляет собой контейнер для объектов TDBSum. Каждый объект TDBSum задает свойства подсчета агрегированного значения. Свойства FieldName и GroupOperation определяют имя поля и тип агрегированного значения, SumValue содержит текущее агрегатное значение.

Специальный подтип TDBSumList'а встроен в компонент DBGridEh.


Как это работает и почему SumList иногда рассчитывает агрегатные значения некорректно.


Data-aware компоненты взаимодействуют с dataset'ом через объект TDataLink. TDataLink не имеет свойств или событий для динамического отслеживания изменений в датасете. Например, когда удаляется запись из dataset'а, у всех объектов TDataLink срабатывает событие deDataSetChange (оперделяющее что Весь датасет изменился) и мы не может определить какое именно зименение произошло в датасете, удалилось ли одна запись или изменился весь датасет. Что бы не пересчитывать все значение в датасете при небольших изменениях TDBSumList переопределяет следующие события dataset'а: OnAfterEdit, OnAfterInsert, OnAfterOpen, OnAfterPost, OnAfterScroll, OnBeforeDelete, OnAfterClose, но появляются следующие проблемы, такие как:

  Назначение этих событий в runtime деактивизируйте SumList.

  При некоторых условиях SumList может выдавать ошибку нарушения доступа (exception of access violation). SumList пробует вернуть события dataset'у, но dataset уже удален. Подобная ситуция случается, когда SumList (или grid) и dataset расположены на разных формах (в разных DataModul'ях). В данной ситуации попробуйте деактивировать SumList перед тем, как форма либо DataModule с dataset'ом будут удалены.

  SumList не сможет отследить изменения в dataset'е, если вы используете методы SetRange или ApplyRange. Вызывайте SumList.RecalAll после использования этих методов.

  SumList не сможет отслеживать изменения в dataset'е для detail-dataset в не-BDE dataset'ах. Вызывайте SumList.RecalAll после изменения активной записи в master dataset'е.

  Так же в других случаях если вы видите, что при некоторых условиях SumList рассчитывает значения некорректно, вызывайте метод RecalAll.



Использование edit-контролов

Общие сведения об edit-контролах.


EhLib включает пять edit-контролов: TDBEditEh, TDBDateTimeEditEh, TDBComboBoxEh, TDBNumberEditEh and TDBLookupComboboxEh. EhLib не содержит не-data-aware версий этих компонентов, т.к. каждый компонент может работать в режимах как data-aware так и не-data-aware. Базовый класс, для всех edit-контролов - это TCustomDBEditEh. TCustomDBEditEh обеспечивает поведение обычных контролов для редактирования текста и, если требуется, редактирования поля базы данных и позволяет:

    Базовые функции редактирования текста, такие как выделение текста, изменение выделенного текста и изменения регистра букв.

    Доступ к тексту компонента, маркированного как read-only либо указание password character для скрытия настоящего значения.

    Проверка правильности ввода - использование маски ввода.

    Запись отредактированного текса в поле базы данных.

    Отображение одной либо нескольких кнопок редактирования (с разными изображениями: выпадающий список, многоточие, up-down стрелки, знак +, знак - либо произвольная картинка) в правой части поля редактирования.

    Отображение картинки из ImageList в левой части поля редактирования.
Приложение может использовать свойства Text (тип String) и Value (тип Variant) для получения и установки текстового либо вариантного значений контрола. Свойство Text - это текст, который вы видите в контроле. Свойство Value содержит значения вариантного типа и может содержать типы данных, зависящие от типа контрола. Оно может содержит значение Null либо:

    Строкового типа для TDBEditEh и TDBComboBoxEh,

    Типов TDateTime, TDate, TTime, Double для TDBDateTimeEditEh,

    Все числовые типы для TDBNumberEditEh,

    TDBLookupComboboxEh содержит значение, зависящее от типа lookup-поля.
Если контрол подключен к полю датасета, то в момент присвоения значения свойствам Text либо Value автоматически занесутся в поле.
Все контролы имеют свойства Flat и AlwaysShowBorder для отображения 'плоской' рамки вокруг контрола.



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




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

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