Probe(Dimension: IOrmSimpleClass;
Attribute: IOrmSimpleAttr): Boolean;
Probe(Dimension: Prognoz.Platform.Interop.Orm.IOrmSimpleClass;
Attribute: Prognoz.Platform.Interop.Orm.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» будет содержаться массив ключей найденных элементов.
Для выполнения примера предполагается наличие .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» будет содержаться массив ключей найденных элементов.
См. также: