FR 3.20 bug
День добрый!
Суть проблемы:
В качестве источника данных для репорта может быть как clientdataset, так и обычный adodataset. В оба датасета данные приходят от метода, возвращающего _recordset. Во втором случае простым присваиванием adodataset.recordset := _recordset. На форме лежит компонент типа TfrxDBDataset, свойство Dataset которого указывает на нужный dataset.
Так вот, в грид все данные выводятся без запинки, а при вызове метода PrepareReport в первом случае всё окей, а во втором возникает ошибка Connection missing or connection string и датасет закрывается.
В чём дело?
Суть проблемы:
В качестве источника данных для репорта может быть как clientdataset, так и обычный adodataset. В оба датасета данные приходят от метода, возвращающего _recordset. Во втором случае простым присваиванием adodataset.recordset := _recordset. На форме лежит компонент типа TfrxDBDataset, свойство Dataset которого указывает на нужный dataset.
Так вот, в грид все данные выводятся без запинки, а при вызове метода PrepareReport в первом случае всё окей, а во втором возникает ошибка Connection missing or connection string и датасет закрывается.
В чём дело?
Комментарии
Нашёл откуда ноги растут!
Дело в том что если подключить к проекту модуль frx2xto30, в котором определено "событие" frxFR2Events.OnGetValue := frxFR2EventsNew.DoGetValue, то при наличии в шаблоне отчёта заголовка группы, в методе TfrxReport.DoGetValue происходит анализ шаблона как двушного, даже если он троешный.
Т.е. срабатывает проверка if Assigned(frxFR2Events.OnGetValue)
При этом если в проекте два датасета, например адошный и клиентский и имя одного из них совпадает
со значение свойства username компонента frxDBDataSet, то в случае когда данные в первом датасете, а второй вообще закрыт и вылезет ошибка в методе PrepareReport.
Куда пример намылить?
Ведь это-то не сложно.
Ладно, как-нибудь вывернусь. Напишу по COM-объекту для каждого случая, или в nil сведу всё, что в секции инициализации модуля frx2xto30, в случае если форма троешная.
Хотя хотелось бы, чтобы такого рода действия в будущем предпринимать не пришлось.
Спасибо за ответы.