IDimSelection.CopyToEx

Fore Syntax

CopyToEx (Options: SelectionCopyToExOptions; Dest: IDimSelection; Replace: Boolean);

Fore.NET Syntax

CopyToEx (Options: Prognoz.Platform.Interop.Dimensions.SelectionCopyToExOptions; Dest: Prognoz.Platform.Interop.Dimensions.IDimSelection; Replace: boolean)

Parameters

Options. Determines copied option (selection only, selection and element groups; selection and selection schemas).

Dest. The consumer dimension, to which it is required to copy selection, selection schemas, or element groups from source dimension.

Replace. The parameter that determines whether selection, selection schemas, or element groups contained in the Dest consumer are reset when data is copied.

Description

The CopyToEx method copies the option selected by the Options parameter from source dimension to consumer dimension.

Comments

The selection, selection schemas, or groups of elements contained in the Dest consumer are reset when data is copied if the Replace parameters is set to True.

Fore Example

Executing the example requires that the repository contains a table MDM dictionary with the D_COPY_TO_EX identifier containing an element group.

Add links to the Dimensions, Metabase system assemblies.

Sub UserProc;
Var
    Mb: IMetabase;
    dimension: IDimInstance;
    sel1, sel2: IDimSelection;
    group: IDimElementGroup;
    Gp: IMetabaseObjectDescriptors;
    i: integer;
    Child: IMetabaseObjectDescriptor;
Begin
    // Get current repository
    Mb := MetabaseClass.Active;
    // Get dictionary
    dimension := Mb.ItemById("D_COPY_TO_EX").Open(NullAs IDimInstance;
    // Get child objects of dictionary
    Gp := (dimension As IMetabaseObjectInstance).Object.Children;
    // Go through all child objects of dictionary to find element group
    For i := 0 To Gp.Count - 1 Do
        Child := Gp.Item(i);
        // Find element group
        If Child.ClassId = MetabaseObjectClass.KE_CLASS_DIMELEMENTGROUP Then
            group := Child.Bind As IDimElementGroup;
            // Create selections sel1 and sel2
            sel1 := dimension.CreateSelection;
            sel2 := dimension.CreateSelection;
            // Select dictionary element group in selection
            sel1.Group := group;
            // Copy selection sel1 into selection sel2 together with group
            sel1.CopyToEx(SelectionCopyToExOptions.WithGroup, sel2, False);
        End If;

End For;

End Sub UserProc;

After executing the example a selection and a element group of the source dimension are added to the sel2 selection.

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore Example.

Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    dimension: IDimInstance;
    sel1, sel2: IDimSelection;
    group: IDimElementGroup;
    Gp: IMetabaseObjectDescriptors;
    i: integer;
    Child: IMetabaseObjectDescriptor;
Begin
    // Get current repository
    Mb := Params.Metabase;
    // Get dictionary
    dimension := Mb.ItemById["D_COPY_TO_EX"].Open(NullAs IDimInstance;
    // Get child objects of dictionary
    Gp := (dimension As IMetabaseObjectInstance).Object.Children;
    // Go through all child objects of dictionary to find element group
    For i := 0 To Gp.Count - 1 Do
        Child := Gp.Item[i];
        // Find element group
        If Child.ClassId = MetabaseObjectClass.KE_CLASS_DIMELEMENTGROUP As integer Then
            group := Child.Bind() As IDimElementGroup;
            // Create selections sel1 and sel2
            sel1 := dimension.CreateSelection();
            sel2 := dimension.CreateSelection();
            // Select dictionary element group in selection
            sel1.Group := group;
            // Copy selection sel1 into selection sel2 together with group
            sel1.CopyToEx(SelectionCopyToExOptions.scteoWithGroup, sel2, False);
        End If;
    End For;
End Sub;

See also:

IDimSelection