FindByTag(Tag: String): IStyleContainerCollection;
FindByTag(Tag: string): Prognoz.Platform.Interop.Drawing.IStyleContainerCollection;
Tag. Текстовая метка.
Метод FindByTag осуществляет поиск контейнера стиля по текстовой метке.
Поиск является регистронезависимым.
Текстовая метка позволяет определить стиль какого визуализатора содержится в контейнере:
BubbleChart. Стиль пузырьковой диаграммы;
BubbleTree. Стиль пузырькового дерева;
CHART. Стиль диаграммы;
ExternLegend. Стиль внешней легенды диаграмм;
MAP. Стиль карты (топооснова в формате TBS);
MapChart. Стиль карты (топооснова в формате SVG);
TAB. Стиль ячейки таблицы;
TreeMap. Стиль плоского дерева.
Для выполнения примера в репозитории предполагается наличие таблицы стилей с идентификатором «STYLE_TB» и экспресс-отчета с идентификатором «EAX_STYLE_MAP». Данный отчет должен содержать диаграмму.
Добавьте ссылки на системные сборки: Drawing, Express, Metabase.
Sub UserProc;
Var
mb: IMetabase;
styleSheet: IStyleSheet;
contCollection: IStyleContainerCollection;
container: IStyleContainer;
report: IEaxAnalyzer;
entity: IStyledEntity;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем таблицу стилей
styleSheet := mb.ItemById("STYLE_TB").Bind As IStyleSheet;
// Выполняем поиск контейнеров, содержащих стили для диаграмм
contCollection := styleSheet.FindByTag("CHART");
// Если контейнер найден, то получаем первый контейнер из всех найденных
If contCollection.Count > 0 Then
container := contCollection.Item(0);
// Получаем экспресс-отчет
report := mb.ItemById("EAX_STYLE_MAP").Edit As IEaxAnalyzer;
// Получаем стиль диаграммы
entity := report.Chart.Chart As IStyledEntity;
// Выполняем загрузку стиля для диаграммы из контейнера стиля
entity.LoadStyleFromContainer(container);
// Сохраняем отчет
(report As IMetabaseObject).Save;
End If;
End Sub UserProc;
В результате выполнения примера в таблице стилей «STYLE_TB» будет выполнен поиск стилей, предназначенных для диаграммы. Если стили будут найдены, то первый найденный стиль будет применён для оформления диаграммы в отчете «EAX_STYLE_MAP».
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Express;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
styleSheet: IStyleSheet;
contCollection: IStyleContainerCollection;
container: IStyleContainer;
report: IEaxAnalyzer;
entity: IStyledEntity;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем таблицу стилей
styleSheet := mb.ItemById["STYLE_TB"].Bind() As IStyleSheet;
// Выполняем поиск контейнеров, содержащих стили для диаграмм
contCollection := styleSheet.FindByTag("CHART");
// Если контейнер найден, то получаем первый контейнер из всех найденных
If contCollection.Count > 0 Then
container := contCollection.Item[0];
// Получаем экспресс-отчет
report := mb.ItemById["EAX_STYLE_MAP"].Edit() As IEaxAnalyzer;
// Получаем стиль диаграммы
entity := report.Chart.Chart As IStyledEntity;
// Выполняем загрузку стиля для диаграммы из контейнера стиля
entity.LoadStyleFromContainer(container);
// Сохраняем отчет
(report As IMetabaseObject).Save();
End If;
End Sub;
См. также: