IPrxReportRecalcContext.RecalcEaxObject

Синтаксис

RecalcEaxObject(Obj: IEaxObject): TriState;

RecalcEaxObject(Obj: Prognoz.Platform.Interop.Express.IEaxObject]: Prognoz.Platform.Interop.ForeSystem.TriState;

Параметры

Obj. Объект отчёта.

Описание

Свойство RecalcEaxObject определяет, необходимо ли вычислить выбранный объект.

Пример

Для выполнения примера в репозитории необходимо наличие регламентного отчёта с идентификатором REPORT, в котором есть минимум один объект.

Добавьте ссылки на системные сборки: Express, ForeSystem (для примеры на Fore.NET), Metabase, Report.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    Context: IPrxReportRecalcContext;
    DataArea: IEaxDataArea;
    EaxObj: IEaxObject;
Begin
    
// Получаем репозиторий
    MB := MetabaseClass.Active;
    
// Получаем отчёт
    Report := MB.ItemById("REPORT").Edit As IPrxReport;
    
// Получаем контекст для вычисления
    Context := Report.CreateRecalcContext;
    Context.Clear;
    
//Получаем аналитическую область данных
    DataArea := Report.DataArea;
    
//Получаем объект аналитической области
    EaxObj := DataArea.Slices.Item(0).Views.Item(0);
    
//Вычисляем объект
    Context.RecalcEaxObject(EaxObj) := TriState.OnOption;
    Report.RecalcC(Context);
    
//Сохраняем результат вычисления
    (Report As IMetabaseObject).Save;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Report;

…
Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    Context: IPrxReportRecalcContext;
    DataArea: IEaxDataArea;
    EaxObj: IEaxObject;
Begin
    
// Получаем репозиторий
    MB := Params.Metabase;
    
// Получаем отчёт
    Report := MB.ItemById["REPORT"].Edit() As IPrxReport;
    
// Получаем контекст для вычисления
    Context := Report.CreateRecalcContext();
    Context.Clear();
    
//Получаем аналитическую область данных
    DataArea := Report.DataArea;
    
//Получаем объект аналитической области
    EaxObj := DataArea.Slices.Item[0].Views.Item[0];
    
//Вычисляем объект
    Context.RecalcEaxObject[EaxObj] := TriState.tsOnOption;
    Report.RecalcC(Context);
    
//Сохраняем результат вычисления
    (Report As IMetabaseObject).Save();
End Sub;

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

См. также:

IPrxReportRecalcContext