Probe(Dimension: IOrmSimpleClass;
Attribute: IOrmSimpleAttr): Boolean;
Dimension. Объект, реализуемый интерфейсом IOrmSimpleClass. В качестве значения параметра будет передаваться справочник либо справочник НСИ репозитория.
Attribute. Атрибут, реализуемый интерфейсом IOrmSimpleAttr, который необходимо проверить. В качестве значения параметра будет передаваться атрибут справочника либо атрибут справочника НСИ.
Метод Probe проверяет атрибут и возвращает признак возможности поиска по данному атрибуту.
Данный метод должен быть переопределен в пользовательском классе. Если метод возвращает значение True, то поиск будет осуществлен по данному атрибуту, в противном случае - нет.
Для использования метода необходимо свойство IDimTextCriteria.CriteriaOptions установить в SearchProbeAttributes.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента RdsDictionaryBox с наименованием «RdsDictionaryBox1» и какого-либо компонента UiRdsDictionary, являющегося источником данных для «RdsDictionaryBox1». В справочнике НСИ, который подключен к компоненту UiRdsDictionary, имеются атрибуты «Name» и «UserAttr».
Class TestForm: Form
Button1: Button;
UiRdsDictionary1: UiRdsDictionary;
RdsDictionaryBox1: RdsDictionaryBox;
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
RdsInst: IRdsDictionaryInstance;
Search: IRdsDictionaryElementsSearch;
Crit: IDimTextCriteria;
Keys: IRdsDictionaryElementArray;
Begin
RdsInst := RdsDictionaryBox1.Source.Instance;
Search := RdsInst.CreateSearch;
Crit := New DimTextCriteria.Create;
Crit.CriteriaOptions := TextCriteriaOptions.SearchProbeAttributes
Or TextCriteriaOptions.FreeText;
Crit.SimpleProbe := New MyProbe.Create;
Crit.Text := "Доход насел";
Search.SetTextCriteria(Crit);
Keys := Search.FindAll;
End Sub Button1OnClick;
End Class TestForm;
Class MyProbe: Object, IDimSimpleAttrProbe
Public Function Probe(Dimension: IOrmSimpleClass; Attribute: IOrmSimpleAttr): Boolean;
Begin
Return (Attribute.Id = "NAME") Or (Attribute.Id = "USERATTR");
End Function Probe;
End Class MyProbe;
После выполнения примера при нажатии на кнопку будет создан объект для поиска элементов справочника НСИ. Будет установлено условие, в соответствии с которым будет производиться поиск. Определение атрибутов, по значениям которых будет производиться поиск, осуществляется с использованием пользовательского метода Probe. В качестве объекта осуществляющего проверку используется системный объект пользовательского класса «MyProbe». После поиска в переменной «Keys» будет содержаться массив ключей найденных элементов.
См. также: