Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать отчет master-detail, firebird-fastreport 3.10-master-detail 
V
    Опции темы
sergey_85
Дата 10.12.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Привет всем!
Использую FireBrid 2.1 + FIBPlus 6.5 + FastREport 3.10
Нужно построить отчет типа master-detail, но в мануале приведен тольк пример с Table, а в FIBPlus нет их только TQuery и Dataset.
Как можно выкрутитсья из данного полжения, может есть альтернатива?
(юзать надо только Dataset) 

Вот как должен выглядеть отчет:

Страна1
    Город1
    Город2
    ...
Страна2
    Город1
    Город2
    ...
...


--------------------
A good design always pays off.
PM MAIL   Вверх
Akella
Дата 10.12.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Прикрути frxDBDataset к pFibDataSet
PM MAIL   Вверх
sergey_85
Дата 10.12.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



блин так и делаю но суть в том что выводятся к примеру все города независимо от страны
т.е. так

Старна1
  город1
  город2
  город3
  город4

Страна2
  город1
  город2
  город3
  город4

а должно например быть так

Старна1
  город4

Страна2
  город1
  город3
  город4




--------------------
A good design always pays off.
PM MAIL   Вверх
Akella
Дата 10.12.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



а при чём здесь отчёт и SQL запрос? Что тебе выдаёт запрос, то и в отчёт лезет, так что FastReport тут не причём. Сооруди сначала запросы.
PM MAIL   Вверх
Deniz
Дата 11.12.2008, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



sergey_85, покажи sql-запрос.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
sergey_85
Дата 11.12.2008, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



ну и трудно с вами.

Есть запрос 
select * from country 
и 
select * from city where city.countryId = :countryId

Есть 2 датасета
есть шаблон отчета содержащий банды MasterData и DetailData

MasterData настроен на датасет с  запросом select * from country
(туда кидаю лейбл с полем например countryId)

DetailData настроен на датасет с  запросом select * from city where city.countryId = :countryId
(туда кидаю лейбл с полем например cityId)

Отчет генерируется, данные выводятся НО  когда идет разделение то для каждой страны выводятся
ВСЕ города а не те которые есть у данной страны т.е.

Старна1
  город1
  город2
  город3
  город4

Страна2
  город1
  город2
  город3
  город4

а должно например быть так

Старна1
  город4

Страна2
  город1
  город3
  город4


--------------------
A good design always pays off.
PM MAIL   Вверх
Deniz
Дата 11.12.2008, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(sergey_85 @  11.12.2008,  10:17 Найти цитируемый пост)
ну и трудно с вами.
жизнь несправедливая штука.
В отчете свяжи 2 набора данных


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 11.12.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(sergey_85 @  11.12.2008,  07:17 Найти цитируемый пост)
MasterData настроен на датасет с  запросом select * from country
(туда кидаю лейбл с полем например countryId)

DetailData настроен на датасет с  запросом select * from city where city.countryId = :countryId
(туда кидаю лейбл с полем например cityId)

да в любом примере для новичков тебе описывают, что мастер и деталь связаны с помощью TDataSource
PM MAIL   Вверх
Akella
Дата 11.12.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



sergey_85, и ВОТ ещё
PM MAIL   Вверх
jsa
Дата 11.12.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 5
Всего: 20



Цитата(sergey_85 @  11.12.2008,  12:17 Найти цитируемый пост)
Отчет генерируется, данные выводятся НО

а не проще ли так сделать:
1 поправить завпрос на 
Код

select * 
from city a, country b
where a.countryId = b.id
order by b.country_name, a.city_name

2 в FastReport добавить GroupHeader и указать ему поле countryID + Выводить на нем Country_Name


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
sergey_85
Дата 11.12.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Да этот вариант я рассматривал и буду юзать его если 1 вариант не сработает, НО у меня запрос то 
не такой в смысле не по городам а намного сложнее это лишь для примера чтобы не париться 
главное что суть та же.

