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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2009, 16:26   #1
truevoxdei
 
Регистрация: 29.06.2007
Сообщений: 4
По умолчанию Master-detail отчет Fast Report.

Господа, помогите.

Кратко о предмете разговора: необзодимо сформировать отчет на основании данных из БД.
Отчёт содержит информацию о результатах тестирования.
Стурктура отчета:

ПРОТОКОЛ ТЕСТИРОВАНИЯ

------------------------------------------------------
1. Вопрос №1
1.1. Ответы тестируемого: ответ_тестируемого 1.1.1
ответ_тестируемого 1.1.2


1.2. Правильные ответы: правильный_ответ 1.2.1
правильный_ответ 1.2.2
правильный_ответ 1.2.3


-------------------------------------------------------
2. Вопрос №2
2.1. Ответы тестируемого: ответ_тестируемого 2.1.4


2.2. Правильные ответы: правильный_ответ 2.2.1
правильный_ответ 2.2.2
правильный_ответ 2.2.3
правильный_ответ 2.2.4
правильный_ответ 2.2.5

--------------------------------------------------------
3. Вопрос №3
3.1. Ответы тестируемого: ответ_тестируемого 3.1.1
ответ_тестируемого 3.1.2
ответ_тестируемого 3.1.3
ответ_тестируемого 3.1.4
ответ_тестируемого 3.1.5

3.2. Правильные ответы: правильный_ответ 3.2.1
правильный_ответ 3.2.2
правильный_ответ 3.2.3
правильный_ответ 3.2.4
правильный_ответ 3.2.5

---------------------------------------------------------
4. Вопрос № 4
4.1. Ответы тестируемого: ответ_тестируемого 4.1.3 //!!! 4.1.3

4.2. Правильные ответы: правильный_ответ 4.2.1
правильный_ответ 4.2.2
правильный_ответ 4.2.3 //!!! 4.2.3
---------------------------------------------------------

N. Вопрос № N
N.1. Ответы тестируемого: ответ_тестируемого N.1.M
ответ_тестируемого N.1.M+1
ответ_тестируемого N.1.....
ответ_тестируемого N.1.M+X

N.2. Правильные ответы: правильный_ответ N.2.M
правильный_ответ N.2.M+1
правильный_ответ N.2.....
правильный_ответ N.2.....
правильный_ответ N.2.M+X
----------------------------------------------------------


Суть проблемы вот в чём. Не получается сформировать группы "ответы тестируемого" и "правильные ответы" в соответствии с номерами вопросов, т.е. что-бы например ответ_тестируемого 1.2.3 принадлежал вопросу №2 и находился в группе "ответы тестируемого".
"Ответы тестируемого" входят в множество ответов "правильные ответы".


Из базы данных извлекаю с помощью написанного SQL-запроса (компонент IBQuery).

Структура (поля) таблиц БД откуда извлекается информация:

Таблица PROTOCOL
ID_PROTOCOL / QUESTION / ANSWER /PLUS /ID_QUESTION


Таблица NUM_QUESTION
ID_QUEST / QUESTIONS / NOMER_QUEST


Таблицы не связаны. Связываются в программе с при извлечении по индксам ID_QUESTION=ID_QUEST


Проштудировал документацию на FastReport (как user manual так и programmers...). Изучил динамическое создание компонентов на форме, думал поможет, но...
потом понял, что именно master-detail должно быть тем самым, что требуется. Посмотрел demo-примеры с master-detail.


Може быть можно просто связать как-нибудь таблицы через компоненты типа DataSet, DataSource и frxDB
Но в целом лучше что-бы начала отрабатывался написанный SQL-запрос, а потом на основании запроса строить отчет.



Немного изменил один из demo-примеров, но вот пока работает не так как надо.
В целом почти сделал то, что требуется (основываясь на примере), но вот никак не могу побороть эффект, когда в "ответы тестируемого" залезает последним элементом уже из следующего вопроса.
Прикрепляю проект (D7) где можно посмотреть.
Помогите добить проблему, уже третий день бьюсь, а толку...



p/s
Используется Delphi 7 (стандартные компоненты из палитры IB)+Firebird 2.5 (beta) embedded и FastReport 4.7.9.
Вложения
Тип файла: rar masterDetail_report_variable_rows.rar (8.3 Кб, 30 просмотров)
truevoxdei вне форума Ответить с цитированием
Старый 27.04.2009, 22:23   #2
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

Цитата:
что-бы например ответ_тестируемого 1.2.3 принадлежал вопросу №2 и находился в группе "ответы тестируемого".
а зачем, у тебя же по примеру и нумерации он относится к первому вопросу?


PS. Поняла - посмотрела пример, щас че-нить соображу
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)

Последний раз редактировалось koma_grusha; 27.04.2009 в 22:27.
koma_grusha вне форума Ответить с цитированием
Старый 28.04.2009, 07:17   #3
truevoxdei
 
Регистрация: 29.06.2007
Сообщений: 4
По умолчанию

Сделал я как требуется. Вот думаю может может ещё что-то упростить, оптимизировать. Сделал с использованием subreport, а так же связыванием таблиц и установкой фильтра в компонентах Table - это для "ответов пользователя". А для правильных ответов использую frxUserDataSet, который sql-запросом с параметром вытаскивает все "правильные ответы".
Хотя хотелось бы всё обрабатывать программно, т.е. sql-запрос, результат запроса, вроде как контроля больше..
Чуть позже выложу пример своей реализации (в божеский вид приведу пример). Но не против советов.
truevoxdei вне форума Ответить с цитированием
Старый 28.04.2009, 13:20   #4
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

извини, я вчера так и не досмотрела...
по поводу советов, я наоборот делаю все в самом отчете, там тоже можно делать запросы, наверное уже видел есть вкладка данные, там компоненты АДО-шные
в общем выкладывай пример, обещаю на этот раз досмотреть
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Fast Report SERG1980 Компоненты Delphi 0 15.12.2008 09:08
Вопрос по Fast Report Tanuska___:) БД в Delphi 5 03.10.2008 17:53
Fast Report, несколько хитрый отчет Jenya Компоненты Delphi 1 29.04.2008 20:32
Не работает master-detail для adostoredprocedure VAbramyak БД в Delphi 2 24.04.2007 16:48
fast report Toxa Общие вопросы Delphi 0 04.12.2006 10:49