IEaxDataAreaTransformation.CalculationMode

Синтаксис

CalculationMode: EaxDataAreaTransformationCalculationMode;

CalculationMode: Prognoz.Platform.Interop.Express.EaxDataAreaTransformationCalculationMode;

Описание

Свойство CalculationMode определяет порядок расчета формул вычисляемых элементов в цепочке расчета.

Комментарии

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

Примечание. Расчет итогов выполняется только после расчета агрегации. Изменение порядка вычисления формул в пункте «Расчет итогов» может привести к изменению результата итогов.

Для получения подробной информации обратитесь к разделу «Вычисляемые элементы».

Пример Fore

Для выполнения примера убедитесь, что в репозитории содержится экспресс-отчет с идентификатором «EXPRESS». В отчете отображается таблица и добавлены вычисляемые элементы в отметке элементов измерения.

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

Sub UserProc;
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Slice: IEaxDataAreaSlice;
    Trs: IEaxDataAreaTransformations;
    Tr: IEaxDataAreaTransformation;
    i: integer;
Begin
    MB := MetabaseClass.Active;
    Express := MB.ItemById(
"EXPRESS").Edit As IEaxAnalyzer;
    
// Получим срез аналитической области данных
    Slice := Express.DataArea.Slices.Item(0);
    
// Переместим все вычисляемые элементы перед расчетом агрегации и итогов в цепочке расчета
    Trs := Slice.CalcTransformations;
    
For i := 0 To trs.Count - 1 Do
        Tr := Trs.Item(i);
        Tr.CalculationMode := EaxDataAreaTransformationCalculationMode.AfterDataSourceExecute;
    
End For;
    
// Сохраним изменения
    (Express As IMetabaseObject).Save;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Express;

Public Shared Sub Main(Params : StartParams);
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Slice: IEaxDataAreaSlice;
    Trs: IEaxDataAreaTransformations;
    Tr: IEaxDataAreaTransformation;
    i: integer;
Begin
    MB := Params.Metabase;
    Express := MB.ItemById[
"EXPRESS"].Edit() As IEaxAnalyzer;
    
// Получим срез аналитической области данных
    Slice := Express.DataArea.Slices.Item[0];
    
// Переместим все вычисляемые элементы перед расчетом агрегации и итогов в цепочке расчета
    Trs := Slice.CalcTransformations;
    
For i := 0 To trs.Count - 1 Do
        Tr := Trs.Item[i];
        Tr.CalculationMode := EaxDataAreaTransformationCalculationMode.edatcmAfterDataSourceExecute;
    
End For;
    
// Сохраним изменения
    (Express As IMetabaseObject).Save();
End Sub;

После выполнения примера вычисляемые элементы будут рассчитываться перед расчетом агрегации и итогов. В таблице отобразятся значения всех добавленных вычисляемых элементов.

См. также:

IEaxDataAreaTransformation