Печать не всех записей датасета
Здравствуйте!
Как лучше выполнить печать только некоторых записей датасета.
Например, печать всех записей, у которых значение кокого-н. поля равно 0.
Или, на форме есть DBGridEh, надо напечатать все выделенные записи (при MultiSelect=True).
Но надо это сделать не в самом отчете (там есть только банд MasterData), а в коде программы.
При этом нельзя использовать другой, дополнительный, датасет.
Т.е., я догадываюсь, можно как-то наподобие:
Как лучше выполнить печать только некоторых записей датасета.
Например, печать всех записей, у которых значение кокого-н. поля равно 0.
Или, на форме есть DBGridEh, надо напечатать все выделенные записи (при MultiSelect=True).
Но надо это сделать не в самом отчете (там есть только банд MasterData), а в коде программы.
При этом нельзя использовать другой, дополнительный, датасет.
Т.е., я догадываюсь, можно как-то наподобие:
DataSet.First;
while not DataSet.Eof do
begin
if DataSet.FieldByName('...').Value=0 then
begin
frxReport.....
end;
DataSet.Next;
end
Комментарии
Его может и не быть в явном виде.
Может понадобиться напечатать только выбранные записи в DBGrigEh.
При установленном dgMultiSelect=True выполняется переход к записям так:
Я хочу сделать все универсально.
Отчеты храняться в отдельных файлах. Но есть еще XML файл Reports.xml, в котором храняться "ссылки" на отчеты в программе. Для каждого отчета указывается его тип (количество печатаемых документов: только текущий, все выбранные и т.д.), настройки (ориентация бумаги и т.д.), поля датасета (при использовании CrossView).
Так вот, при выборе отчета, где печатаюстя все выбранные документы, если не один не выбран, надо печатать все открытые в датасете, а если какие-то выбраны - то только их.