ИМХО, на самом деле вопрос не такой и простой.
Во-первых, не надо трогать fetch и send. Тогда многое в штатных механизмах работать перестанет. Например, скорее всего, пользователь не сможет добавлять свои условия, привязывать таблицы, изменять порядок сортировки и т.п.
Во-вторых, не надо накапливать суммы в переменных самостоятельно. Надо воспользоватся свойством SumAll, SumPos или SumNeg.
Скорее, стоит написать 4 display-метода, которые будут возвращать 0 или значение текущей записи в зависимости от условия. А в колонках отчета указывать эти методы. Таким образом, можно минимизировать программирование.
На самом деле, этот способ не очень красив. Я надеялся, что кто-нибудь предложит способ получше. fetch/send - точно трогать не надо.