Не очищается предыдущий отчет
Создаются MDI формы с ClientDataset.
При запуске первого превью если форму не закрыть,
то все последущие формы с другими данными будут окрывать первый отчет.
Если закрыть полностю форму то далее первый запущеннй отчет "захватит контороль".
Динамическое создание репорта,
Report.Free,
ShowReport(true) не помогают.
Версия 3.18
Превью используется встроенный. Отчет загружется так
При запуске первого превью если форму не закрыть,
то все последущие формы с другими данными будут окрывать первый отчет.
Если закрыть полностю форму то далее первый запущеннй отчет "захватит контороль".
Динамическое создание репорта,
Report.Free,
ShowReport(true) не помогают.
Версия 3.18
Превью используется встроенный. Отчет загружется так
frxReport1->Report->Clear();
frxReport1->PreviewPages->Clear();
frxReport1->Clear();
// TfrxReport* fr = new TfrxReport(this);
frxReport1->LoadFromFile("..\\Reports\\1.fr3", true);
frxReport1->Variables->Variables["Filtr"] = "'Âûáðàíî:" + strFiltr + "'";
frxReport1->Modified=true;
frxReport1->ShowReport(true);
frxReport1->Free();
Комментарии
Или это слишком "элементраная проблема"?
Может здесь нет разработчиков fastreportа и мне надо задавать воопрос в другом месте
while(Report->DataSets->Count)
delete Report->DataSets->
Items[Report->DataSets->Count - 1]->DataSet;
Потом Add. Не помогает!
Кстати все компоненты в рантайме.
попробуй в OnDestroy владельца удалять все что создал и Owner ставить им NULL
Если ты имеешь ввиду OnDestroy формы то необходимо чтобы было открыто
несколько MDI форм и каждая открывала свой отчет в соответсвии с
со своим датасетом. Я проверил у разных форм адреса памяти репорта вроде разные. Подозрение такое что превью форма скрыта и всегда одна и вызывается каждый раз она. Если закрыть предыдущую форму тогда все в порядке.
Помогло
while(fr->DataSets->Count)
delete fr->DataSets->Items[fr->DataSets->Count - 1]->DataSet;
Непонятно только это баг и или фича такая что все репорты на разных открытых формах ссылаются на датасет первой открытой формы.
А все эти методы Clear() непонятно что очищают. А так в целом респект разработчикам. Это мой первый отчет в fastreport. В целом довольно все удобно и продумано.