Удаление записей в наборе данных FastReport
Модераторы: m0p3e, edward_K, Модераторы
Удаление записей в наборе данных FastReport
Есть ли возможность удалить строки из датасета уже в самом Фастрепорте (а не при создании потока)?
Т.е. хотелось бы при создании отчета в событии отчета OnBeforePrint прогнать цикл по датасету и удалить по некоторым критериям ненужные записи. Возможно ли это средствами FastReport?
Поток данных менять нельзя, т.к. с ним связан стандартный отчет, в котором должны быть все записи.
Т.е. хотелось бы при создании отчета в событии отчета OnBeforePrint прогнать цикл по датасету и удалить по некоторым критериям ненужные записи. Возможно ли это средствами FastReport?
Поток данных менять нельзя, т.к. с ним связан стандартный отчет, в котором должны быть все записи.
Re: Удаление записей в наборе данных FastReport
Не знаю на счет удаления, но можно же просто не выводить ненужные записи.Buddy писал(а):Есть ли возможность удалить строки из датасета уже в самом Фастрепорте (а не при создании потока)?
Т.е. хотелось бы при создании отчета в событии отчета OnBeforePrint прогнать цикл по датасету и удалить по некоторым критериям ненужные записи. Возможно ли это средствами FastReport?
Поток данных менять нельзя, т.к. с ним связан стандартный отчет, в котором должны быть все записи.
Re: Удаление записей в наборе данных FastReport
Это как, например?
Re: Удаление записей в наборе данных FastReport
Вот так. На событии перед печатью строки:Buddy писал(а):Это как, например?
Код: Выделить всё
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
begin
if <TEMPSP."CODEMC"> = 'DWS0004' then
detaildata1.visible:=false
else
detaildata1.visible:=true
end;
Re: Удаление записей в наборе данных FastReport
Причем даже итоги по суммам у меня меняются в зависимости от количества печатающихся строк.
Re: Удаление записей в наборе данных FastReport
Хм, не знал про такой прием, спасибо.
Но у меня ситуация немного сложнее - нужно убрать повторяющиеся записи, т.е. стоя на очередной записи, нужно сравнивать значения в ней со значениями в предыдущей записи.
Но у меня ситуация немного сложнее - нужно убрать повторяющиеся записи, т.е. стоя на очередной записи, нужно сравнивать значения в ней со значениями в предыдущей записи.
Re: Удаление записей в наборе данных FastReport
Сохраняйте проверяемые значения в переменные и с ними сравнивайте.Buddy писал(а):Хм, не знал про такой прием, спасибо.
Но у меня ситуация немного сложнее - нужно убрать повторяющиеся записи, т.е. стоя на очередной записи, нужно сравнивать значения в ней со значениями в предыдущей записи.
Re: Удаление записей в наборе данных FastReport
а нельзя на этапе подготовки данных добавить признак печатаемости строки для этого отчета? Чтобы в потоке сразу был признак необходимости печати именно этой строки.Buddy писал(а):Есть ли возможность удалить строки из датасета уже в самом Фастрепорте (а не при создании потока)?
Т.е. хотелось бы при создании отчета в событии отчета OnBeforePrint прогнать цикл по датасету и удалить по некоторым критериям ненужные записи. Возможно ли это средствами FastReport?
Поток данных менять нельзя, т.к. с ним связан стандартный отчет, в котором должны быть все записи.
Так как этот признак будет проверяться только в нужном отчете, это не повлияет на формирование других отчетов, где нужны все данные.
Или к формированию потока у вас нет доступа?
Re: Удаление записей в наборе данных FastReport
Я делаю клон стандартного отчета. Теоретически я мог бы влезть в формирование потока, но уж очень не хочется.
Попробую ваш вариант с переменными.
Попробую ваш вариант с переменными.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Удаление записей в наборе данных FastReport
Ну это если уверены, что только в предыдущей могут быть повторяющиеся значения, то да - как Spark предложил. А если не только в предыдущей, то в какой то массив придется сохранятьBuddy писал(а):Хм, не знал про такой прием, спасибо.
Но у меня ситуация немного сложнее - нужно убрать повторяющиеся записи, т.е. стоя на очередной записи, нужно сравнивать значения в ней со значениями в предыдущей записи.
"что было во всех предыщущих записях датасета". Вроде массивы тоже были в FR (могу ошибаться)
Re: Удаление записей в наборе данных FastReport
spark, Den, решение с отлично подошло, спасибо.
Теоретически все же было бы интересно, можно ли редактировать датасет, но это не срочно (ведь и так решение найдено), да и спрашивать, наверное, лучше на форуме Фастрепорта.
Код: Выделить всё
detaildata1.visible:=false
Теоретически все же было бы интересно, можно ли редактировать датасет, но это не срочно (ведь и так решение найдено), да и спрашивать, наверное, лучше на форуме Фастрепорта.