Шаг 8.4 - Создание управляющих процедур формы.
Перейдите в модуль PCFindDetails, встаньте на форму fmPCFindDetails, в окне инспектора свойств перейдите на закладку Events и дважды щелкните мышкой напротив события OnShow. Будет создана соответствующая процедура FormShow. В ведите в тело процедуры следующие строки:
procedure TfmPCFindDetails.FormShow(Sender: TObject);
begin
inherited;
Self.vlftv.BDDCOM:=CurBDDCOM;
// поместить указатель на DCOM-соединение в компонент TVLFindTableView из системного буфера
CurBDDCOM:=nil;
// обнулить системный буфер
end;
Щелкните левой кнопкой мыши по компоненту sbtFind - TSpeedButton (кнопка поиска деталей в базе данных - см. рис. 8.2), в окне инспектора свойств перейдите на закладку Events и дважды щелкните напротив события OnClick. Будет создана процедура выбранного события sbtFindClick. Введите в тело процедуры следующие строки:
procedure TfmPCFindDetails.sbtFindClick(Sender: TObject);
begin
inherited;
Self.vlftv.stProductName:=Self.edShifr.Text+'%';
// поместить в качестве условия поиска по ключевому атрибуту
// содержимое поля edShifr + "%"
Self.vlftv.RefreshControl;
// регенерировать таблицу поиска
end;
Скомпилируйте проект, загрузите приложение, вызовите процедуру поиска деталей, введите в поле edShifr значение "3-" и нажмите кнопку - sbtFind. После некоторой паузы в таблице будет выведен список деталей, у которых атрибут Обозначение начинается со значения "3-" (см. рисунок 8.7).
Рис. 8.7.
Добавление к содержимому поля edShifr строкового значения "%" означает "любой знак", т.е. поиск объектов в базе данных осуществляется по начальному фрагменту ключевого атрибута, который может заканчиваться любым буквосочетанием. В учебной базе данных PLMBase в качестве ключевого атрибута для конструкторских объектов принят атрибут Шифр, значение которого автоматически складывается из значений атрибутов Обозначение и Наименование. В этой ситуации существует вариант поиска объектов по фрагменту наименования объекта. Например, введите в поле значение "%Планка" и нажмите кнопку поиска. Результат поиска будет такой, как на рисунке 8.8. В таблице поиска будут представлены детали, у которых в атрибуте Наименование представлен фрагмент "Планка".
Рис. 8.8.
Далее...