Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.11.2012, 14:31
FroZko FroZko вне форума
Прохожий
 
Регистрация: 12.11.2012
Сообщения: 7
Репутация: 10
По умолчанию Событие OnFilterRecord

Здравствуйте всем! Помогите пожалуйста решить проблему. В событии OnFilterRecord прописываю код:
Код:
if Form1.RadioGroup1.Caption='Марка' then
Accept:= DataSet['Marka']=Form1.Label1.Caption;
if Form1.RadioGroup1.Caption='Год выпуска' then
Accept:= DataSet['God_Vipuska']=Form1.Label1.Caption;
if Form1.RadioGroup1.Caption='Кузов' then
Accept:= DataSet['Kuzov']=Form1.Label1.Caption;
if Form1.RadioGroup1.Caption='КПП' then
Accept:= DataSet['KPP']=Form1.Label1.Caption;
if Form1.RadioGroup1.Caption='Привод' then
Accept:= DataSet['Privod']=Form1.Label1.Caption;
end;
Админ: незабываем про теги!

Фильтрация таблицы происходит по нажатию какого-либо элемента в RadioGroup. Как видно в коде, условий несколько и они нужны для того, что бы производить последовательную фильтрацию (как я планировал), но незадача в этом то и состоит. Мне по логике моего приложения нужно отсеивать неподходящие записи в таблице методом её фильтрации, но этого не происходит, т.к. фильтрация работает только первый раз (с любым из условий). Второй раз таблица уже не фильтрует по этим же условиям. В этом собственно и суть.

Последний раз редактировалось Admin, 18.11.2012 в 14:48.
Ответить с цитированием
  #2  
Старый 19.11.2012, 11:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от FroZko
Фильтрация таблицы происходит по нажатию какого-либо элемента в RadioGroup. Как видно в коде, условий несколько и они нужны для того, что бы производить последовательную фильтрацию (как я планировал), но незадача в этом то и состоит. Мне по логике моего приложения нужно отсеивать неподходящие записи в таблице методом её фильтрации, но этого не происходит, т.к. фильтрация работает только первый раз (с любым из условий). Второй раз таблица уже не фильтрует по этим же условиям. В этом собственно и суть.
После изменения условий фильтрации "передёргивай" свойство Filtered:
Код:
  Table1.Filtered := False;
  Table1.Filtered := True;

И кроме того у TRadioGroup проверять нужно свойство ItemIndex, а не Caption, так как выбор элементов это свойство не изменяют (разве что ты сам зачем-то это свойство изменяешь ):
Код:
var
  FieldName: string;
begin
  case RadioGroup1.ItemIndex of
    0: FieldName := 'Marka';
    1: FieldName := 'God_Vipuska';
    2: FieldName := 'Kuzov';
    3: FieldName := 'KPP';
    4: FieldName := 'Privod';
  else
    FieldName := '';
  end;

  Accept := (FieldName <> '') and (DataSet[FieldName] = Label1.Caption);
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:44.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025