Show contents 

Dimensions > Dimensions Assembly Interfaces > IDimTextCriteria > IDimTextCriteria.Probe

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(NullAs 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