SaveStyleToContainer(Value: IStyleContainer);
SaveStyleToContainer(Value: Prognoz.Platform.Interop.Drawing.IStyleContainer);
Value. Контейнер, в который экспортируется стиль.
Метод SaveStyleToContainer экспортирует стиль в указанный контейнер.
Для импорта стиля из указанного контейнера используйте метод IStyledEntity.LoadStyleFromContainer.
Для выполнения примера в репозитории предполагается наличие таблицы стилей с идентификатором «STYLE_TB» и экспресс-отчета с идентификатором «EAX_STYLE_MAP». Данный отчет должен содержать карту.
Добавьте ссылки на системные сборки: Drawing, Express, Metabase.
Sub UserProc;
Var
mb: IMetabase;
styleSheet: IStyleSheet;
container : IStyleContainer;
report: IEaxAnalyzer;
entity: IStyledEntity;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем таблицу стилей
styleSheet := mb.ItemById("STYLE_TB").Edit As IStyleSheet;
// Получаем экспресс-отчет
report := mb.ItemById("EAX_STYLE_MAP").Edit As IEaxAnalyzer;
// Получаем стиль карты
entity := report.MapChart.MapChart As IStyledEntity;
// Выводим текстовую метку стиля в окно консоли
Debug.WriteLine(entity.ContainerTag);
// Задаем тип используемой таблицы стилей
entity.SheetType := StyleSheetType.InternalObject;
// Добавляем контейнер стилей в таблицу стилей
container := styleSheet.Add;
// Указываем ключ контейнера
entity.ContainerKey := container.Key;
// Задаем имя контейнера стилей
container.Name := "Стиль для карты из экспресс-отчета";
// Выгружаем стиль карты в контейнер
entity.SaveStyleToContainer(container);
// Сохраняем представление стиля
container.Preview.SaveToFile("C:\MapStylePreview.png");
// Сохраняем таблицу стилей
(styleSheet As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера стиль оформления карты из экспресс-отчета «EAX_STYLE_MAP» будет экспортирован во внешнюю таблицу стилей «STYLE_TB».
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Express;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
styleSheet: IStyleSheet;
container: IStyleContainer;
report: IEaxAnalyzer;
entity: IStyledEntity;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем таблицу стилей
styleSheet := mb.ItemById["STYLE_TB"].Edit() As IStyleSheet;
// Получаем экспресс-отчет
report := mb.ItemById["EAX_STYLE_MAP"].Edit() As IEaxAnalyzer;
// Получаем стиль карты
entity := report.MapChart.MapChart As IStyledEntity;
// Выводим текстовую метку стиля в окно консоли
System.Diagnostics.Debug.WriteLine(entity.ContainerTag);
// Задаем тип используемой таблицы стилей
entity.SheetType := StyleSheetType.sstInternalObject;
// Добавляем контейнер стилей в таблицу стилей
container := styleSheet.Add(0, "");
// Указываем ключ контейнера
entity.ContainerKey := container.Key;
// Задаем имя контейнера стилей
container.Name := "Стиль для карты из экспресс-отчета";
// Выгружаем стиль карты в контейнер
entity.SaveStyleToContainer(container);
// Сохраняем представление стиля
container.Preview.SaveToFile("C:\MapStylePreview.png");
// Сохраняем таблицу стилей
(styleSheet As IMetabaseObject).Save();
End Sub;
См. также: