TopobaseByTimePoint(Value: Integer): ITopobase;
TopobaseByTimePoint[Value: integer]: Prognoz.Platform.Interop.Topobase.Topobase;
Value. Индекс точки временной шкалы.
Свойство TopobaseByTimePoint возвращает топооснову, которая отображается в указанной точке временной шкалы.
Отображение различных топооснов в разных точках временной шкалы доступно, если используется версионное территориальное измерение. В этом измерении для элементов, актуальных в определенный период времени, указываются различные значения по атрибуту TOPO_ID. В качестве значений данного атрибута указываются ключи топооснов репозитория. При работе карты будет отображаться топооснова, которая определена в атрибуте TOPO_ID для элемента (если выделен один элемент) либо для родительского элемента (если выделены несколько элементов) и которая актуальна в текущей временной точке.
Для сброса топоосновы на заданную в репозитории по умолчанию используйте метод IEaxDataAreaSlice.ResetTopobase.
Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS_TOPOBASE». Отчет содержит в своей структуре территориальное измерение, построенное на базе версионного справочника. Для различных периодов элементов определены различные топоосновы.
Добавьте ссылки на системные сборки: Express, Map, Metabase, Topobase.
Sub UserProc;
Var
MB: IMetabase;
Analyzer: IEaxAnalyzer;
DataArea: IEaxDataArea;
Slice: IEaxDataAreaSlice;
Map: IMap;
Topobase: ITopobase;
TopoKey: Integer;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим экспресс-отчет
Analyzer := MB.ItemById("EXPRESS_TOPOBASE").Edit As IEaxAnalyzer;
// Получим область данных
DataArea := Analyzer.DataArea;
// Получим срез данных
Slice := DataArea.Slices.Item(0);
// Получим карту
Map := Analyzer.Map.Map;
// Получим топооснову из указанной точки временной шкалы
Topobase := Slice.TopobaseByTimePoint(Map.TimePoint) As ITopobase;
// Зададим топооснову
Slice.Topobase := Topobase;
// Получим и выведем ключ из указанной точки временной шкалы
TopoKey := Slice.TopobaseKeyByTimePoint(Map.TimePoint);
Debug.WriteLine("Ключ топоосновы - " + TopoKey.ToString);
// Видимость объекта в отчете
Analyzer.MapChart.Visible := True;
// Сохраним изменения
(Analyzer As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера в экспресс-отчет будет загружена та топооснова, которая используется картой экспресс-отчета в текущей временной точке.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Map;
Imports Prognoz.Platform.Interop.Topobase;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Analyzer: IEaxAnalyzer;
DataArea: IEaxDataArea;
Slice: IEaxDataAreaSlice;
Map: IMap;
Topobase: Topobase;
TopoKey: uinteger;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим экспресс-отчет
Analyzer := MB.ItemById["EXPRESS_TOPOBASE"].Edit() As IEaxAnalyzer;
// Получим область данных
DataArea := Analyzer.DataArea;
// Получим срез данных
Slice := DataArea.Slices.Item[0];
// Получим карту
Map := Analyzer.Map.Map;
// Получим топооснову из указанной точки временной шкалы
Topobase := Slice.TopobaseByTimePoint[Map.TimePoint] As Topobase;
// Зададим топооснову
Slice.Topobase := Topobase;
// Получим и выведем ключ из указанной точки временной шкалы
TopoKey := Slice.TopobaseKeyByTimePoint[Map.TimePoint];
System.Diagnostics.Debug.WriteLine("Ключ топоосновы - " + TopoKey.ToString());
// Видимость объекта в отчете
Analyzer.MapChart.Visible := True;
// Сохраним изменения
(Analyzer As IMetabaseObject).Save();
End Sub;
См. также: