Здравствуйте,
У меня версия 2007.2 Знаю, что старая и уже планирую возобновить подписку. Возможно, моя проблема решена в последующих версиях. Если - нет, подскажите как правильно построить отчет.
Отчет выводит данные, сгруппированные в двух уровнях. Существует 5 основных групп, по которым надо выводить итоговые суммы и супергруппа, которая должна вывести итоги по сумме первых трех групп. Данные выводятся с помощью кросс-данных, поскольку требуется еще группировка по времени, которая выполняется с помощью отдельного поля в запросе. Для подсчета сумм по группам первого уровня использую свой массив переменных и событие GetValueEvent. Сумма по супергруппе получается из отдельного источника данных.
Как оказалось, когда очередная строка не помещается целиком на странице по вертикали и она переносится на другую страницу, то GetValueEvent вызывается дважды и сумма расчитывается неправильно.
Подскажите, как правильно посчитать сумму по группе.
Спасибо.
Подсчет суммы по группе
Подсчет суммы по группе
- Вложения
-
- stimul1.png (15.71 КБ) 1341 просмотр
Подсчет суммы по группе
Здравствуйте,
В версии 2007.2 используется EngineV1. Этот движок построения отчетов использует механизм состояний, чтобы обрабатывать такие ситуации как Вы описали. Вам необходимо будет переопределить два метода SaveState и RestoreState в коде отчета. Должно получиться вот так:
Кроме этого нужно использовать событие Rendering у Databand или CrossDataBand'а вместо GetValueEvent.
Спасибо.
В версии 2007.2 используется EngineV1. Этот движок построения отчетов использует механизм состояний, чтобы обрабатывать такие ситуации как Вы описали. Вам необходимо будет переопределить два метода SaveState и RestoreState в коде отчета. Должно получиться вот так:
Код: Выделить всё
public class Отчет : Stimulsoft.Report.StiReport
{
public override void SaveState(string stateName)
{
base.SaveState(stateName);
//Здесь сохраняем состояние переменных
}
public override void RestoreState(string stateName)
{
base.RestoreState(stateName);
//Здесь востанавливаем состояние переменных
}
public Отчет()
{
this.InitializeComponent();
}
Спасибо.