使用TfrReport.OnUserFunction 事件. 这里有一个简单的例子:
procedureTForm1.frReport1UserFunction(const Name: String;
p1, p2, p3: Variant; var val: Variant);
begin
if AnsiCompareText('SUMTOSTR', Name) = 0 then
val :=My_Convertion_Routine(frParser.Calc(p1));
end;
然后,你就可以在报表(任何表达式或脚本)的任何地方使用 SumToStr 函数了。
fastreport我是没用过,听起来就很复杂。楼主可以去下一款finereport,操作很简单,论坛里也有教程,而且它的demo里面有很多报表的样表,应该能帮到你。