|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.04.2009, 16:26 | #1 |
Регистрация: 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. |
27.04.2009, 22:23 | #2 | |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
Цитата:
PS. Поняла - посмотрела пример, щас че-нить соображу
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
Последний раз редактировалось koma_grusha; 27.04.2009 в 22:27. |
|
28.04.2009, 07:17 | #3 |
Регистрация: 29.06.2007
Сообщений: 4
|
Сделал я как требуется. Вот думаю может может ещё что-то упростить, оптимизировать. Сделал с использованием subreport, а так же связыванием таблиц и установкой фильтра в компонентах Table - это для "ответов пользователя". А для правильных ответов использую frxUserDataSet, который sql-запросом с параметром вытаскивает все "правильные ответы".
Хотя хотелось бы всё обрабатывать программно, т.е. sql-запрос, результат запроса, вроде как контроля больше.. Чуть позже выложу пример своей реализации (в божеский вид приведу пример). Но не против советов. |
28.04.2009, 13:20 | #4 |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
извини, я вчера так и не досмотрела...
по поводу советов, я наоборот делаю все в самом отчете, там тоже можно делать запросы, наверное уже видел есть вкладка данные, там компоненты АДО-шные в общем выкладывай пример, обещаю на этот раз досмотреть
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |