IAdhocDataSourceObject.AcceptDataSelection

Fore Syntax

AcceptDataSelection: Boolean;

Fore.NET Syntax

AcceptDataSelection: boolean;

Description

The AcceptDataSelection property determines whether the selected selection should be converted to visual selection.

Comments

Available values:

Fore Example

Executing the example requires that the repository contains a dashboard with the DASHBOARD_SELECTION identifier. This dashboard should contain only two blocks, and they should use the same data source.

Add links to the Adhoc, Dimensions, Metabase system assemblies.

Sub UserProc;
Var
    mb: IMetabase;
    AdHoc: IAdHocReport;
    Mobj: IMetabaseObject;
    DSObjects: IAdhocDataSourceObjects;
    DSobj1, DSobj2: IAdhocDataSourceObject;
    DSdims1, DSdims2: IAdhocDsoDimensions;
    Di1, Di2, Dc1, Dc2: Integer;
    CurDim1, CurDim2: IAdhocDsoDimension;
    DimKey: Integer;
    Sync : IAdhocSynchronization;
    DimSync: IAdhocDimsSynchronization;
    SyncIdx: IAdhocDimSyncIndex;
    ConIdx: integer;
Begin
    // Get dashboard
    mb := MetabaseClass.Active;
    Mobj := mb.ItemById("DASHBOARD_SELECTION").Edit;
    AdHoc := Mobj As IAdHocReport;
    // Get synchronization parameters
    Sync := AdHoc.Synchronization;
    DimSync := Sync.Dimensions;
    DimSync.Clear;
    // Get dashboard data sources
    DSObjects := AdHoc.DataSourceObjects;
    DSobj1 := DSObjects.Item(0);
    DSobj2 := DSObjects.Item(1);
    // Get data source dimensions
    DSdims1 := DSobj1.Dimensions;
    DSdims2 := DSobj2.Dimensions;
    Dc1 := DSdims1.Count;
    Dc2 := DSdims2.Count;
    ConIdx := 0;
    // Set up synchronization by all data source dimensions
    For Di1 := 0 To Dc1 - 1 Do
        CurDim1 := DSdims1.Item(Di1);
        If CurDim1.Type = AdhocDimensionType.SelectedArea Then
            DimKey := CurDim1.Dimension.Key;
            For Di2 := 0 To Dc2 - 1 Do
                CurDim2 := DSdims2.Item(Di2);
                If CurDim2.Type = AdhocDimensionType.SelectedArea Then
                    If DimKey = CurDim2.Dimension.Key Then
                        ConIdx := ConIdx + 1;
                        SyncIdx := DimSync.Add("Con" + ConIdx.ToString);
                        SyncIdx.Dimensions.Add(CurDim1);
                        SyncIdx.Dimensions.Add(CurDim2);
                    End If;
                End If;
            End For;
        End If;
    End For;
    // Disable selected selection conversion to visual selection
    DSobj1.AcceptDataSelection := False;
    // Save changes
    Mobj.Save
End Sub UserProc;

After executing the example the synchronization of the selected data is set up for the dashboard blocks.

Fore.NET Example

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

Imports Prognoz.Platform.Interop.Adhoc;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    AdHoc: IAdHocReport;
    Mobj: IMetabaseObject;
    DSObjects: IAdhocDataSourceObjects;
    DSobj1, DSobj2: IAdhocDataSourceObject;
    DSdims1, DSdims2: IAdhocDsoDimensions;
    Di1, Di2, Dc1, Dc2: Integer;
    CurDim1, CurDim2: IAdhocDsoDimension;
    DimKey: UInteger;
    Sync: IAdhocSynchronization;
    DimSync: IAdhocDimsSynchronization;
    SyncIdx: IAdhocDimSyncIndex;
    ConIdx: integer;
Begin
    // Get dashboard
    mb := Params.Metabase;
    Mobj := mb.ItemById["DASHBOARD_SELECTION"].Edit();
    AdHoc := Mobj As IAdHocReport;
    // Get synchronization parameters
    Sync := AdHoc.Synchronization;
    DimSync := Sync.Dimensions;
    DimSync.Clear();
    // Get dashboard data sources
    DSObjects := AdHoc.DataSourceObjects;
    DSobj1 := DSObjects.Item[0];
    DSobj1.GetSourceObject();
    DSobj2 := DSObjects.Item[1];
    DSobj2.GetSourceObject();
    // Get data source dimensions
    DSdims1 := DSobj1.Dimensions;
    DSdims2 := DSobj2.Dimensions;
    Dc1 := DSdims1.Count;
    Dc2 := DSdims2.Count;
    ConIdx := 0;
    // Set up synchronization by all data source dimensions
    For Di1 := 0 To Dc1 - 1 Do
        CurDim1 := DSdims1.Item[Di1];
        If CurDim1.Type = AdhocDimensionType.adtSelectedArea Then
            DimKey := CurDim1.Dimension.Key;
            For Di2 := 0 To Dc2 - 1 Do
                CurDim2 := DSdims2.Item[Di2];
                If CurDim2.Type = AdhocDimensionType.adtSelectedArea Then
                    If DimKey = CurDim2.Dimension.Key Then
                        ConIdx := ConIdx + 1;
                        SyncIdx := DimSync.Add("Con" + ConIdx.ToString());
                        SyncIdx.Dimensions.Add(CurDim1);
                        SyncIdx.Dimensions.Add(CurDim2);
                    End If;
                End If;
            End For;
        End If;
    End For;
    // Disable selected selection conversion to visual selection
    DSobj1.AcceptDataSelection := False;
    // Save changes
    Mobj.Save()
End Sub;

See also:

IAdhocDataSourceObject