IMsCrossDimensionAggregationTransform.MissingData

Fore Syntax

MissingData: IMissingData;

Fore.NET Syntax

MissingData: Prognoz.Platform.Interop.Stat.IMissingData;

Description

The MissingData property returns missing data treatment method parameters.

Comments

The property is outdated, use IMsCrossDimensionAggregationTransform.AppliesToExpression.

Fore Example

Executing the example requires a form, a button with the Button1 identifier on the form, the LanerBox component LanerBox1 identifier, and the UiErAnalyzer component that is used as a data source for LanerBox. UiErAnalyzer must contain a workbook of the time series database. COUNTRY and INDICATOR are time series database attributes that refer to dictionaries.

Add links to the Cubes, Dimensions, Laner, Metabase, Ms, Rds, Stat system assemblies.

The example is a handler of the OnClick event for the Button1 button.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    mb: IMetabase;
    Laner: ILaner;
    CalcSerie: ILanerCalculateSerie;
    Transform: IMsFormulaTransform;
    Selector: IMsFormulaTransformSelector;
    Formula: IMsFormula;
    Method: IMsMethod;
    Aggr: IMsCrossDimensionAggregationTransform;
    TransformVar: IMsFormulaTransformVariable;
    Options: IMsCrossDimensionAggregationOptions;
    FilterList: IMsAggregationFilterList;
    Filter: IMsAggregationFilter;
    Rubr: IRubricator;
    Attributes: IMetaAttributes;
    DictDescr: IMetabaseObjectDescriptor;
    FilterDimension: IMetabaseObject;
    DimInst: IDimInstance;
    Selection: IDimSelection;
    i: Integer;
    MissingData: IMissingData;
Begin
    mb := MetabaseClass.Active;
    Laner := UiErAnalyzer1.ErAnalyzer.Laner;
    CalcSerie := Laner.Series.AddCalculateSerie("Aggregation");
    Transform := CalcSerie.Transform.Transform As IMsFormulaTransform;
    Selector := Transform.CreateSelector;
    TransformVar := Transform.Outputs.Item(0);
    Selector.Slice := TransformVar.Slices.Add(Null);
    Formula := Transform.Transform(Selector);
    Formula.Kind := MsFormulaKind.CrossDimensionAggregation;
    Method := Formula.Method;
    // Set up aggregation
    Aggr := Method As IMsCrossDimensionAggregationTransform;
    // Set aggregation method
    Aggr.AgregationMethod := MsAgregationMethodType.Sum;
    // Determine additional aggregation parameters
    Options := Aggr.Options;
    Options.Threshold := 0;
    Options.Level := False;
    Options.Rebase := False;
    // Set up aggregation filter
    FilterList := Aggr.Filter;
    FilterList.Clear;
    Rubr := Laner.RubricatorInstance.Rubricator;
    Attributes := Rubr.Facts.Attributes;
    DictDescr := Attributes.FindById("COUNTRY").ValuesObject;
    Filter := FilterList.Add(DictDescr.Bind As IDimensionModel);
    FilterDimension := Filter.FilterDimension As IMetabaseObject;
    DimInst := FilterDimension.Open(NullAs IDimInstance;
    Selection := DimInst.CreateSelection;
    For i := 0 To 5 Do
        Selection.SelectElement(i, False);
    End For;
    Filter.AggregationSelection := Selection;
    // Set the dimension, by which aggregation is executed
    DictDescr := Attributes.FindById("INDICATOR").ValuesObject;
    Aggr.AggregationDimenson := DictDescr.Bind As IDimensionModel;
    // Set aggregation expression
    Aggr.Expression.AsString := "BCA";
    // Set missing data treatment method
    MissingData := Aggr.MissingData;
    MissingData.Method := MissingDataMethod.Casewise;
    LanerBox1.ExecuteOperation(LanerBoxOperation.Refresh);
End Sub Button1OnClick;

After executing the example the new calculated series Aggregation calculated by the aggregation method will be added to the LanerBox component. Aggregation is calculated as a sum of the BCA time series values for the first six countries of the dictionary, to which the COUNTRY attribute refers. The calculation is executed without taking into account missing values of the series. For example:

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore example. Use Fore.NET analogs instead of Fore components.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Laner;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Rds;
Imports Prognoz.Platform.Interop.Stat;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    mb: IMetabase;
    Laner: ILaner;
    CalcSerie: ILanerCalculateSerie;
    Transform: IMsFormulaTransform;
    Selector: IMsFormulaTransformSelector;
    Formula: IMsFormula;
    Method: IMsMethod;
    Aggr: IMsCrossDimensionAggregationTransform;
    TransformVar: IMsFormulaTransformVariable;
    Options: IMsCrossDimensionAggregationOptions;
    FilterList: IMsAggregationFilterList;
    Filter: IMsAggregationFilter;
    Rubr: IRubricator;
    Attributes: IMetaAttributes;
    DictDescr: IMetabaseObjectDescriptor;
    FilterDimension: IMetabaseObject;
    DimInst: IDimInstance;
    Selection: IDimSelection;
    i: uinteger;
    MissingData: IMissingData;
Begin
    mb := Self.Metabase;
    Laner := uiErAnalyzerNet1.ErAnalyzer.ErAnalyzer.Laner;
    CalcSerie := Laner.Series.AddCalculateSerie("Aggregation", DimCalendarLevel.dclNone, -1);
    Transform := CalcSerie.Transform.Transform As IMsFormulaTransform;
    Selector := Transform.CreateSelector();
    TransformVar := Transform.Outputs.Item[0];
    Selector.Slice := TransformVar.Slices.Add(Null);
    Formula := Transform.Transform[Selector];
    Formula.Kind := MsFormulaKind.mfkCrossDimensionAggregation;
    Method := Formula.Method;
    // Set up aggregation
    Aggr := Method As IMsCrossDimensionAggregationTransform;
    // Set aggregation method
    Aggr.AgregationMethod := MsAgregationMethodType.mammtSum;
    // Determine additional aggregation parameters
    Options := Aggr.Options;
    Options.Threshold := 0;
    Options.Level := False;
    Options.Rebase := False;
    // Set up aggregation filter
    FilterList := Aggr.Filter;
    FilterList.Clear();
    Rubr := Laner.RubricatorInstance.Rubricator;
    Attributes := Rubr.Facts.Attributes;
    DictDescr := Attributes.FindById("COUNTRY").ValuesObject;
    Filter := FilterList.Add(DictDescr.Bind() As IDimensionModel);
    FilterDimension := Filter.FilterDimension As IMetabaseObject;
    DimInst := FilterDimension.Open(NullAs IDimInstance;
    Selection := DimInst.CreateSelection();
    For i := 0 To 5 Do
        Selection.SelectElement(i, False);
    End For;
    Filter.AggregationSelection := Selection;
    // Set the dimension, by which aggregation is executed
    DictDescr := Attributes.FindById("INDICATOR").ValuesObject;
    Aggr.AggregationDimenson := DictDescr.Bind() As IDimensionModel;
    // Set aggregation expression
    Aggr.Expression.AsString := "BCA";
    // Set missing data treatment method
    MissingData := Aggr.MissingData;
    MissingData.Method := MissingDataMethod.mdmCasewise;
    lanerBoxNet1.CtrlBox.ExecuteOperation(LanerBoxOperation.lboRefresh, Null);
End Sub;

See also:

IMsCrossDimensionAggregationTransform