Delphi. SQLite. FireDac. Обвязка для TreeView

На предыдущую страницу…


Опять о «деревьях»…
🙂

Но тем не менее, тема все еще актуальна, поскольку в составе стандартного набора компонентов Delphi все еще нет компонента типа TTreeView, но ориентированного на таблицы БД (что-то вроде DBTreeView).

В этой статье вкратце рассматривается вариант обвязки (для TTreeView), ориентированной на отображение таблицы БД (SQLlite), содержащей иерархически структурированные строки.


Скачать/посмотреть:

Исходный текст (pas) обвязки в ZIP-архиве;
Исходный текст обвязки в HTML-формате;
Исходные тексты (pas) демонстрационного примера в ZIP-архиве;
Исходные тексты демонстрационного примера в HTML-формате (ZIP-архив);
Демонстрационный пример (EXE) в ZIP-архиве.

Все пояснения к обвязке и демонстрационному примеру приведены в соответствующих исходниках


На рисунке ниже приведена структура таблицы БД «tree_01«, которая используется в демонстрационных целях.

См., также, в HTML-формате.

На рисунке ниже приведено содержание таблицы БД «tree_01«.

См., также, в HTML-формате.


На рисунке ниже приведен скрин главной формы Приложения.

Исходный текст (в HTML-формате) см. ЗДЕСЬ, ЗДЕСЬ и ЗДЕСЬ.

Чтобы сформировать «дерево», нажмите на кнопку, обозначенную выноской-1 на рисунке выше.
Важно! Дерево выстраивается от выбранной строки в таблице, обозначенной выноской-4 на рисунке выше.

Примечание — компоненты TTreeView (выноска-2), TListBox (выноска-3) и TDBGrid (выноска-4) синхронизированы в том смысле, что при «перемещении» (по любому из этих компонентов) — автоматически выполняется навигация по другим компонентам (позиционирование на соответствующих строках) — см. тексты функций ListBox_Synhro_by_TreeView() и TreeView_Synhro_by_ListBox() (и их использование здесь).

На рисунке ниже приведен внешний вид формы после нажатия на кнопку (см. выноска-1).

Примечание — для формирования дерева используется функция Tree_CreateFromTableDB(), (см. ее использование здесь).

Для выгрузки дерева (TTreeView) в TStrings используется функция TreeView_Node_Childs_to_TStrings() (см. ее использование здесь).

Чтобы выполнить это — выберите пункт меню TStrings (см. рисунок ниже).

На рисунке ниже приведен результат.

Для выгрузки дерева (TTreeView) в Excel (с использованием OLE Automation) служит функция TreeView_SaveToExcel() (см. ее использование здесь).

Чтобы выполнить это — выберите пункт меню Excel (OLE Automation), см. рисунок ниже.

На рисунке ниже приведен результат.

Для выгрузки всех «Потомков» выбранного узла дерева (TTreeView) используется функция TreeView_Node_Childs_to_TStrings(), (см. ее использование здесь).
Это может потребоваться, например, при удалении какой-либо строки в таблице БД, которая является Предком для какого-то множества строк.
Выгружаются ID соответствующих строк в TStrings.

Чтобы выполнить это — выберите пункт меню Выгрузить ID потомков выбранного узла в TStrings, см. рисунок ниже.

На рисунке ниже приведен результат.

Примечание — список выгруженных идентификаторов строк таблицы БД (см. рисунок выше) соответствует сформированному дереву на рисунке ниже.


На рисунке ниже приведен пример формирования «дерева» от выбранной строки в таблице.


В состав обвязки входит намного больше соответствующих функций, чем перечислены выше. Все они (и их краткое описАние) находятся в файле __DBTreeView_FireDac.pas (см., также, в HTML-формате).


Скачать/посмотреть:

Исходный текст (pas) обвязки в ZIP-архиве;
Исходный текст обвязки в HTML-формате;
Исходные тексты (pas) демонстрационного примера в ZIP-архиве;
Исходные тексты демонстрационного примера в HTML-формате (ZIP-архив);
Демонстрационный пример (EXE) в ZIP-архиве.


На предыдущую страницу…


Дата: 06.03.2024