IDimSimpleAttrProbe.Probe

Синтаксис Fore

Probe(Dimension: IOrmSimpleClass;

Attribute: IOrmSimpleAttr): Boolean;

Синтаксис Fore.NET

Probe(Dimension: Prognoz.Platform.Interop.Orm.IOrmSimpleClass;

Attribute: Prognoz.Platform.Interop.Orm.IOrmSimpleAttr): boolean;

Параметры

Dimension. Объект, реализуемый интерфейсом IOrmSimpleClass. В качестве значения параметра будет передаваться справочник либо справочник НСИ репозитория.

Attribute. Атрибут, реализуемый интерфейсом IOrmSimpleAttr, который необходимо проверить. В качестве значения параметра будет передаваться атрибут справочника либо атрибут справочника НСИ.

Описание

Метод Probe проверяет атрибут и возвращает признак возможности поиска по данному атрибуту.

Комментарии

Данный метод должен быть переопределен в пользовательском классе. Если метод возвращает значение True, то поиск будет осуществлен по данному атрибуту, в противном случае - нет.

Для использования метода необходимо свойство IDimTextCriteria.CriteriaOptions установить в SearchProbeAttributes.

Пример Fore

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «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» будет содержаться массив ключей найденных элементов.

Пример Fore.NET

Для выполнения примера предполагается наличие .Net-формы, расположенной на ней кнопки с наименованием «Button1», компонента RdsDictionaryBoxNet с наименованием «RdsDictionaryBoxNet1» и какого-либо компонента UiRdsDictionaryNet, являющегося источником данных для «RdsDictionaryBoxNet1». В справочнике НСИ, который подключен к компоненту UiRdsDictionaryNet, имеются атрибуты «Name» и «UserAttr».

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Orm;
Imports Prognoz.Platform.Interop.Rds;

Public Partial Class TestForm: Prognoz.Platform.Forms.Net.ForeNetForm
    Public Constructor TestForm();
    Begin
        InitializeComponent();
    End Constructor;

    Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
    Var
        RdsInst: IRdsDictionaryInstance;
        Search: IRdsDictionaryElementsSearch;
        Crit: DimTextCriteria;
        Keys: IRdsDictionaryElementArray;
    Begin
        RdsInst := RdsDictionaryBoxNet1.Source.Instance;
        Search := RdsInst.CreateSearch();
        Crit := New DimTextCriteria();
        Crit.CriteriaOptions := TextCriteriaOptions.tecropSearchProbeAttributes
            Or TextCriteriaOptions.tecropFreeText;
        Crit.SimpleProbe := New MyProbe();
        Crit.Text := "Доход насел";
        Search.SetTextCriteria(Crit);
        Keys := Search.FindAll();
    End Sub;
End Class;

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» будет содержаться массив ключей найденных элементов.

См. также:

IDimSimpleAttrProbe