MultipleAttributesSeparator: String;
MultipleAttributesSeparator: string;
Свойство MultipleAttributesSeparator определяет символ-разделитель между наименованиями атрибутов.
Свойство актуально, если свойство IEaxDataAreaSliceProperties.MultipleAttributesEnabled принимает значение True.
Разделителем может служить любой одиночный символ.
Если заданный пользователем разделитель не удовлетворяет условию, то используется стандартный разделитель «|».
Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS_REPORT». В экспресс-отчете должно быть выбрано несколько атрибутов измерения с идентификатором «DIC_RF».
Добавьте ссылки на системные сборки: Dimensions, Express, Metabase, Pivot.
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
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим экспресс-отчет
Express := MB.ItemById("EXPRESS_REPORT").Edit As IEaxAnalyzer;
// Получим отметку, по которой строится таблица
SelSet := Express.Pivot.Selection;
DimSel := SelSet.FindById("DIC_RF");
// Получим коллекцию значений атрибутов справочника
Attrs := DimSel.Dimension.Attributes;
// Получим аналитическую область данных
DataArea := Express.DataArea;
// Получим срез источника данных
Areaslice := DataArea.Slices.Item(0);
// Получим свойства среза источника данных
Properties := Areaslice.Properties;
// Проверим используется ли режим отображения нескольких атрибутов справочника
If Properties.MultipleAttributesEnabled = False Then
Properties.MultipleAttributesEnabled := True;
End If;
// Уберем пробелы между наименованиями атрибутов
Properties.MultipleAttributesSpaced := False;
// Установим другой разделитель
Properties.MultipleAttributesSeparator := ":";
// Получим массив ключей атрибутов
SetDimAttributes := New Integer[Attrs.Count];
For i := 0 To Attrs.Count - 1 Do
SetDimAttributes[i] := Attrs.Item(i).Attribute.Key;
End For;
// Установим отметку
атрибутов измерения
Properties.SetDimensionNamingAttributes(Dimsel.Dimension.Key, SetDimAttributes);
// Получим отметку атрибутов измерения
GetDimAttributes := Properties.GetDimensionNamingAttributes(Dimsel.Dimension.Key);
// Выведем в окно консоли количество элементов в отметке
Debug.WriteLine("Количество элементов в отметке - " + GetDimAttributes.Length.ToString);
// Сохраним изменения
(Express As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера:
наименования атрибутов не будут разделяться между собой пробелами до и после нового разделителя «:» в дереве измерений;
в дереве измерений у заданного измерения будут выводиться значения всех атрибутов;
в окно консоли выведется количество элементов в отметке.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
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
// Получим репозиторий
MB := Params.Metabase;
// Получим экспресс-отчет
Express := MB.ItemById["EXPRESS_REPORT"].Edit() As IEaxAnalyzer;
// Получим отметку, по которой строится таблица
SelSet := Express.Pivot.Selection;
DimSel := SelSet.FindById("DIC_RF");
// Получим коллекцию значений атрибутов справочника
Attrs := DimSel.Dimension.Attributes;
// Получим аналитическую область данных
DataArea := Express.DataArea;
// Получим срез источника данных
Areaslice := DataArea.Slices.Item[0];
// Получим свойства среза источника данных
Properties := Areaslice.Properties;
// Проверим используется ли режим отображения нескольких атрибутов справочника
If Properties.MultipleAttributesEnabled = False Then
Properties.MultipleAttributesEnabled := True;
End If;
// Уберем пробелы между наименованиями атрибутов
Properties.MultipleAttributesSpaced := False;
// Установим другой разделитель
Properties.MultipleAttributesSeparator := ":";
// Получим массив ключей атрибутов
SetDimAttributes := New Integer[Attrs.Count];
For i := 0 To Attrs.Count - 1 Do
SetDimAttributes[i] := Attrs.Item[i].Attribute.Key As Integer;
End For;
// Установим отметку атрибутов измерения
Properties.SetDimensionNamingAttributes(Dimsel.Dimension.Key, SetDimAttributes);
// Получим отметку атрибутов измерения
GetDimAttributes := Properties.GetDimensionNamingAttributes(Dimsel.Dimension.Key);
// Выведем в окно консоли количество элементов в отметке
System.Diagnostics.Debug.WriteLine
("Количество элементов в отметке - " + GetDimAttributes.Length.ToString());
// Сохраним изменения
(Express As IMetabaseObject).Save();
End Sub;
См. также: