Some quick and dirty, untested thoughts:
How about something in the Report Detail section? something like this:
On Format Event:
If TextBox=0 then Textbox.visible = no.
If TextBox=0 then Textbox.Font Color = background color.
Or consider this:
Instead of displaying the payment field, display an unbound field (paymentshadow)with a formula that copies the value of the payment field, unless it is a zero. In that case, make it a null value which should not display.
You could do this at a query level so that if you have multiple reports based on the same query, you only need to make this field once.