Проблемы с датасетом в отчете

отредактировано 10:18 Раздел: FastReport 3.0
Доброго всем времени суток.
Очень прошу помощи. Ситуация такова:
1. В программе используется массив FMyForm : array [1..2] of TFMyForm;
2. Форма содержит один SQL-запрос, который выбирает данные из разных таблиц, в зависимости от того, запущен экземпляр FMyForm[1] или FMyForm[2].
3. На форме находится компонент TfrxReport и TfrxDBDataSet. DataSet привязан к одному источнику данных - этому самому SQL-запросу. Содержимое этого запроса и надо вывести в отчет.
Если в момент вызова отчета (ShowReport(True)) запущен только 1 экземпляр FMyForm (без разницы, какой именно) - все происходит отлично. Если же запущено одновременно 2 экземпляра (FMyForm[1] и FMyForm[2]), то правильно срабатывает только тот отчет, чья форма была создана первой (кто раньше встал, того и тапки).
Т.е. если я сначала создаю FMyForm[2], а потом, не закрывая ее, создам FMyForm[1], то правильно будет работать только отчет вызываемый именно из FMyForm[2] - в отчете светятся и DataSet'у соответствуют актуальные данные. А в отчете, вызываемом из FMyForm[1] ситуация непонятная: число записей правильное, но содержание соответствует DataSet'у из FMyForm[2].
Подскажите PLZZZ, из-за чего такое может быть. Теоретически, для каждого экземпляра FMyForm должен создаваться "свой" компонент TfrxReport и TfrxDBDataSet и конфликтов быть не должно.
Может быть, когда имеется несколько одинаковых датасетов, то отчет не смотрит по области видимости датасета, а перебирает все видимые подряд с начала, вот и во втором отчете цепляется первый открытый датасет.
Спасибо за внимание.

Комментарии

  • отредактировано 10:18
    знаешь, я в FR не рублю совершенно, но личному по опыту могу предположить, что здесь дело не в нём
    тут бы надо взять поллитру, сесть и ещё раз внимательно пересмотреть что за чем создаётся, всю последовательность внимательно перебрать...
  • LexLex
    отредактировано 10:18
    написал:
    Может быть, когда имеется несколько одинаковых датасетов, то отчет не смотрит по области видимости датасета, а перебирает все видимые подряд с начала, вот и во втором отчете цепляется первый открытый датасет.
    Именно так, FastReport цепляет датасеты по имени.
    Дай им разные имена, или если создаются два экземплята одной формы создавай TfrxDBDataSet на лету и на лету же привязывай его к бендам отчета (или к чему он там у тебя привязывается).

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

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