1.2.15. AdvDaigram¶
Класс фрейма:
-
class
btkFrame.
TbtkLookUpAdvDiagramFrame
¶
1.2.15.1. Связывание элементов диаграммы с объектами БД¶
К элементам диаграммы можно привязать объекты БД, относящиеся к определенному классу, в результате чего в контекстном меню элемента появятся дополнительные операции, с помощью которых можно взаимодействовать как с самим элементом, так и с привязанным объектом.
Связываемые объекты должны принадлежать классам, которые указываются в пространстве классов диаграммы. Для каждого указываемого класса выбирается его пространство операций.
Просмотреть и отредактировать имеющиеся в базе пространства операций можно с помощью выборки SEL_BTD_OPERATIONDOMAIN.List
. Все перечисленные в пространстве операции будут отображаться в контекстном меню элемента диаграммы, если с ним связан хотябы один объект класса, использующего данное пространство операций. Если к элементу диаграммы привязано более одного объекта, в контекстном меню произойдет группировка операций по привязанным объектам.
Note
Если для класса привязываемого объекта в пространстве классов не указано пространство операций, в контекстное меню ничего не добавится.
Каждой операции можно установить флаг автоматического выполнения при привязывании и отвязывании объекта. Операции с этими включенными флагами будут выполнены после закрытия формы Объекты, привязанные к элементу схемы.
Операции выполняются в контексте выборки диаграммы. Для взаимодействия со связанными сущностями из скриптера имеются следующие переменные:
IDDBObject#
- ID привязанного объекта БД. Используется в методахTbtkAdvDiagramItems.SetItemsCaptionByObjectID()
иTbtkAdvDiagramItems.HighLightItemsByObjectID()
. Также можно использовать в методахTbtkScriptSelectionObject.CreateFormEx()
иTbtkScriptSelectionObject.DoLookup()
в качестве значения параметра ID объекта выборки.IDOBJ#
- ID элемента диаграммы.
<PASCAL>
if Assigned(diagram) then
begin
diagram.BeginUpdate;
try
diagram.HighLightedItemBorderThickness := 2;
diagram.HighLightedItemBorderColor := StrToInt('$265700');
diagram.Items.HighLightItemsByObjectID(GetVar('IDDBObject#'), true);
finally
diagram.EndUpdate;
end;
end
else
ShowMessage('Диаграмма не найдена');
</PASCAL>
<pascal>
CreateFormEx('', 'SELCARD_EO_AccPoint_Tree', fcfModal,
['idAccPointItem#'], [GetVar('IDDBObject#')]);
</pascal>
Для того, чтобы связать элемент диаграммы с объектом БД необходимо вызвать контекстное меню необходимого элемента и выбрать “Привязанные объекты БД…”. После этого откроется форма с объектами БД, привязанными к данному элементу. Для добавления новых объектов, необходимо вызвать одну из операций Связать с объектом класса: X
, где X
- названия классов, перечисленных в текущем пространстве классов диаграммы.