IDimTextCriteria.CriteriaOptions

Syntax

CriteriaOptions: TextCriteriaOptions;

CriteriaOptions: Prognoz.Platform.Interop.Dimensions.TextCriteriaOptions;

Description

The CriteriaOptions property sets search options.

Example

To execute the example, place two UiDimension/UiDimensionNet components named UIDEMENTION1/UIDEMENTIONNET1 and UIDEMENTION2/UIDEMENTIONNET2, two EditBox/TextBox components named EDITBOX1/TEXTBOX1 and EDITBOX2/TEXTBOX2, two DimensionCombo/DimensionComboNet components named DEMENTIONCOMBO1/DEMENTIONCOMBONET1 and DEMENTIONCOMBO2/DEMENTIONCOMBONET2 and one Button component named BUTTON1 on the form.

Two MDM dictionaries are supposed to be present, they are specified as the Object property value for the UiDimension/UiDimensionNet components correspondingly. For the DimensionCombo/DimensionComboNet components, set the UiDimension1/UiDimensionNet1 and UiDimension2/UiDimensionNet2 value to the Demention property correspondingly.

The time series database is supposed to be present where attributes with the COUNTRY and INDICATOR identifiers refer toMDM dictionaries correspondingly.

For the EditBox/TextBox component named EDITBOX1/TEXTBOX1, set the Text property's identifier to time series database, for the EDITBOX2/TEXTBOX2 set empty value.

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

Class IDimTextCriteria_CriteriaOptionsForm: Form
   
    Mb: IMetabase;
    Cat: IRubricator;
    Inst: IRubricatorInstance;
    pAttrs: IMetaAttributes; 
Sub FormOnShow(Sender: Object; Args: IEventArgs);
Begin
    Mb := MetabaseClass.Active;
    Cat := Mb.ItemById(EditBox1.Text).Bind 
As IRubricator; // time series database
    Inst := (Cat As IMetabaseObject).Open(NullAs IRubricatorInstance;
    pAttrs := Inst.Facts.Dictionary.Attributes;
    UiDimension1.Object := pAttrs.FindById(
"COUNTRY").ValuesObject;
    UiDimension2.Object := pAttrs.FindById(
"INDICATOR").ValuesObject;
End Sub FormOnShow;
    
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Selections: IDimSelectionSet;
    Factory: IDimSelectionSetFactory;
    FactLookup: IRubricatorFactsLookup;
    MetaLookup: IMetaDictionaryLookup;
    Criteria: IDimTextCriteria;
Begin
    Factory := 
New DimSelectionSetFactory.Create;
    Selections := Factory.CreateDimSelectionSet;
    Selections.Add(DimensionCombo1.Dimension.DimInstance);
    Selections.Add(DimensionCombo2.Dimension.DimInstance);
    DimensionCombo1.Selection.CopyTo(Selections.Item(
0), True);
    DimensionCombo2.Selection.CopyTo(Selections.Item(
1), True);
    FactLookup := Inst.CreateFactsLookup;
    MetaLookup := FactLookup.Lookup;
    Criteria := 
New DimTextCriteria.Create;
    Criteria.CriteriaOptions := TextCriteriaOptions.LikeText 
Or TextCriteriaOptions.SearchStringAttributes;
    Criteria.Text := EditBox2.Text;
    Selections := FactLookup.SetTextCriteria(Criteria, Selections);
    Selections.Item(
0).CopyTo(DimensionCombo1.Selection, True);
    Selections.Item(
1).CopyTo(DimensionCombo2.Selection, True);
End Sub Button1OnClick;
End Class Form;

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Rds;

Private Sub Form_Shown(sender: System.Object; e: System.EventArgs);
Var
    Mb: IMetabase;
    Cat: IRubricator;
    Inst: IRubricatorInstance;
    pAttrs: IMetaAttributes;
Begin
    Mb := Self.Metabase;
    Cat := Mb.ItemById[TextBox1.Text].Bind() 
As IRubricator; // time series database
    Inst := (Cat As IMetabaseObject).Open(NullAs IRubricatorInstance;
    pAttrs := Inst.Facts.Dictionary.Attributes;
    UiDimensionNet1.Object := pAttrs.FindById(
"COUNTRY").ValuesObject;
    UiDimensionNet2.Object := pAttrs.FindById(
"INDICATOR").ValuesObject;
End Sub;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    Selections: IDimSelectionSet;
    Factory: IDimSelectionSetFactory;
    FactLookup: IRubricatorFactsLookup;
    MetaLookup: IMetaDictionaryLookup;
    Criteria: IDimTextCriteria;
    Inst: IRubricatorInstance;
Begin
    Factory := 
New DimSelectionSetFactory.Create();
    Selections := Factory.CreateDimSelectionSet();
    Selections.Add(DimensionComboNet1.Dimension.DimInstance);
    Selections.Add(DimensionComboNet2.Dimension.DimInstance);
    DimensionComboNet1.Selection.CopyTo(Selections.Item[
0], True);
    DimensionComboNet2.Selection.CopyTo(Selections.Item[
1], True);
    FactLookup := Inst.CreateFactsLookup();
    MetaLookup := FactLookup.Lookup;
    Criteria := 
New DimTextCriteria.Create();
    Criteria.CriteriaOptions := TextCriteriaOptions.tecropLikeText 
Or TextCriteriaOptions.tecropSearchStringAttributes;
    Criteria.Text := TextBox2.Text;
    Selections := FactLookup.SetTextCriteria(Criteria, Selections);
    Selections.Item[
0].CopyTo(DimensionComboNet1.Selection, True);
    Selections.Item[
1].CopyTo(DimensionComboNet2.Selection, True);
End Sub;

Start the form and select desired element in drop-down dimension lists, next type in the text to be searched and click the button; list selection changes: only the elements that meet search criterion remain selected.

See also:

IDimTextCriteria