Modifier(LeftOperand: IDimSelection;
RightOperand: IDimSelection;
Operation: PivotTransformationSelectionOperation;
Modifier(LeftOperand: Prognoz.Platform.Interop.Dimensions.IDimSelection;
RightOperand: Prognoz.Platform.Interop.Dimensions.IDimSelection;
Operation: Prognoz.Platform.Interop.Express.PivotTransformationSelectionOperation;
LeftOperand. Левый операнд;
RightOperand. Правый операнд;
Operation. Операция модификации отметки.
Метод Modifier модифицирует отметку измерений.
Для проверки операции модификации отметки используйте IEaxDataAreaTransformation.TestModifier.
Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS».
Добавьте ссылки на системные сборки: Dimensions, Express, Metabase.
Sub UserProc;
Var
MB: IMetabase;
Express: IEaxAnalyzer;
DArea: IEaxDataArea;
Slice: IEaxDataAreaSlice;
SS: IDimSelectionSet;
S: IDimSelection;
TypeSelOp: PivotTransformationSelectionOperation;
CalcTransformations: IEaxDataAreaTransformations;
CalcTransformation: IEaxDataAreaTransformation;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим экспресс-отчет
Express := MB.ItemById("EXPRESS").Edit As IEaxAnalyzer;
// Получим срез источника данных
DArea := Express.DataArea;
Slice := DArea.Slices.Item(0);
// Получим формулу преобразования данных в аналитической области
CalcTransformations := Slice.CalcTransformations;
CalcTransformation := CalcTransformations.Item(0);
// Получим отметку, в которой находится формула, и сбросим ее
SS := CalcTransformation.Selection;
S := SS.Item(0).CreateCopy;
S.DeselectAll;
S.CopyToEx(SelectionCopyToExOptions.WithGroup, ss.Item(0), True);
// Выведем в окно консоли тип операции по изменению отметки в таблице
TypeSelOp := CalcTransformation.ModifierOperation(SS.Item(0));
Select Case TypeSelOp.ToString
Case "0": Debug.WriteLine("Тип операции - " + "None");
Case "1": Debug.WriteLine("Тип операции - " + "Union");
Case "2": Debug.WriteLine("Тип операции - " + "Intersection");
Case "3": Debug.WriteLine("Тип операции - " + "Difference");
Case "4": Debug.WriteLine("Тип операции - " + "Symmetric Diference");
Case "5": Debug.WriteLine("Тип операции - " + "Replace");
End Select;
S := CalcTransformation.ModifierRightOperand(SS.Item(0));
CalcTransformation.Modifier(SS.Item(0), S, PivotTransformationSelectionOperation.Replace);
CalcTransformation.TestModifier(SS.Item(0), S);
// Сохраним изменения
(Express As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера:
будет модифицирована отметка измерения;
произведена проверка модификации отметки измерения;
в окно консоли будет выведен тип операции по изменению отметки.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Express: IEaxAnalyzer;
DArea: IEaxDataArea;
Slice: IEaxDataAreaSlice;
SS: IDimSelectionSet;
S: IDimSelection;
TypeSelOp: PivotTransformationSelectionOperation;
CalcTransformations: IEaxDataAreaTransformations;
CalcTransformation: IEaxDataAreaTransformation;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим экспресс-отчет
Express := MB.ItemById["EXPRESS"].Edit() As IEaxAnalyzer;
// Получим срез источника данных
DArea := Express.DataArea;
Slice := DArea.Slices.Item[0];
// Получим формулу преобразования данных в аналитической области
CalcTransformations := Slice.CalcTransformations;
CalcTransformation := CalcTransformations.Item[0];
// Получим отметку, в которой находится формула, и сбросим ее
SS := CalcTransformation.Selection;
S := SS.Item[0].CreateCopy();
S.DeselectAll();
S.CopyToEx(SelectionCopyToExOptions.scteoWithGroup, ss.Item[0], True);
// Выведем в окно консоли тип операции по изменению отметки в таблице
TypeSelOp := CalcTransformation.ModifierOperation[SS.Item[0]];
Select Case TypeSelOp.ToString()
Case "0": System.Diagnostics.Debug.WriteLine("Тип операции - " + "None");
Case "1": System.Diagnostics.Debug.WriteLine("Тип операции - " + "Union");
Case "2": System.Diagnostics.Debug.WriteLine("Тип операции - " + "Intersection");
Case "3": System.Diagnostics.Debug.WriteLine("Тип операции - " + "Difference");
Case "4": System.Diagnostics.Debug.WriteLine("Тип операции - " + "Symmetric Diference");
Case "5": System.Diagnostics.Debug.WriteLine("Тип операции - " + "Replace");
End Select;
S := CalcTransformation.ModifierRightOperand[SS.Item[0]];
CalcTransformation.Modifier(SS.Item[0], S, PivotTransformationSelectionOperation.ptsoReplace);
CalcTransformation.TestModifier(SS.Item[0], Var S);
// Сохраним изменения
(Express As IMetabaseObject).Save();
End Sub;
См. также: