Очистка отчета при формировании нового
Есть программа, формирующая отчеты их базы MSAccess, в зависимости от выбранных чекбоксов/радиобатонов формируется отчет через PrepareReport с последующим ShowPreparedReport
Так вот если сделать сначала один проход по условиям и получить отчет вышеописанным способом, а после этого изменить условия отбора и сформировать снова отчет, то в результате мы получим и старый отчет и новый.
Ясное дело, скажете Вы - очистить нужно компонент от "старого" отчета....
вот тут собсно и начинается, пробовал делать так:
а)frxReport1.Report.Clear
б)frxReport1.Clear;frxReport1.Report.Clear;
ни то ни другое не помогает, хотя в On-line справочнике для программистов написано:
"Компонент имеет все необходимые свойства и методы для загрузки и сохранения, дизайна и просмотра отчета. Рассмотрим основные методы TfrxReport:
procedure Clear
Очищает отчет ."
Выход я нашел только такой, несколько извращенный на мой взгляд:
1.frxReport1.Clear;
2.frxReport1.PrepareReport;
раз в п.1. мы убрали связь с отчетом, то при попытке подготовить отчет - произошла очистка.
Хочется еще попросить не отправлять меня для более внимательного изучения справки, к параметру процедуры PrepareReport(ClearLastReport:Boolean),потому как подготовка отчета происходит в цикле и если поставить True, то на экран пользователю попадет только последний отчет, либо в цикле нужна будет проверка на кол-во проходов по циклу, чтобы True поставить только на первом проходе
Наверняка кто-нибудь встречался с подобным, подскажите пожалуйста как правильно очистить отчет?
А может быть я не верно трактую справку или дело все-таки в особенностях фаст-репорта?
Пишу на D7+FR3.16
Заранее благодарен всем хотя бы за то, что смогли прочесть эту "телегу"
Так вот если сделать сначала один проход по условиям и получить отчет вышеописанным способом, а после этого изменить условия отбора и сформировать снова отчет, то в результате мы получим и старый отчет и новый.
Ясное дело, скажете Вы - очистить нужно компонент от "старого" отчета....
вот тут собсно и начинается, пробовал делать так:
а)frxReport1.Report.Clear
б)frxReport1.Clear;frxReport1.Report.Clear;
ни то ни другое не помогает, хотя в On-line справочнике для программистов написано:
"Компонент имеет все необходимые свойства и методы для загрузки и сохранения, дизайна и просмотра отчета. Рассмотрим основные методы TfrxReport:
procedure Clear
Очищает отчет ."
Выход я нашел только такой, несколько извращенный на мой взгляд:
1.frxReport1.Clear;
2.frxReport1.PrepareReport;
раз в п.1. мы убрали связь с отчетом, то при попытке подготовить отчет - произошла очистка.
Хочется еще попросить не отправлять меня для более внимательного изучения справки, к параметру процедуры PrepareReport(ClearLastReport:Boolean),потому как подготовка отчета происходит в цикле и если поставить True, то на экран пользователю попадет только последний отчет, либо в цикле нужна будет проверка на кол-во проходов по циклу, чтобы True поставить только на первом проходе
Наверняка кто-нибудь встречался с подобным, подскажите пожалуйста как правильно очистить отчет?
А может быть я не верно трактую справку или дело все-таки в особенностях фаст-репорта?
Пишу на D7+FR3.16
Заранее благодарен всем хотя бы за то, что смогли прочесть эту "телегу"
Комментарии
спасибо,попробую
а по поводу того, что написано в документации - верно ли там написано или все же я не правильно трактую мануал?
в цикле по которому выполняются проходы стоит условие типа
if List.Checked then....
так вот вероятность того, что условие сработает при i=0 достаточно мала, а посему очистка в 99% случаев не происходит
может быть есть еще варианты?
...
frxReport1.LoadFromFile(pathRep +'\'+ namerep +'.fr3', FALSE);
...
frxReport1.PrepareReport(TRUE);
frxReport1.ShowPreparedReport;
И не замечал старых отчётов.
а у меня малость другая ситуация:
мне нужно чтобы при ПЕРВОМ проходе по циклу отчет был очищен и сформирован новый, а при последующим очистка не нужна.
Это пакетная печать по своей сути.