MultipleAttributesSeparator: String;
MultipleAttributesSeparator: string;
The MultipleAttributesSeparator property determines a separator between attribute names.
The property is relevant if the IEaxDataAreaSliceProperties.MultipleAttributesEnabled property is set to True.
Any single character can be used as a separator.
If a user-defined separator does not satisfy the condition, the standard separator "|" is used.
Executing the example requires that the repository contains an express report with the EXPRESS_REPORT identifier. It is required to select several dimension attributes with the DIC_RF identifier in the express report.
Add links to the Dimensions, Express, Metabase, Pivot system assemblies.
Sub UserProc;
Var
MB: IMetabase;
Express: IEaxAnalyzer;
SelSet: IDimSelectionSet;
DimSel: IDimSelection;
Attrs: IDimAttributesInstance;
DataArea: IEaxDataArea;
Areaslice: IEaxDataAreaSlice;
Properties: IEaxDataAreaSliceProperties;
GetDimAttributes, SetDimAttributes: Array Of Integer;
i: integer;
Begin
// Get repository
MB := MetabaseClass.Active;
// Get express report
Express := MB.ItemById("EXPRESS_REPORT").Edit As IEaxAnalyzer;
// Get the selection, by which table is built
SelSet := Express.Pivot.Selection;
DimSel := SelSet.FindById("DIC_RF");
// Get collection of dictionary attributes values
Attrs := DimSel.Dimension.Attributes;
// Get analytical data area
DataArea := Express.DataArea;
// Get data source slice
Areaslice := DataArea.Slices.Item(0);
// Get data source slice properties
Properties := Areaslice.Properties;
// Check if several dictionary attributes display mode is used
If Properties.MultipleAttributesEnabled = False Then
Properties.MultipleAttributesEnabled := True;
End If;
// Remove white spaces between attribute names
Properties.MultipleAttributesSpaced := False;
// Set other separator
Properties.MultipleAttributesSeparator := ":";
// Get array of attributes keys
SetDimAttributes := New Integer[Attrs.Count];
For i := 0 To Attrs.Count - 1 Do
SetDimAttributes[i] := Attrs.Item(i).Attribute.Key;
End For;
// Set selection of dimension attributes
Properties.SetDimensionNamingAttributes(Dimsel.Dimension.Key, SetDimAttributes);
// Get selection of dimension attributes
GetDimAttributes := Properties.GetDimensionNamingAttributes(Dimsel.Dimension.Key);
// Display to the console number of elements in selection
Debug.WriteLine("Number of elements in selection - " + GetDimAttributes.Length.ToString);
// Save changes
(Express As IMetabaseObject).Save;
End Sub UserProc;
After executing the example:
Attribute names are not separated with white spaces before and after a new separator ":" in the dimension tree.
Values of all attributes of the specified dimension will be displayed in the dimension tree.
The console window displays the number of elements in selection.
The requirements and result of the Fore.NET Example execution match with those in the Fore Example.
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Pivot;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Express: IEaxAnalyzer;
SelSet: IDimSelectionSet;
DimSel: IDimSelection;
Attrs: IDimAttributesInstance;
DataArea: IEaxDataArea;
Areaslice: IEaxDataAreaSlice;
Properties: IEaxDataAreaSliceProperties;
GetDimAttributes, SetDimAttributes: Array;
i: integer;
Begin
// Get repository
MB := Params.Metabase;
// Get express report
Express := MB.ItemById["EXPRESS_REPORT"].Edit() As IEaxAnalyzer;
// Get the selection, by which table is built
SelSet := Express.Pivot.Selection;
DimSel := SelSet.FindById("DIC_RF");
// Get collection of dictionary attributes values
Attrs := DimSel.Dimension.Attributes;
// Get analytical data area
DataArea := Express.DataArea;
// Get data source slice
Areaslice := DataArea.Slices.Item[0];
// Get data source slice properties
Properties := Areaslice.Properties;
// Check if several dictionary attributes display mode is used
If Properties.MultipleAttributesEnabled = False Then
Properties.MultipleAttributesEnabled := True;
End If;
// Remove white spaces between attribute names
Properties.MultipleAttributesSpaced := False;
// Set other separator
Properties.MultipleAttributesSeparator := ":";
// Get array of attributes keys
SetDimAttributes := New Integer[Attrs.Count];
For i := 0 To Attrs.Count - 1 Do
SetDimAttributes[i] := Attrs.Item[i].Attribute.Key As Integer;
End For;
// Set selection of dimension attributes
Properties.SetDimensionNamingAttributes(Dimsel.Dimension.Key, SetDimAttributes);
// Get selection of dimension attributes
GetDimAttributes := Properties.GetDimensionNamingAttributes(Dimsel.Dimension.Key);
// Display to the console number of elements in selection
System.Diagnostics.Debug.WriteLine
("Number of elements in dimension - " + GetDimAttributes.Length.ToString());
// Save changes
(Express As IMetabaseObject).Save();
End Sub;
See also: