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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2015, 16:56
Brons14 Brons14 вне форума
Прохожий
 
Регистрация: 22.04.2012
Сообщения: 40
Репутация: 10
По умолчанию Отображение записей подчиненной таблицы

Помогите с фильтрацией. Есть 2 таблицы книги и разделы ADODataSet DataSourse база в Access таблица разделы главная связь один ко многим, то есть 1 раздел несколько книг, делаю фильтрацию через ComboBox таким способом
Код:
procedure TForm3.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=0 to DataModule2.RazDS.RecordCount-1 do
begin
Combobox1.Items.Add( DataModule2.RazDS.FieldByName('Раздел').AsString); //заносим название книги
end;
end;

procedure TForm3.ComboBox1Change(Sender: TObject);
begin
DataModule2.RazDS.filter:='Раздел = '+QuotedStr(Combobox1.text); //фильтруем записи по названию
DataModule2.RazDS.Filtered :=true;
end;

подскажите как сделать кнопку или строку в комбобоксе "показать все" при нажатии которой отображались все записи подчиненной таблицы Книги, другими словами что бы связь пропадала
Ответить с цитированием
  #2  
Старый 21.05.2015, 18:35
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну и введи первую запись "Все" в а фильтре проверяй так:
Код:
procedure TForm3.ComboBox1Change(Sender: TObject);
begin
DataModule2.RazDS.filter:='Раздел = '+QuotedStr(Combobox1.text); //фильтруем записи по названию
DataModule2.RazDS.Filtered :=ComboBox1.ItemIndex > 1;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Brons14 (28.05.2015)
  #3  
Старый 21.05.2015, 18:49
Brons14 Brons14 вне форума
Прохожий
 
Регистрация: 22.04.2012
Сообщения: 40
Репутация: 10
По умолчанию

Дело в том, что таблица является подчиненной, как сделать что бы отображались все книги как в акцесе, потому что в делфи, например, в таблице разделы выбран раздел Техническая литература, то в гриде Книги отображаются только книги раздела Техническая литература, а при таком коде он делает все записи в комбо как первая
Ответить с цитированием
  #4  
Старый 21.05.2015, 20:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, если уж на то пошло, то записи в cb одинаковые из-за ошибки в твоем коде его заполнения (кто будет на след. запись переключаться за тебя?)

Код:
procedure TForm3.FormCreate(Sender: TObject);
var
i:integer;
begin
ComboBox1.Items.Clear;
ComboBox1.Items.Add('Все');
DataModule2.RazDS.First;
While Not DataModule2.RazDS.EOF Do
  begin;
     Combobox1.Items.Add( DataModule2.RazDS.FieldByName('Раздел').AsString); //заносим название книги
     DataModule2.RazDS.Next;
  end;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Brons14 (22.05.2015)
  #5  
Старый 22.05.2015, 13:25
Brons14 Brons14 вне форума
Прохожий
 
Регистрация: 22.04.2012
Сообщения: 40
Репутация: 10
По умолчанию

Спасибо, так в комбо добавляются записи, но при нажатии Все в гриде вообще пропадают записи, т.е. фильтруются записи по значению "Все" но такого значения в таблице разделы нет, "все" подразумевается отображать все записи которые есть в ADODataSet Книги, в таблице акцесс книги, а не только те которые принадлежат какому то разделу из главной таблице
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter