IDimTextCriteria.CriteriaOptions

Синтаксис

CriteriaOptions: TextCriteriaOptions;

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

Описание

Свойство CriteriaOptions определяет параметры поиска.

Пример

Для выполнения примера разместите на форме два компонента UiDimension/UiDimensionNet с наименованиями UIDEMENTION1/UIDEMENTIONNET1 и UIDEMENTION2/UIDEMENTIONNET2, два EditBox/TextBox с наименованиями EDITBOX1/TEXTBOX1 и EDITBOX2/TEXTBOX2, два DimensionCombo/DimensionComboNet с наименованиями DEMENTIONCOMBO1/DEMENTIONCOMBONET1 и DEMENTIONCOMBO2/DEMENTIONCOMBONET2 и один компонент Button с наименованием BUTTON1.

Предполагается наличие двух справочников НСИ, которые указанны в качестве свойства Object для компонентов UiDimension/UiDimensionNet соответственно. Для компонентов DimensionCombo/DimensionComboNet свойству Demention установите значение UiDimension1/UiDimensionNet1 и UiDimension2/UiDimensionNet2 соответственно.

Предполагается наличие базы данных временных рядов, в которой атрибуты с идентификаторами COUNTRY и INDICATOR ссылаются на справочники НСИ соответственно.

Для компонента EditBox/TextBox с наименованием EDITBOX1/TEXTBOX1 свойству Text установите значение идентификатора базы данных временных рядов, для EDITBOX2/TEXTBOX2 задайте пустое значение.

Добавьте ссылки на системные сборки: Cubes, Dimentions, Metabase, Rds.

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; // база данных временных рядов
    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; // база данных временных рядов
    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;

После запуска формы необходимо произвести отметку в раскрывающих списках измерений, затем ввести текст для поиска и нажать на кнопку, после чего отметка в списках будет изменена: останутся выделенными только те элементы, которые соответствуют критерию поиска.

См. также:

IDimTextCriteria