It's overkill to create a function just to set a variable value. It can be done with an expression
_VFP.SetVar("report_end", .T.)
>Solution I use goes like this;
>
>1. Add report variable called 'report_end'
>2. Add report expression to summary band of your report calling
>folowing function ;
>
>
>function end_of_report
> report_end=.t.
> return ''
>return .t.
>
>
>
>So report field placed in summary band should have this (call) as expression ;
>
>
>end_of_report()
>
>
>
>Since function returns '', nothing will show on the face of the report,
>while desired variable will be set to .t. after last record.
>
>3 Put invoice total in page footer and print only when that variable is .t.
>
>clause printwhen :
>report_end=.t.
>
--sb--