IStandardCubeDestination.UseMultiAttrTable

Синтаксис

UseMultiAttrTable: Boolean;

UseMultiAttrTable: Boolean;

Описание

Свойство UseMultiAttrTable определяет, будет ли использоваться одна общая временная таблица для хранения значений атрибутов, по которым осуществляется связь с измерением.

Комментарии

Свойство актуально при выполнении следующих условий:

  1. Измерение имеет связь с источником по двум и более атрибутам.

  2. Для измерения задана стратегия фильтрации и выбран метод с использованием временных таблиц.

При создании запроса на выборку данных куба формируются вложенные запросы, которые извлекают необходимую информацию (значения атрибутов) по элементам измерения. Если свойству UseMultiAttrTable установить значение True, то значения атрибутов сначала будут собраны в одну временную таблицу, а затем к этой таблице будет сформирован вложенный запрос. Собираются значения атрибутов только тех элементов, которые отмечены в измерении. Если в кубе несколько измерений, связь которых осуществляется по нескольким атрибутам, то для каждого измерения будет создаваться своя отдельная временная таблица.

По умолчанию свойству установлено значение False, при этом значения атрибутов сначала собираются в различных временных таблицах (для каждого атрибута своя собственная временная таблица), а затем к этим таблицам формируется вложенный запрос.

Пример Fore

Для выполнения примера предполагается наличие в репозитории стандартного куба с идентификатором «STD_CUBE». В структуре куба одно измерение имеет привязку по двум атрибутам, также для этого измерения выбран метод фильтрации «Фильтровать в зависимости от размера отметки», размер отметки «50%» и установлен флажок использования временных таблиц.

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

Sub UserProc;
Var
    MB: IMetabase;
    Cube: IStandardCube;
    CubeDest: IStandardCubeDestination;
Begin
    MB := MetabaseClass.Active;
    Cube := MB.ItemById(
"STD_CUBE").Edit As IStandardCube;
    CubeDest := Cube.Destinations.Item(0);
    CubeDest.UseMultiAttrTable := True;
    (Cube 
As IMetabaseObject).Save;
End Sub UserProc;

При выполнении примера для куба будет включена необходимость использовать одну общую временную таблицу для хранения значений атрибутов измерения при построении запроса на извлечение данных.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Cube: IStandardCube;
    CubeDest: IStandardCubeDestination;
Begin
    MB := Params.Metabase;
    Cube := MB.ItemById[
"STD_CUBE"].Edit() As IStandardCube;
    CubeDest := Cube.Destinations.Item[
0];
    CubeDest.UseMultiAttrTable := 
True;
    (Cube 
As IMetabaseObject).Save();
End Sub;

См. также:

IStandardCubeDestination