Have you worked with Non persistent BO's yet, you could try
FIND [whatever records you want to find]
Create [non persisten BO] FOR EACH [found BO] with [Non Persistent BO.some_attribute] = SUM Invoices.Total WHERE (Invoices.Status='Send' AND Invoices.InvoiceForAgent=ThisInvoices.InvoiceForAgent AND DAY_DIFFERENCE(CURRENT_DATE,Invoices.DueDate)<30)-SUM Invoices.PaymentTotalAmount WHERE (Invoices.Status='Send' AND Invoices.InvoiceForAgent=ThisInvoices.InvoiceForAgent AND DAY_DIFFERENCE(CURRENT_DATE,Invoices.DueDate)<30)
You could then have the formatting on the non persisten BO attribute.
Using the FOR EACH statement you can create as many non persistent BO's as you like - as long as you don't move out of the process that creates them - they will be available for as long as you need them. Then you can report on the Non PBO rather than the actual BO