Проблема с "динамическим" отчетом

отредактировано 13:23 Раздел: FastReport 2.xx VCL
Доброго времени суток, Господа!

Итак... Сделал я совй отчет следующим образом. На форму накидал датасетов, датасоурсов и TfrDBDataSet. Все привязки прописал. По этим датасетам нарисовал отчет... В предпросмотре все пучком. Теперь возникла задача вызывать этот отчет не через форму а динамически. То есть... есть класс (вне каких-либо форм). В классе есть метод PrintReport. Внутри метода создаю динамичестки те же самые датасеты, датасоурсы и TfrDBDataSet (причем с теми же именами что и у меня на форме лежали). Прописываю связки DataSet - DataSource. Создаю TfrReport. Загружаю отчет из файла. Затем идет следующий код (придумал сам):
frReport->LoadFromFile("..\\Reports\\Commit_bron.frf");
((TfrBandView *)(frReport->FindObject("mdOrders")))->DataSet = "frdsOrders";
((TfrBandView *)(frReport->FindObject("mdMoreHotels")))->DataSet = "frdsHotels";
((TfrBandView *)(frReport->FindObject("mdHotels")))->DataSet = "frdsHotels";
((TfrBandView *)(frReport->FindObject("mdFlights")))->DataSet = "frdsFlights";
((TfrBandView *)(frReport->FindObject("mdCurators")))->DataSet = "frdsCurators";
((TfrBandView *)(frReport->FindObject("mdOrderPrice")))->DataSet = "frdsOrderPrice";
mdOrders, mdHotels и т.д. - это бэнды MasterData. frdsOrders, frdsHotels - это TfrDBDataSet. frReport - TfrReport ;) .
После всего этого делаю сразу frReport->ShowReport(); Почему не далею PrepareReport? Потому что в справке написано что ShowReport и готовит и показывает.
Так вот... после ShowReport вылезает ошибка Missing frdsHotels. Собственно все... Спасибо что дочитали до конца.

Комментарии

  • отредактировано 13:23
    Чтобы FR смог найти датасеты и коннекторы (TfrDBDataSet, TfrUserDataset), у них должен быть Owner <> nil (нужно указать в качестве овнера любое окно, т.к. это связано с процедурой поиска компонента по его имени) и Name <> ''.
  • отредактировано 13:23
    Спасибо большое.

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

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