Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2015, 18:05   #1
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию Отображение записей подчиненной таблицы

Помогите с фильтрацией. Есть 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;
подскажите как сделать кнопку или строку в комбобоксе "показать все" при нажатии которой отображались все записи подчиненной таблицы Книги
Marla14 вне форума Ответить с цитированием
Старый 22.05.2015, 06:33   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
Combobox1.items.insert(0,'показать все');
Код:
DataModule2.RazDS.filter:='Раздел = '+QuotedStr(Combobox1.text); //фильтруем записи по названию
if combobox1.text='показать все' then
  DataModule2.razDS.filtered:=false
else 
  DataModule2.razDS.filtered:=false
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 22.05.2015, 07:09   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:

with DataModule2.RazDS do begin
 filtered:=false;
 filter:='Раздел = '+QuotedStr(Combobox1.text); //фильтруем записи по названию
 filtered:=combobox1.text='показать все';
end;
А то по-моему у evg_m опечатка закралась
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.05.2015, 08:53   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
А то по-моему у evg_m опечатка закралась
полностью согласен, надо бы так
Код:
else 
  DataModule2.razDS.filtered:=TRUE;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 22.05.2015, 13:31   #5
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Так фильтруется по значению "показать все", но такого значения в таблице разделы нет, а показать все подразумевается отобразить все записи подчиненной таблицы Книги, а не только те которые соответствуют выбранному разделу в главной таблице Разделы
Marla14 вне форума Ответить с цитированием
Старый 22.05.2015, 13:38   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
показать все подразумевается отобразить все записи подчиненной таблицы
именно поэтому в ОДНОЙ из веток мы и убираем фильтрацию
Цитата:
Код:
...filtered:=FALSE /// чтобы показать ВСЕ.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 22.05.2015, 13:44   #7
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Просто фильтрация отменяется, Вы не поняли, я даже не знаю как объяснить, нужно что бы связь пропадала между таблицами

В делфи, когда связь один ко многим, в главной таблице (в данном случае Разделы) если поставить курсор, т.е выделить запись например Техническая литература, то в подчиненной таблице (Книги) отобразятся только книги раздела Техническая литература, но их там намного больше разделов, так вот я хочу узнать возможно ли сделать что бы отображались все книги всех разделов

Последний раз редактировалось Stilet; 22.05.2015 в 14:03.
Marla14 вне форума Ответить с цитированием
Старый 22.05.2015, 13:56   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Отображение в программе не зависит от наличия или отсутствия связей в базе данных. Вернее не так - логически зависит, физически ни как. Как программист захочет, так и отображает. Так что возможно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.05.2015, 14:17   #9
Marla14
Пользователь
 
Регистрация: 29.01.2015
Сообщений: 38
По умолчанию

Спасибо за ответ
Marla14 вне форума Ответить с цитированием
Старый 22.05.2015, 14:34   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Есть 2 таблицы книги и разделы
Тогда "раздел" будеть главное таблица и "книги" его подчиненная таблица
Цитата:
нужно что бы связь пропадала между таблицами
Смотрите
Код:
procedure TForm1.qryRazdelAfterScroll(DataSet: TDataSet);
begin
   // Фильтрация данных для подчиненной таблицы.
  // Отображаются только те записи, у которых внешний ключ равен значению ключевого поля главной таблицы
  if qryRazdel.FieldByName('ID').AsString<>'' then
    begin
      qryKnini.Filtered:=False;
      qryKnini.Filter:='Razdelid='+qryRazdel.FieldByName('ID').AsString;
      qryKnini.Filtered:=True;
    end;

    // Заполняем наши ComboBox1
  ComboBox1.Items.Clear;
  While not qryKnini.Eof do
  begin
     ComboBox1.Items.Add(qryKnini.Fields[1].AsString);
     qryKnini.Next;
  end;
end;

end.
Изображения
Тип файла: jpg 1.jpg (71.4 Кб, 55 просмотров)
Тип файла: jpg 2.jpg (48.8 Кб, 54 просмотров)
Тип файла: jpg 3.jpg (48.5 Кб, 58 просмотров)
Тип файла: jpg 4.jpg (52.7 Кб, 56 просмотров)
Тип файла: jpg 5.jpg (53.2 Кб, 59 просмотров)
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь главной и подчиненной таблицы в Firebird artemavd БД в Delphi 8 10.09.2012 06:28
Изображение из подчиненной таблицы Aleks_R Microsoft Office Access 1 10.07.2012 19:39
Событие для подчиненной таблицы на форме DenProx Microsoft Office Access 61 27.01.2011 12:57
Фильтрация подчиненной таблицы chinara Помощь студентам 2 09.12.2010 08:36
доступ к данным подчиненной таблицы kopernik21187 БД в Delphi 5 21.08.2008 17:04