IDimTextCriteria.Probe

Syntax

Probe: IDimAttributeProbe;

Description

The Probe property calls back to determine, by which attributes the search should be based.

Example

In the example the form contains the following components: two UiDimension, two EditBox, two DimensionCombo components, and Button component. The OnClick event is described for the button, the OnShow event is described for the form.

Class UserForm: Form

Memo1: Memo;

EditBox1: EditBox;

uidimCountries: UiDimension;

dcCountries: DimensionCombo;

uidimIndicator: UiDimension;

dcIndicator: DimensionCombo;

Label1: Label;

Label2: Label;

EditBox2: EditBox;

Label3: Label;

Button1: Button;

Mb: IMetabase;

Cat: IRubricator;

Inst: IRubricatorInstance;

pAttrs : IMetaAttributes;


Sub
UserFormOnShow(Sender: Object; Args: IEventArgs);

Begin

Mb := MetabaseClass.Active;

Cat := Mb.ItemById(EditBox1.Text).Bind As IRubricator;

Inst := (Cat As IMetabaseObject).Open(Null) As IRubricatorInstance;

pAttrs := Inst.Facts.Dictionary.Attributes;

uidimCountries.Object := pAttrs.FindById("COUNTRY").ValuesObject;

uidimIndicator.Object := pAttrs.FindById("INDICATOR").ValuesObject;

End Sub UserFormOnShow;


Sub
Button1OnClick(Sender: Object; Args: IMouseEventArgs);

Var

selections : IDimSelectionSet;

factory : IDimSelectionSetFactory;

FactLookup : IRubricatorFactsLookup;

MetaLookup : IMetaDictionaryLookup;

Criteria : IDimTextCriteria;

ObjProbe : MyProbe;

Begin

factory := New DimSelectionSetFactory.Create;

selections := factory.CreateDimSelectionSet;

selections.Add(dcCountries.Dimension.DimInstance);

selections.Add(dcIndicator.Dimension.DimInstance);

dcCountries.Selection.CopyTo(selections.Item(0), True);

dcIndicator.Selection.CopyTo(selections.Item(1), True);

FactLookup := Inst.CreateFactsLookup;

MetaLookup := FactLookup.Lookup;

Criteria := New DimTextCriteria.Create;

Criteria.SelectOptions := ConditionSelectOptions.SelectedOnly;

Criteria.CriteriaOptions := TextCriteriaOptions.SearchProbeAttributes Or TextCriteriaOptions.FreeText;

Criteria.Text := EditBox2.Text;

ObjProbe := New MyProbe.Create;

Criteria.Probe := ObjProbe;

selections := FactLookup.SetTextCriteria(Criteria, selections);

selections.Item(0).CopyTo(dcCountries.Selection, True);

selections.Item(1).CopyTo(dcIndicator.Selection, True);

End Sub Button1OnClick;


End Class
UserForm;

 

Public Class MyProbe : Object, IDimAttributeProbe

Public Function Probe(Dimension : IDimensionModel; Attribute : IDimAttribute) : Boolean;

Begin

Return (Attribute.Name = "SpecialName");

End Function Probe;

End Class MyProbe;

Start the form and select desired element in drop-down dimension lists, then type in the text to be searched and click the button; list selection changes: only the dimension elements the SpecialName attributes of which contain entered text remain selected.

See also:

IDimTextCriteria