Адрес этой странички : http://doc-prg.narod.ru/art_00008/art_00008.htm 

(c) Sergey Popov, Usinsk, Komi, 2007

© 17.08.2007 Сергей Попов

Здесь следует отметить, что приведенная ниже статья носит чисто иллюстративный характер и не претендует на бОльшее.
Для серьезной и углубленной проработки специальных вопросов информационного обмена крайне рекомендуется использовать фирменное техническое описание системы 1Cv8.

 

1Cv8 + Delphi-5.
OLE (COM).
Считывание информации.
Справочники.
Найти по реквизиту.

Статью в виде файла (377 кб) можно скачать здесь: art_00008.zip

Метод НайтиПоРеквизиту объекта типа "СправочникМенеджер" позволяет найти первый элемент справочника, который содержит заданное значение заданного реквизита.

Синтаксис метода :

НайтиПоРеквизиту(<Имя реквизита>, <Значение реквизита>, <Родитель>, <Владелец>)

Обязательными параметрами являются только <Имя реквизита> и <Значение реквизита>.

 

Посмотрим на практике, как можно вызывать этот метод, используя механизм OLE Automation.

Для начала доработаем ранее созданную конфигурацию (внесем доп.значение "Прочие" в перечисление "ТипНосителя")  :


Рис.1. Список значений перечисления "ТипНосителя"

Ниже представлено содержание справочника "КнигиВидеоАудио" (только элементы справочника без учета иерархии).


Рис.2. Содержание справочника "КнигиВидеоАудио" без учета иерархии (только элементы справочника).

Готовую конфигурацию можно скачать здесь (30 кб).

 

Создадим новый Delphi-проект. За основу возьмем проект из предыдущей статьи.
 

На рис.3 представлена форма нового проекта.


Рис.3. Форма проекта Load_from_SbCnt_OLE.dpr


Здесь все то же самое (практически), что и в предыдущем примере.
 

Модифицируем обработчик события : нажатие на кнопку SpeedButton2 (бегущие человечки) :

Здесь все прозрачно и дополнительный комментарий к тексту обработчика не требуется ...

 

Проверим, как все это работает.

Скомпилируем наш проект и запустим его на выполнение.

Создадим соединение с 1Cv8.
Нажмем на кнопку "?" и выберем значение "Файл" перечисления "ТипНосителя".
 


Рис.4. Выбор значения перечисления "ТипНосителя".

Теперь, вызовем метод НайтиПоРеквизиту справочника (по нажатию на кнопку "бегущие человечки").

На рис.5 представлен результат наших действий.


Рис.5. Результат выборки элементов справочника  
с учетом заданного значения перечисления вида "ТипНосителя".

Теперь попробуем то же самое, но по значению "Бумага" перечисления "ТипНосителя".

На рис.6 представлен результат выборки.


Рис.6. Результат выборки элементов справочника
с учетом заданного значения перечисления вида "ТипНосителя".

И по значению "Прочие" перечисления "ТипНосителя".

На рис.7 представлен результат выборки.

 


Рис.7. Результат выборки элементов справочника
с учетом заданного значения перечисления вида "ТипНосителя".

Результаты выборки (во всех вариантах) можно соотнести с содержанием справочника (рис. 2).

В случае отказа от выбора значения перечисления - следует соотв. сообщение :


Рис.8. Сообщение об отказе от выбора значения перечисления.
 

Это сработала наша проверка :

 TN_val_ole :=  TN_form_ole.ОткрытьМодально();
 if
YesLinkToVariant(TN_val_ole) then begin
  ...
  ...
 end
 else begin
  ListBox1.Items.Clear;
  ShowMessage('Значение не выбрано !');
 end;
 

 

Исходные тексты этого проекта можно взять здесь (13 кб) :  load_from_sbcnt_ole_v06.zip

Здесь можно скачать базу данных HomeLib (30 кб) : homelib_03.zip

 

© 17.08.2007 Сергей Попов

 


Hosted by uCoz