Проблема с "динамическим" отчетом
Доброго времени суток, Господа!
Итак... Сделал я совй отчет следующим образом. На форму накидал датасетов, датасоурсов и 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. Собственно все... Спасибо что дочитали до конца.
Итак... Сделал я совй отчет следующим образом. На форму накидал датасетов, датасоурсов и 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. Собственно все... Спасибо что дочитали до конца.
Комментарии