IEaxDataAreaSlices.Add

Syntax

Add(Type: EaxDataAreaSliceType): IEaxDataAreaSlice;

Parameters

Type. Data slice type.

Description

The Add method creates an analytical data area slice.

Comments

To clear the collection of analytical data area slices, use IEaxDataAreaSlices.Clear.

To get type of analytical data area slice, use IEaxDataAreaSlice.Type.

Example

Executing the example requires that the repository contains a regular report with the REPORT identifier. A data source containing dimensions with the CALENDAR and COUNTRY identifiers is added to the report.

Add links to the Dimensions, Drawing, Express, System, Metabase, Pivot, and Report system assemblies.

Sub UserProc;
Var
    MB: IMetabase;
    Report: IPrxReport;
    DA: IEaxDataArea;
    Slice: IEaxDataAreaSlice;
    Pivot: IPivot;
    DimSS: IDimSelectionSet;
    DimS: IDimSelection;
    DimInst: IDimInstance;
    View: IEaxGrid;
    Rect: IGxRect;
    ViewSets: IEaxGridViewSettings;
    T_Header, L_Header: IDataAreaHeaderSettingsBase;
Begin
    // Get the current repository
    MB := MetabaseClass.Active;
    // Get regular report
    Report := MB.ItemById("REPORT").Edit As IPrxReport;
    // Get data area
    DA := Report.DataArea;
    // Add data slice
    Slice := DA.Slices.Add(EaxDataAreaSliceType.Pivot);
    Slice.CreateSource;
    Slice.Execute;
    // Get data table
    Pivot := (Slice As IEaxDataAreaPivotSlice).Pivot;
    // Place data source in table
    Pivot.DataSource := Report.DataSources.Item(0).DataSource;
    // Place dimensions and set selection
    Pivot.BeginSelectionUpdate;
    DimSS := Pivot.Selection;
    For Each DimS In DimSS Do
        DimInst := DimS.Dimension;
        If DimInst.Ident = "COUNTRY" Then
            Pivot.LeftHeader.AddDim(DimInst);
            // Select two first elements
            DimS.SelectElement(0False);
            DimS.SelectElement(1False);
        Elseif DimInst.Ident = "CALENDAR" Then
            Pivot.TopHeader.AddDim(DimInst);
            // Select elements of the level, on which the first element is located
            DimS.SelectSiblings(0);
        Else
            Pivot.FixedHeader.AddDim(DimInst);
            // Select the first element
            DimS.SelectElement(0False);
        End If;
    End For;
    Pivot.EndSelectionUpdate;
    // Table data view
    View := Slice.Views.AddByType(EaxObjectType.Grid) As IEaxGrid;
    View.Pivot := Pivot;
    View.TabSheet := (Report.ActiveSheet As IPrxTable).TabSheet;
    Rect := New GxRect.Create(0000);
    View.OutputRect := Rect;
    // Set insert methods
    ViewSets := View.ViewSettings;
    T_Header := Pivot.TopHeader As IDataAreaHeaderSettingsBase;
    (ViewSets.GetViewSettings(T_Header) As IEaxGridHeaderSettings).Behaviour := EaxGridHeaderBehaviour.Insert;
    L_Header := Pivot.LeftHeader As IDataAreaHeaderSettingsBase;
    (ViewSets.GetViewSettings(L_Header) As IEaxGridHeaderSettings).Behaviour := EaxGridHeaderBehaviour.Insert;
    // Save changes
    Report.MetabaseObject.Save;
End Sub UserProc;

On executing the example a new data slice is created in the regular report. A data area is added and placed on report's active sheet.

See also:

IEaxDataAreaSlices