все-таки хотелось бы сделать master_detail или нахрена он вобще нужен??????


--------------------
A good design always pays off.
PM MAIL   Вверх
Akella
Дата 11.12.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



ТАК КТО ТЕБЕ МЕШАЕТ? ПОГУГЛИ!! В РУНЕТЕ ВАЛОМ!!!!


Цитата(Akella @  11.12.2008,  09:32 Найти цитируемый пост)
мастер и деталь связаны с помощью TDataSource

я смотрю, что новичкам уже нужно по 2 раза повторять
PM MAIL   Вверх
sergey_85
Дата 11.12.2008, 12:55 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



хорошо, Akella, свяжи мне через TDataSource два TpFIBDataSet ну?
запрсы я писал выше.


--------------------
A good design always pays off.
PM MAIL   Вверх
Akella
Дата 11.12.2008, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



кошмар  smile 
....народ пошёл...
разжевали, в рот положили, а проглотить не может

Добавлено @ 13:00
кинь на форму TDataSource, у него будет имя dsMaster (не запутайся)
tMaster - мастер НД
tDetail - деталь НД
dsMaster - TDataSource

dsMaster.dataset := tMaster;
tDetail.datasource := dsMaster;

теперь tDetail знает, что такое :countryId

а раньше ОТКУДА ЕМУ БЫЛО ЗНАТЬ?


Цитата(sergey_85 @  11.12.2008,  07:17 Найти цитируемый пост)
select * from city where city.countryId = :countryId


Добавлено @ 13:02
РАЗБЕРЁШЬСЯ? ИЛИ ТЕБЕ СНИМОК ЭКРАНА СДЕЛАТЬ?

кстати, в фибах есть примеры и описание, как сделать мастер-деталь, я в шоке, уже на русском и не прочитать и примеры не посмотреть...

Добавлено @ 13:04
Вот ещё тебе для фибов, если в доками не пользуешься

Главные - подчиненные наборы данных
В дополнение к стандартному для TDataSet механизму Master-Detail, FIBPlus имеет
дополнительную группу опций – DetailCondition, описанную следующим образом:
TDetailCondition=(dcForceOpen,dcIgnoreMasterClose,dcForceMasterRefresh,
dcWaitEndMasterScroll);
TDetailConditions= set of TDetailCondition;
dcForceOpen если включена эта опция, то детальные TpFIBDatSet будет
открываться автоматически при открытии мастера;
dcIgnoreMasterClose если включена эта опция, то детальный TpFIBDataSet не будет
закрываться в случае закрытия мастера;
dcForceMasterRefresh если включена эта опция, то при обновлении детального
TpFIBDataSet будет производиться обновление текущей записи
мастера;
dcWaitEndMasterScroll если включена эта опция, то TpFIBDataSet будет «ждать» некоторое
время при прокрутке мастера, и лишь потом переоткрывать деталь.
Опция позволяет избежать лишней работы при простой навигации по
мастеру.




FIBPlus: Особенности механизма master-detail ЧАСТЬ1
внизу странички даже есть полный рабочий код!
Вот прямая ссылка, а ещё не найдёшь smile 


FIBPlus: Особенности механизма master-detail ЧАСТЬ2

Вот ещё читать!!

Это сообщение отредактировал(а) Akella - 11.12.2008, 13:14
PM MAIL   Вверх
sergey_85
Дата 11.12.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Давай снимок экрана если такой умник!

1 - не бойся за меня Я не запутаюсь.

2 - если НЕ ХОЧЕШЬ не отвечай, никто не заставляет тебя это делать!
3 - не все носят манулы с собой в кармане ко всем компонентам  как ты! и не помнят чо и где на какой странице!

//
4 - форум и для того чтобы отвечать на подобные вопросы, иначе в гугле ты х*й бы чо нашел!
//

5 - если не нравяться слишком простые вопросы найди другой форум, например для таких умников как  ты или игнорь.



6 - спасибо за ответ!  smile 



--------------------
A good design always pays off.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.