I think I have narrowed the problem down to function fields. The zero values in the example report that I sent are all coming from function fields, rather than database fields. This version of the report only prints when there are no records entered yet.

If I enter "return 0.00" in the function field as a default value, and don't pass anything to the function from my program if the value is 0, then it works.

But I will need to change all my programs that pass a numeric value to a function, to pass nothing for zero, and I will need to change all my reports to have "return 0.00" as the value for these functions.

I didn't need to do this in DR7.