Странное поведение Detaildata + Groupfooter

отредактировано 19:37 Раздел: FastReport 4.0
Добрый день!

Столкнулся со следующей проблемой :
Создан отчет, в котором есть GroupHeader*,MasterData, DetailData, GroupFooter*.

* - GroupHeader в отчет не выводится, в нем нет никаких полей из датасэтов.
* - В GroupFooter вычисляемое поле (SUM по всем записям и их значениях в колонке в DetailData).

Работает все замечательно, но иногда возникают странные ситуации , причина появления которых, мне не понятна, а именно :
К MasterData приклеиваются не DetailData, как должно быть, а значения MasterData следующей записи.

Прикладываю 2 скриншота:

Как должно работать, и собственно как работает.
scr_1.jpg

Неправильное поведение, которое иногда возникает.
scr_2.jpg

Буду благодарен за любой совет!

Комментарии

  • отредактировано 19:37
    Как мне видится, так это совершенно нормальное поведение. В MasterData 2 записи. с разными ОБТ. Для каждой записи MasterData прикрепляется свой DetailData по соответствию с MasterTable.ID
    Здесь важно именно правильно настроить наборы данных.
    У меня Detail-отношения используются постоянно, никаких проблем пока не возникало. Использую FIBPlus в качестве датасетов.
  • отредактировано May 2016
    Добрый день @Nightmareterrible.

    Хочу прояснить ситуацию.

    Итак, если мы сформируем отчет по всем записям, мы увидим сформированный отчет.
    Записи будут выглядеть примерно так:
    scr_2.jpg

    На данном скриншоте мы видим что все сформировано правильно,
    к каждой записи MasterData, их 2 (красный прямоугольник) относится какое-то количество записей DetailData(зеленый прямоугольник).
    Прошу обратить внимание, как только цикл закончился по записям DetailData относящимся к MasterData - формируется GroupFooter, в котором присутствует поле
    'Общее количество дней на визирование', значение которого находится в обозначенном красном круге.
    Это значение - сумма цифр в оранжевых кругах.
    Так же немаловажно отметить что после формирования GroupFooter можно увидеть отступ, по отношению к следующей записи MasterData.

    Пролистав далее сформированный отчет, находим ту самую ситуацию:
    scr_1.jpg

    Видим что так же как и на первом скриншоте , записей MasterData - две.
    НО! Самое интересное как именно они организованы.
    В красном прямоугольнике - MasterData запись номер 1. Будем принимать ее за Record1.
    Относительно Record1 - 3 записи DetailData(зеленый прямоугольник).

    Собственно на 3 итерации DetailData, FastReport должен был закончить приклеивать записи к Record1 и отрисовать GroupFooter и сделать отступ.
    Этого к сожалению не произошло и мы видим что желтый прямоугольник - еще одна запись MasterData(Record2) приклеенная к Record1.

    Что не мало важно, так это то, что к Record2 так же соответствуют две записи DetailData
    Далее в оранжевом прямоугольнике мы видим сумму значений последней колонки справа всех записей DetailData, как относящихся к Record1 так и к Record2,
    что является в корне неправильным поведением.

    Надеюсь, я прояснил ситуацию.

    Что самое интересное, причину появления я так и не установил и закономерность появления мне до сих пор не понятна.
    То есть, ситуация может не появится в отчете где миллион записей, но может и произойти где записей всего 50.
  • отредактировано 19:37
    А можно посмотреть шаблон отчёта?
  • отредактировано May 2016

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

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