Attribute: String;
Attribute: String;
The Attribute property determines attribute of the map layer.
Executing the example requires a regular report with the REGULAR_REPORT identifier, the report active sheet contains a map with the Regions layer. A cube is added to the list of report data sources, the cube contains the Territories dimension. Add links to the Metabase, Report, Tab, Map, Dimensions system assemblies.
Sub UserProc;
Var
Mb: IMetabase;
MObj: IMetabaseObject;
Report: IPrxReport;
Tab: ITabSheet;
Map: IMap;
BarVisual: IMapBarVisual;
PrxDA: IPrxMapDataAdapter;
Slice: IPrxSlice;
MapDAdapt: IPrxMapDataAdapter;
i, j: Integer;
Begin
Mb := MetabaseClass.Active;
MObj := Mb.ItemById("REGULAR_REPORT").Edit;
Report := MObj As IPrxReport;
Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
Map := Tab.Objects.Item(1).Extension As IMap;
BarVisual := Map.Layers.FindByName("Regions").Visuals.AddBarVisual;
Slice := Report.DataSources.Item(0).Slices.Item(0);
PrxDA := Slice.CreateMapDataAdapter(PrxMapAdapter.Dynamic);
PrxDA.Dimension := Slice.Dimensions.FindByName("Territories").Dimension.Dimension;
PrxDa.Index := PrxDA.Dimension.Indexes.PrimaryIndex;
PrxDA.Attribute := "ID";
BarVisual.DataAdapter := PrxDA As IMapDynamicDataAdapter;
PrxDA.Expression.AsString := "AT[Id]+" + Char.Chr(34) + ")" + Char.Chr(34) + "+AT[Name]";
PrxDa.Expression2.AsString := "VALUE";
Map.Layers.FindByName("Regions").TerritoryInfoAdapter := PrxDa;
MObj.Save;
End Sub UserProc;
After executing the example a bar indicator is created for the Regions map layer and a custom label format is set for names and identifiers in the map layer territory info.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Map;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
Imports Prognoz.Platform.Interop.Dimensions;
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
MObj: IMetabaseObject;
Report: IPrxReport;
Tab: ITabSheet;
Map: IMap;
BarVisual: IMapBarVisual;
PrxDA: IPrxMapDataAdapter;
Slice: IPrxSlice;
MapDAdapt: IPrxMapDataAdapter;
i, j: Integer;
Begin
Mb := Params.Metabase;
MObj := Mb.ItemById["REGULAR_REPORT"].Edit();
Report := MObj As IPrxReport;
Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
Map := Tab.Objects.Item[1].Extension As IMap;
BarVisual := Map.Layers.FindByName["Regions"].Visuals.AddBarVisual();
Slice := Report.DataSources.Item[0].Slices.Item[0];
PrxDA := Slice.CreateMapDataAdapter(PrxMapAdapter.pmaDynamic);
PrxDA.Dimension := Slice.Dimensions.FindByName("Territories").Dimension.Dimension;
PrxDa.Index := PrxDA.Dimension.Indexes.PrimaryIndex;
PrxDA.Attribute := "ID";
BarVisual.DataAdapter := PrxDA As IMapDynamicDataAdapter;
PrxDA.Expression.AsString := "AT[Id]+\u0022)\u0022+AT[Name]";
PrxDa.Expression2.AsString := "VALUE";
Map.Layers.FindByName["Regions"].TerritoryInfoAdapter := PrxDa;
MObj.Save();
End Sub;
See also: