![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание отчета Master-Detail ;с помощью Free_Report [D6, IB6.x]
Наташа © (2003-04-03 23:00:00)Мастера delphi! Подскажите пожалуйста. Создаю отчет Master-Detail
На форму помещаю компонент frReport1 и 2 компонента frDBDataSet, каждый связан соответсвенно со своим IBQuery. В дизайнере помещаю полосы Master Data и Detail Data , и в них выбирю соответсвующие поля. В реультате получаю на каждую запись Master таблицы все записи Detail Таблицы. В чем дело?
Наташа (2003-04-04 09:12:00) [1]Большое спасибо! Все получилось.
Наташа (2003-04-04 08:57:00) [2]Спасибо! Попробую.
zacho (2003-04-04 08:33:00) [3]Это можно сделать несколькими способами. Например, так:
Если в таблице CLIENT первичный ключ - C_ID, и в таблице ORDERS поле со ссылкой на CLIENT тоже C_ID, то в IBQuery2 пишем такой запрос: SELECT * FROM ORDERS WHERE C_ID=:C_ID
В IBQuery2 в свойство DataSource устанавливаем DataSource связанный с IBQuery1.
Наташа (2003-04-04 08:16:00) [4]А можно уточнить, как IBQuery связать по master-Detail? Есть IBQuery1 (Select * from Client (главная таблица)) и IBQuery2(Select * from Orders (detail таблица)). Таблицы Client и Orders
связаны на физическом уровне с помощью внешнего ключа по полю C_Id (код клиента). А что еще требуется? Или нужно удалить связь на физ. уровне и связать как-то здесь?
Andrey V. (2003-04-04 07:55:00) [5]Есть геморройный(ИМХО) путь через исползование
TFrUserDataset , через их эвенты onFirst,onNext и onCheckEOF
Есть кажется в демо пример такой работы.
И есть путь через GroupHeader.
В первом случае нужно два Query , во втором - один.
zacho (2003-04-04 06:26:00) [6]Дело в том, что соответствующие IBQuery тоже надо связать по Master-Detail