IMsMetaAttributeValue.Parameter

Fore Syntax

Parameter: IMsModelParam;

Fore.NET Syntax

Parameter: Prognoz.Platform.Interop.Ms.IMsModelParam;

Description

The Parameter property determines the parameter that sets the attribute value.

Comments

The IMsMetaAttributeValue.IsParameter property determines whether the attribute is parameter.

Fore Example

Executing the example requires a form, containing the LanerBox component with the LanerBox1 identifier and the UiErAnalayzer component with the UiErAnalyzer1 identifier. UiErAnalyzer1 is a data source for LanerBox1 and contains loaded workbook of the time series database with the TSDB_70 identifier. Database parameters:

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

Sub AddComparPrarm;
Var
    mb: IMetabase;
    FCObj: IMetabaseObject;
    FC: IRubricator;
    Atts: IMetaAttributes;
    LinkedDict: IMetabaseObjectDescriptor;
    ValidObj: IMetabaseObject;
    ValidFilter: IValidationFilter;
    Params: IMsModelParams;
    ComparPrarm: IMsModelParam;
    Comparator: IMsMetaAttributeValueList;
    ComparVal: IMsMetaAttributeValue;
    ExecSett: IValidationExecuteSettings;
    Analyzer: IEaxAnalyzer;
    ParamVals: IMsModelParamValues;
    ExecRun: IValidationExecRun;
    DiagRep: IDiagnosticReport;
Begin
    mb := MetabaseClass.Active;
    // Get time series database
    FCObj := mb.ItemById("TSDB_70").Bind;
    FC := FCObj As IRubricator;
    //Get dictionary, to which the COUNTRY attribute refers
    Atts := FC.GetDictionary(RubricatorDictionary.Facts).Attributes;
    LinkedDict := Atts.FindById("COUNTRY").ValuesObject;
    //Get validation filter
    ValidObj := Mb.ItemByIdNamespace("VALIDATION_COMPARPARAM", FCObj.Key).Edit;
    ValidFilter := ValidObj As IValidationFilter;
    // Get validation filter parameters
    Params := ValidFilter.Params;
    Params.Clear;
    // Add parameter for comparison expression
    ComparPrarm := Params.Add;
    ComparPrarm.Id := "COMPAR_COUNTRY";
    ComparPrarm.Name := "Country for the comparison block";
    ComparPrarm.LinkedObject := LinkedDict;
    // Set comparison expression
    Comparator := (ValidFilter.Details As IValidationTrend).ComparatorData;
    Comparator.Clear;
    ComparVal := Comparator.Add(Atts.FindById("COUNTRY"));
    ComparVal.Parameter := ComparPrarm;
    // Save validation filter
    ValidObj.Save;
    // Set filter execution parameters
    ExecSett := ValidFilter.CreateExecuteSettings;
    Analyzer := UiErAnalyzer1.ErAnalyzer;
    ExecSett.Laner := Analyzer.Laner;
    // Set parameter values
    ParamVals := ExecSett.ParamValues;
    ParamVals.FindById("COMPAR_COUNTRY").Value := 512;
    // Execute validation filter
    ExecRun := ValidFilter.Execute(ExecSett);
    DiagRep := New DiagnosticReport.Create;
    DiagRep.Run := ExecRun;
    DiagRep.EaxAnalyzer := Analyzer;
End Sub AddComparPrarm;

Example execution result: the series, the trend of which it is compared with, is changed, for the VALIDATION_COMPARPARAM validation filter. The compared series is set by the COMPAR_COUNTRY parameter, determining the value of the COUNTRY obligatory value. The filter is executed for the workbook displayed in LanerBox1.

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.Ms;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Rds;
Imports Prognoz.Platform.Interop.Express;

Sub AddComparPrarm();
Var
    mb: IMetabase;
    FCObj: IMetabaseObject;
    FC: IRubricator;
    Atts: IMetaAttributes;
    LinkedDict: IMetabaseObjectDescriptor;
    ValidObj: IMetabaseObject;
    ValidFilter: IValidationFilter;
    Params: IMsModelParams;
    ComparPrarm: IMsModelParam;
    Comparator: IMsMetaAttributeValueList;
    ComparVal: IMsMetaAttributeValue;
    ExecSett: ValidationExecuteSettings;
    Analyzer: EaxAnalyzer;
    ParamVals: IMsModelParamValues;
    ExecRun: IValidationExecRun;
    DiagRep: IDiagnosticReport;
Begin
    mb := Self.Metabase;
    // Get time series database
    FCObj := mb.ItemById["TSDB_70"].Bind();
    FC := FCObj As IRubricator;
    //Get dictionary, to which the COUNTRY attribute refers
    Atts := FC.GetDictionary(RubricatorDictionary.rubdicFacts, RubricatorDictionaryOperation.rubdicopNone).Attributes;
    LinkedDict := Atts.FindById("COUNTRY").ValuesObject;
    //Get validation filter
    ValidObj := Mb.ItemByIdNamespace["VALIDATION_COMPARPARAM", FCObj.Key].Edit();
    ValidFilter := ValidObj As IValidationFilter;
    // Get validation filter parameters
    Params := ValidFilter.Params;
    Params.Clear();
    // Add parameter for comparison expression
    ComparPrarm := Params.Add();
    ComparPrarm.Id := "COMPAR_COUNTRY";
    ComparPrarm.Name := "Country for the comparison block";
    ComparPrarm.LinkedObject := LinkedDict;
    // Set comparison expression
    Comparator := (ValidFilter.Details As IValidationTrend).ComparatorData;
    Comparator.Clear();
    ComparVal := Comparator.Add(Atts.FindById("COUNTRY"));
    ComparVal.Parameter := ComparPrarm;
    // Save validation filter
    ValidObj.Save();
    // Set filter execution parameters
    ExecSett := ValidFilter.CreateExecuteSettings();
    Analyzer := uiErAnalyzerNet1.ErAnalyzer.ErAnalyzer;
    ExecSett.Laner := Analyzer.Laner;
    // Set parameter values
    ParamVals := ExecSett.ParamValues;
    ParamVals.FindById("COMPAR_COUNTRY").Value := 512;
    // Execute validation filter
    ExecRun := ValidFilter.Execute(ExecSett);
    DiagRep := New DiagnosticReport.Create();
    DiagRep.Run := ExecRun;
    DiagRep.EaxAnalyzer := Analyzer;
End Sub AddComparPrarm;

See also:

IMsMetaAttributeValue