Отображение информации

отредактировано 22:41 Раздел: FastReport 4.0
У меня в FastReport в MasterData
Формируется отчет
2014-04-22_0132.png
2014-04-22_0134.png
В первой таблице каждая запись имеет уникальный ID.
Во второй таблице ID не уникальный.
Напрмиер в БД у меня под первой таблицей, под ID 5 одна запись..
она выводится нормально.
А во второй таблице под ID 5, две записи. но вывелась одна (первая), вторая почему-то не выводится.

Комментарии

  • отредактировано 22:41
    Попробуйте привести БД к третьей или хотя бы ко второй Нормализованной Форме
  • отредактировано 22:41
    Nightmareterrible написал: »
    Попробуйте привести БД к третьей или хотя бы ко второй Нормализованной Форме
    ну у меня стоит связь один-ко-многим, вы про это?
  • отредактировано 22:41
    Да, связь первичных и внешних ключей.
    Trane133 написал: »
    А во второй таблице под ID 5, две записи. но вывелась одна (первая), вторая почему-то не выводится.
    Видимо, я подумал, что у вас одинаковые ID, поэтому и посоветовал привести к НФ. Попробуйте перефразировать задачу, а то не очень понятно.
  • отредактировано 22:41
    Nightmareterrible написал: »
    Видимо, я подумал, что у вас одинаковые ID, поэтому и посоветовал привести к НФ. Попробуйте перефразировать задачу, а то не очень понятно.
    2014-04-23_1158.png

    Вот нарисовал, первая таблица как главная, а вторая подчиненная.
    У первой поле ID уникальное, а во вторая наследует ID от первой и записей может быть сколько угодно под одним ID.

    И проблема в том что если например в таблице 2 под одним ID несколько записей выводится только первая.
  • отредактировано 22:41
    Здесь нюансов может быть много, в частности, многое зависит от реализации Master-Detail на уровне DataSet. Если не сложно, пришлите тестовый проект + fr3, где данная функция не работает, тогда можно будет наверняка указать на ошибку.
  • отредактировано 22:41
    Nightmareterrible написал: »
    Здесь нюансов может быть много, в частности, многое зависит от реализации Master-Detail на уровне DataSet. Если не сложно, пришлите тестовый проект + fr3, где данная функция не работает, тогда можно будет наверняка указать на ошибку.

    Вот файл тут все данные.
  • отредактировано 22:41
    Отчёт лучше не хранить в ресурсах приложения, а загружать непосредственно перед ShowReport, поэтому изменение в исходном коде только одно:
    frxReport1.LoadFromFile(ExtractFilepath(Application.ExeName)+'report.fr3');

    В отчёте изменения такие: кидаешь на форму 2 штуки "Данные 2-го уровня" и подключаешь в них DataSet2 и DataSet3 соответственно.
    Ну, естественно, шапку (те Memo, которые жирным шрифтом), кидаешь не в DetailData, а в Header.
  • отредактировано 22:41
    Nightmareterrible написал: »
    Отчёт лучше не хранить в ресурсах приложения, а загружать непосредственно перед ShowReport, поэтому изменение в исходном коде только одно:
    frxReport1.LoadFromFile(ExtractFilepath(Application.ExeName)+'report.fr3');

    В отчёте изменения такие: кидаешь на форму 2 штуки "Данные 2-го уровня" и подключаешь в них DataSet2 и DataSet3 соответственно.
    Ну, естественно, шапку (те Memo, которые жирным шрифтом), кидаешь не в DetailData, а в Header.

    Спасибо большое. все работает.
    Теперь наконец можно и практику сдать)
  • отредактировано 22:41
    Успехов. На будущее - RTFM. У Фастрепорта действительно добротная документация.
    ПС. Прикольная практика. В СИЗО что-ли? :)
  • отредактировано 22:41
    Nightmareterrible написал: »
    Успехов. На будущее - RTFM. У Фастрепорта действительно добротная документация.
    ПС. Прикольная практика. В СИЗО что-ли? :)

    А нет ошибка все таки есть( он щас выводит только те отчеты в которые есть данные либо из 2 либо из 3 таблицы.
    Если в БД у 1-ой таблицы нету предшественников из 2 или 3 таблицы то эта запись из таблицы не выводится(
    ПС. почти в ОП)
  • отредактировано 22:41
    Свойство MasterData1.PtintIfDetailEmpty. Забыл о нём сказать.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.