SpecificXML: String;
SpecificXML: String;
Свойство SpecificXML определяет отображаемый фрагмент топоосновы в формате XML.
Отображаемый фрагмент топоосновы должен являться частью исходной топоосновы. Для получения исходной топоосновы используйте свойство IPrxMap.OriginalTopobase.
Для сброса отображаемой топоосновы задайте для свойства SpecificXML пустое значение.
Для выполнения примера в репозитории предполагается наличие регламентного отчета с идентификатором «PRX_MAP». Данный отчет должен содержать карту на активном листе.
В модуле подключите системные сборки: Metabase, Report, Tab, Topobase.
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
Report: IPrxReport;
Tab: ITabSheet;
Map: IPrxMap;
Topo, SpecTopo: ITopobase;
Tree: String;
Begin
// Получаем текущий
репозиторий
MB := MetabaseClass.Active;
// Получаем отчет
MObj := MB.ItemById("PRX_MAP").Edit;
// Получаем карту
Report := MObj As IPrxReport;
Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
Map := Tab.Objects.Item(0).Extension As IPrxMap;
// Получаем топооснову
Topo := Map.OriginalTopobase As ITopobase;
// Получаем дерево-структуру топоосновы
Tree := Topo.Tree;
// Выводим её в окно консоли
Debug.WriteLine(Tree);
// Задаем новое дерево-структуру для топоосновы
Tree := "<Topobase><Layer Name=" + """" + "RootLayer" + """" + " Id=" + """" + "1" + """" +
"><Layer Name=" + """" + "Regions" + """" + " Id=" + """" + "2" + """" +
"><Shape Name=" + """" + "Республика Адыгея" + """" + " Id=" + """" + "135" + """" + "/></Layer></Layer></Topobase>";
// Отображаем новую структуру на карте
Map.SpecificXML := Tree;
// Автоматически масштабируем карту
Map.AutoScaled := True;
// Сохраняем изменения
MObj.Save;
End Sub UserProc;
В результате выполнения примера в отчете будет отображен масштабированный фрагмент исходной карты.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
Imports Prognoz.Platform.Interop.Topobase;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObject;
Report: IPrxReport;
Tab: ITabSheet;
Map: IPrxMap;
Topo, SpecTopo: ITopobase;
Tree: String;
Begin
// Получаем текущий
репозиторий
MB := Params.Metabase;
// Получаем отчет
MObj := MB.ItemById["PRX_MAP"].Edit();
// Получаем карту
Report := MObj As IPrxReport;
Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
Map := Tab.Objects.Item[0].Extension As IPrxMap;
// Получаем топооснову
Topo := Map.OriginalTopobase As ITopobase;
// Получаем дерево-структуру топоосновы
Tree := Topo.Tree;
// Выводим её в окно консоли
System.Diagnostics.Debug.WriteLine(Tree);
// Задаем новое дерево-структуру для топоосновы
Tree := "<Topobase><Layer Name=" + """" + "RootLayer" + """" + " Id=" + """" + "1" + """" +
"><Layer Name=" + """" + "Regions" + """" + " Id=" + """" + "2" + """" +
"><Shape Name=" + """" + "Республика Адыгея" + """" + " Id=" + """" + "135" + """" + "/></Layer></Layer></Topobase>";
// Отображаем новую структуру на карте
Map.SpecificXML := Tree;
// Автоматически масштабируем карту
Map.AutoScaled := True;
// Сохраняем изменения
MObj.Save();
End Sub;
См. также: