СИТ "Сетевые Информационные Технологии (в машиностроении)"
Неформальное объединение IT специалистов
 
tltr
..Visual Loodsman for Delphi
Предыдущая страницаСледующая страницаГлавная страницаКарта сайтаКарта сайта
   
   
   
  Главная
  Карта сайта
  Контакты
   
  Учебное пособие:
  Содержание
   
   
  Компания АСКОН
.....
Урок 8 - Организация сквозного поиска объектов в базе данных системы ЛОЦМАН:PLM (продолжение).
 

     Встаньте на компонент chbOKP - TCheckBox ("включая код"), и в инспекторе свойств перейдите на закладку Events. Дважды щелкните напротив события OnClick, будет создана соответсвтующая процедура chbOKPClick. Введите в тело процедуры следующие строки:

procedure TfmPCFindDetails.chbOKPClick(Sender: TObject);
begin
     inherited;
     if Self.chbOKP.Checked then
     // если флажок установлен
     begin
          Self.edOKP.Enabled:=True;
          // включить доступ к полю редактирования условия поиска по коду ОКП
          Self.sbtOKP.Enabled:=True;
          // включить доступ к кнопке вызова справочника ОКП для выбора кода
          Self.edOKP.Color:=clWindow;
          // изменить цвет поля редактирования условия посика по коду ОКП
     end
     else

     // если флажок не установлен
     begin
          Self.edOKP.Enabled:=False;
          // выключить доступ к полю редактирования условия поиска по коду ОКП
          Self.sbtOKP.Enabled:=False;
          // выключить доступ к кнопке вызова справочника ОКП
          Self.edOKP.Color:=clBtnFace;
          // изменить цвет поля редактирования условия посика по коду ОКП
     end;
end;

     Представленная выше процедура позволяет включить в условия поиска деталей в базе данных дополнительное условие поиска по значению атрибута Код ОКП. Собственно код (или его фрагмент) можно ввести вручную в соответсвующее поле. Кроме этого можно с помощью специальной кнопки загрузить модальную форму с деревом классификатора ОКП и выбрать код в визуальном режиме. Построение вспомогательного модального окна для выбора кода ОКП будет описано в следующем уроке (оно носит универсальный характер и может пригодится в будущем для других модулей приложения). На данном уроке ограничимся ручнымм вводом фрагмента кода в поле edOKP.
     Для включения дополнительного условия поиска в наш алгоритм внесем следующие изменения в процедуру sbtFindClick, описанную выше:

procedure TfmPCFindDetails.sbtFindClick(Sender: TObject);
begin
     inherited;
     if Self.chbOKP.Checked then
     // если флажок поиска по коду ОКП установлен
     begin
          if Self.edOKP.Text<>'' then Self.vlftv.stAttrCondition:='Код ОКП:Код ОКП Like '+QuotedStr(Self.edOKP.Text+'%')
          // если в поле условия поиска по коду ОКП есть текст
          // сформировать условие поиска и поместить его в компонент TVLFindTableView

          else Self.vlftv.stAttrCondition:='';
          // если в поле условия поиска по коду ОКП нет текста
          // обнулить условие поиска в компоненте TVLFindTableView

     end
     else

     // если флажок поиска по коду ОКП не установлен
     begin
          Self.vlftv.stAttrCondition:='';
          // обнулить условие поиска в компоненте TVLFindTableView
     end;
     Self.vlftv.stProductName:=Self.edShifr.Text+'%';
     // поместить в качестве условия поиска по ключевому атрибуту
     // содержимое поля edShifr + "%"

     Self.vlftv.RefreshControl;
     // регенерировать таблицу поиска
end;

     Обратите внимание на алгоритм формирования условия поиска объектов в базе данных по атрибуту. Более подробное описание смотрите TVLFindTableView. Скомпилируйте проект, загрузите приложение, загрузите окно поиска деталей в базе данных, оставьте поле поиска по ключевому атрибуту не заполненным, включите режим поиска по атрибуту Код ОКП, введите в поле поиска кода ОКП значение "31" и нажмите кнопку - sbtFind. Результат поиска отображен на рисунке 8.9.

Рис. 8.9.

     Далее...

Предыдущая страницаСледующая страницаГлавная страницаКарта сайтаКарта сайта
 
 
...© 2010 "Сетевые Информационные Технологии" ...Главная...Карта сайта...Контакты