IEaxDataAreaTransformation.Transform

Синтаксис Fore

Transform: Object;

Синтаксис Fore.NET

Transform: object;

Описание

Свойство Transform возвращает объект для работы с параметрами формулы преобразования данных.

Комментарии

Для работы с объектом, возвращаемым данным свойством, его необходимо привести к интерфейсу IMsFormulaTransform.

Пример Fore

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

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

Sub UserProc;
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    DArea: IEaxDataArea;
    DAreaSlice: IEaxDataAreaSlice;
    CalcTransformations: IEaxDataAreaTransformations;
    CalcTransformation: IEaxDataAreaTransformation;
    Transform: IMsFormulaTransform;
    GeneratedName: String;
    FormulaCount: Integer;
    Formula: IMSFormula;
    Gen: IMsFormulaStringGenerator;
    SelSet: IDimSelectionSet;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим экспресс-отчет
    Express := MB.ItemById("EXPRESS").Edit As IEaxAnalyzer;
    // Получим срез источника данных
    DArea := Express.DataArea;
    DAreaSlice := DArea.Slices.Item(0);
    // Получим формулу преобразования данных в аналитической области
    CalcTransformations := DAreaSlice.CalcTransformations;
    CalcTransformation := CalcTransformations.Item(0);
    // Зададим отметку и ключ измерения
    SelSet := Express.Pivot.Selection;
    CalcTransformation.Selection := SelSet;
    CalcTransformation.DimKey := Express.Pivot.DimItem(0).Key;
   // Выведем в окно консоли
    Debug.WriteLine("Значение элемента - " + CalcTransformation.Element.ToString);
    Debug.WriteLine("Идентификатор элемента - " + CalcTransformation.ElementId);
    Debug.WriteLine("Ключ формулы преобразования - " + CalcTransformation.Key.ToString);
    // Получим и выведем в окно консоли сгенерированное наименование формулы
    GeneratedName := CalcTransformation.GeneratedName;
    Debug.WriteLine("Сгенерированное наименование формулы - " + GeneratedName);
   // Выведем в окно консоли масштаб текущей единицы измерения
    Debug.WriteLine("Масштаб единицы измерения: " + CalcTransformation.DefaultUnit.ToString);
    // Зададим наименование формулы
    CalcTransformation.Name := "TransformFormula";
    // Выведем в окно консоли количество методов расчета формулы
    Transform := CalcTransformation.Transform As IMsFormulaTransform;
    FormulaCount := Transform.FormulaCount;
    Debug.WriteLine("Количество методов расчета - " + FormulaCount.ToString);
    // Получим и выведем в окно консоли наименование метода расчета
    Formula := Transform.FormulaItem(0);
    Gen := Formula.CreateStringGenerator;
    Gen.ShowFullVariableNames := True;
    Debug.WriteLine("Наименование метода расчета - " + Gen.Execute);
    // Сохраним изменения
    (Express As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера:

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Pivot;

Public
 Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    DArea: IEaxDataArea;
    DAreaSlice: IEaxDataAreaSlice;
    CalcTransformations: IEaxDataAreaTransformations;
    CalcTransformation: IEaxDataAreaTransformation;
    Transform: IMsFormulaTransform;
    GeneratedName: String;
    FormulaCount: Integer;
    Formula: IMSFormula;
    Gen: IMsFormulaStringGenerator;
    SelSet: IDimSelectionSet;
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Получим экспресс-отчет
    Express := MB.ItemById["EXPRESS"].Edit() As IEaxAnalyzer;
    // Получим срез источника данных
    DArea := Express.DataArea;
    DAreaSlice := DArea.Slices.Item[0];
    // Получим формулу преобразования данных в аналитической области
    CalcTransformations := DAreaSlice.CalcTransformations;
    CalcTransformation := CalcTransformations.Item[0];
    // Зададим отметку и ключ измерения
    SelSet := Express.Pivot.Selection;
    CalcTransformation.Selection := SelSet;
    CalcTransformation.DimKey := Express.Pivot.DimItem[0].Key;
    // Выведем в окно консоли
    System.Diagnostics.Debug.WriteLine("Значение элемента - " + CalcTransformation.Element.ToString());
    System.Diagnostics.Debug.WriteLine("Идентификатор элемента - " + CalcTransformation.ElementId);
    System.Diagnostics.Debug.WriteLine("Ключ формулы преобразования - " + CalcTransformation.Key.ToString());
   // Получим и выведем в окно консоли сгенерированное наименование формулы
    GeneratedName := CalcTransformation.GeneratedName;
    System.Diagnostics.Debug.WriteLine("Сгенерированное наименование формулы - " + GeneratedName);
    // Выведем в окно консоли масштаб текущей единицы измерения
    System.Diagnostics.Debug.WriteLine("Масштаб единицы измерения: " + CalcTransformation.DefaultUnit.ToString());
    // Зададим наименование формулы
    CalcTransformation.Name := "TransformFormula";
    // Выведем в окно консоли количество методов расчета формулы
    Transform := CalcTransformation.Transform As IMsFormulaTransform;
    FormulaCount := Transform.FormulaCount;
    System.Diagnostics.Debug.WriteLine("Количество методов расчета - " + FormulaCount.ToString());
    // Получим и выведем в окно консоли наименование метода расчета
    Formula := Transform.FormulaItem[0];
    Gen := Formula.CreateStringGenerator();
    Gen.ShowFullVariableNames := True;
    System.Diagnostics.Debug.WriteLine("Наименование метода расчета - " + Gen.Execute());
    // Сохраним изменения
    (Express As IMetabaseObject).Save();
End Sub;

См. также:

IEaxDataAreaTransformation