TopobaseByTimePoint(Value: Integer): ITopobase;
TopobaseByTimePoint[Value: integer]: Prognoz.Platform.Interop.Topobase.Topobase;
Value. Time line point index.
The TopobaseKeyByTimePoint property returns key of the topobase, which is displayed in the specified time line point.
Displaying of different topobases in different time line points is available if version territorial dimension is used. In this dimension various values by the TOPO_ID attribute are specified for the elements that are actual at a certain period of time. Repository topobase keys are specified as values of this attribute. When the map is working, the topobase, which is determined in the TOPO_ID attribute for element (if the element is selected), or for parent element (if several elements are selected) is displayed, and which is relevant in the current time point.
To reset topobase for specified in the repository by default , use the IEaxDataAreaSlice.ResetTopobase method.
Executing the example requires that repository contains an express report with the EXPRESS_TOPOBASE identifier. The report contains territory dimension built on the base of version dictionary in its structure. Different topobases are determined for different periods.
Add links to the Express, Map, Metabase, Topobase system assemblies.
Sub UserProc;
Var
MB: IMetabase;
Analyzer: IEaxAnalyzer;
DataArea: IEaxDataArea;
Slice: IEaxDataAreaSlice;
Map: IMap;
Topobase: ITopobase;
TopoKey: Integer;
Begin
// Get repository
MB := MetabaseClass.Active;
// Get express report
Analyzer := MB.ItemById("EXPRESS_TOPOBASE").Edit As IEaxAnalyzer;
// Get data area
DataArea := Analyzer.DataArea;
// Get data slice
Slice := DataArea.Slices.Item(0);
// Get map
Map := Analyzer.Map.Map;
// Get topobase from specified point of time scale
Topobase := Slice.TopobaseByTimePoint(Map.TimePoint) As ITopobase;
// Set topobase
Slice.Topobase := Topobase;
// Get and display key from specified point of time scale
TopoKey := Slice.TopobaseKeyByTimePoint(Map.TimePoint);
Debug.WriteLine("Topobase key - " + TopoKey.ToString);
// Object visibility in report
Analyzer.MapChart.Visible := True;
// Save changes
(Analyzer As IMetabaseObject).Save;
End Sub UserProc;
After executing the example the topobase used by express report map in current time point will be loaded in express report.
The requirements and result of the Fore.NET Example execution match with those in the Fore Example.
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
// Get repository
MB := Params.Metabase;
// Get express report
Analyzer := MB.ItemById["EXPRESS_TOPOBASE"].Edit() As IEaxAnalyzer;
// Get data area
DataArea := Analyzer.DataArea;
// Get data slice
Slice := DataArea.Slices.Item[0];
// Get map
Map := Analyzer.Map.Map;
// Get topobase from specified point of time scale
Topobase := Slice.TopobaseByTimePoint[Map.TimePoint] As Topobase;
// Set topobase
Slice.Topobase := Topobase;
// Get and display key from specified point of time scale
TopoKey := Slice.TopobaseKeyByTimePoint[Map.TimePoint];
System.Diagnostics.Debug.WriteLine("Topobase key - " + TopoKey.ToString());
// Object visibility in report
Analyzer.MapChart.Visible := True;
// Save changes
(Analyzer As IMetabaseObject).Save();
End Sub;
See also: