IEaxSyncGroups.CreateGroup

Синтаксис

CreateSyncGroup(SyncItem: IEaxDimensionDescriptor): IEaxSyncGroup;;

Параметры

SyncItem. Описание измерения.

Описание

Метод CreateGroup создает связь синхронизированных измерений.

Комментарии

Тип связи зависит от типа добавляемого измерения:

Для настройки синхронизации требуемого измерения используйте IEaxSyncItem.

Используйте IEaxSyncItem.Dimension:

Для поиска элемента синхронизации по отметке/по выделению приведите IEaxSyncItem.Dimension к соответствующему типу IEaxPivotDimensionInstance/IEaxObjectDimensionInstance.

Для удаления связи синхронизированных измерений по ее индексу используйте IEaxSyncGroups.Remove.

Пример

Для выполнения примера в репозитории необходимо наличие регламентного отчёта с идентификатором REG_SYNCH, содержащего 3 табличные области, построенные на разных срезах одного источника. Источник данных должен содержать календарное измерение, основанное на календарном справочнике, и измерение «Страны», основанное на справочнике НСИ. Данные измерения будут использоваться при настройке синхронизации.

Добавьте ссылки на системные сборки: Express, Metabase, Report.

Sub UserProc;
Var
    MB: IMetabase;
    Report: IPrxReport;
    DataArea: IEaxDataArea;
    CountryDimKey: Integer;
    CalendarDimKey: Integer;
    // Группы синхронизации
    SyncGroups: IEaxSyncGroups;
    // Срезы
    Slices: IEaxDataAreaSlices;
    Slice1: IEaxDataAreaSlice;
    Slice2: IEaxDataAreaSlice;
    Slice3: IEaxDataAreaSlice;
    // Переменные для настройки синхронизации по отметке для измерения «Страны»
    Slice1_country_dim: IEaxPivotDimensionInstance;
    Slice2_country_dim: IEaxPivotDimensionInstance;
    PivotSelSyncGroup: IEaxSyncGroup;
    Slice2_SyncItem: IEaxSyncItem;
    // Переменные для настройки синхронизации по выделению для календарного измерения
    Slice2_calendar_dim: IEaxPivotDimensionInstance;
    Slice3_view: IEaxObject;
    Slice3_view_selection_manager: IEaxObjectSelectionManager;
    Slice3_calendar_dim: IEaxObjectDimensionInstance;
    Slice3_SyncItem: IEaxSyncItem;
    ObjectSelSyncGroup: IEaxSyncGroup;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим регламентный отчёт
    Report := (MB.ItemById("REP_SYNCH").Edit As IPrxReport);
    // Получим срезы
    DataArea := Report.DataArea;
    Slices := DataArea.Slices;
    Slice1 := Slices.Item(0);
    Slice2 := Slices.Item(1);
    Slice3 := Slices.Item(2);
    // Зададим ключ измерения "Страны" - ключ справочника НСИ, на котором основано измерение
    CountryDimKey := 21216;
    // Зададим ключ измерения "Календарь" - ключ календарного справочника, на котором основано измерение 
    CalendarDimKey := 21215
    
    // Синхронизация по отметке
    // Получим данные измерения для настройки синхронизации по отметке
    Slice1_country_dim := Slice1.GetDimension(CountryDimKey) As IEaxPivotDimensionInstance;
    Slice2_country_dim := Slice2.GetDimension(CountryDimKey) As IEaxPivotDimensionInstance;
    // Создадим синхронизацию по отметке между 1 и 2 срезами по измерению "Страны"
    SyncGroups := Report.SyncGroups;
    PivotSelSyncGroup := SyncGroups.CreateGroup(Slice1_country_dim As IEaxDimensionDescriptor);
    Slice2_SyncItem := PivotSelSyncGroup.Add(Slice2_country_dim As IEaxDimensionDescriptor);
    // Настроим у измерения "Страны" 2 среза настройки "Только прием"
    Slice2_SyncItem.SyncDirection := EaxDimensionSynchronizationDirection.ConsumeChangesOnly;
    
    // Синхронизация по выделению
    Slice2_calendar_dim := Slice2.GetDimension(CalendarDimKey) As IEaxPivotDimensionInstance;
    Slice3_view := Slice3.Views.Item(0);
    Slice3_view_selection_manager := Slice3_view.SelectionManager;
    Slice3_calendar_dim := Slice3_view_selection_manager.GetDimension(CalendarDimKey) As IEaxObjectDimensionInstance;
    // Создадим синхронизацию между 3 и 2 срезами по измерению "Календарь"
    ObjectSelSyncGroup := SyncGroups.CreateGroup(Slice2_calendar_dim As IEaxDimensionDescriptor);
    Slice3_SyncItem := ObjectSelSyncGroup.Add(Slice3_calendar_dim As IEaxDimensionDescriptor);
    // Сохраним полученный РО
    (Report As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера будет настроена синхронизация:

См. также:

IEaxSyncGroups