Тема: Работа со вспомогательными деревьями TDMS
1. Описание
Данное решение позволяет отображать вспомогательное дерево,
аналогичное дереву объектов TDMS, определяя его корневой элемент
из кода. В окне состава отображается описание выбранного в дереве
объекта, имеется возможность сформировать контекстное меню (метод
*имя_контрола_формы *_ContextMenu).
Кнопку, отвечающую за состояние видимости объекта, можно
поместить на панель инструментов.
2. Основная часть
Для реализации этого компонента задействуется контрол
TDMSTreeCtrl. Корневые узлы добавляются в контрол командой InsertObject
–можно устанавливать корневым как объект TDMS, так и рабочий стол
(TDMSApplication.Desktop). В рамках данного решения в момент выбора
какого-либо узла дерева окно TDMS «Окно состава» заполняется по тем
же правилам, что и в случае выбора объекта в стандартном дереве TDMS.
Этого можно добиться командой TDMSApplication.Shell.ListInitialize,
предварительно создав виртуальную таблицу и добавив в неё содержимое
(ThisApplication.CreateSheet).
Контекстное меню
Для инициализации контекстного меню используется команда
ContextMenu – в сигнатуре содержится информация о координатах нажатия
правой кнопки, номер узла дерева, которому соответствует нажатие (0 –
если клик по пустому полю). Появление контекстного меню достигается
вызовом метода
result = menu.Show(xCoord, yCoord)
(здесь menu – объект
TDMSApplication.Dialogs.ContextMenu, а команды в него добавляются
строкой menu.AppendUserMenu №, «название кнопки», код_картинки).
Переменная result - номер выбранной пользователем команды из списка
меню.
3. Пример
Во вложении к данной публикации содержится бэкап базы Elaros, содержащий
описанный функционал (дерево открывается и закрывается по клику на команде
"Открыть вспомогательное дерево" панели задач).
Вспомогательное дерево формируется с узла "Внутренние проекты".
При клике на команде Files контекстного меню, если у объекта
есть вложенный файл, к этому объекту применяется команда "Окно просмотра" (CMD_VIEW).
4. Вывод
Данный функционал может использоваться для упрощения работы
отдельных специалистов, которым нужно показывать определенный срез
информации, как например:
• Работа со справочниками, где справочники показываются на
отдельной панели с возможностью отображать в окне состава
объекты, непосредственно связанные с выбранными элементами
справочника в дереве на панели
• Работа с подсистемой. Например, если в одной базе реализовано
несколько подсистем. Например, система Организационно-
распорядительного документооборота и система Технического
документооборота.
• Работа с личными подборками, которые также могут
отображаться на отдельной панели.
• Работа с текущими проектами\комплектами и т.д., для
упрощения поиска этих элементов в общем дереве.