[SmallToBig(<sum("data.Field")>)]

解决方案 »

  1.   

    to sundayzhao:
    直接在fastreport里这么写?
    [SmallToBig(<sum(frxDBDataset1."tax_total")>)]
    根本不行呀
      

  2.   

    我之前的做法是:在fastreport中放一个文本,然后在程序中计算出总金额,转换成大写,再写到报表的这个文本中。没有在fastreport中汇总和转换成大写。
      

  3.   

    to zbdzjx:
    因为我这个是fastreport中的分页小计,金额是动态的,在程序里没法获取,只能在fastreport里进行动态转换。
      

  4.   

    那就只能将程序中的转换函数代码放到fastreport中了,而且不一定能完全执行,要试试。
      

  5.   

    to zbdzjx:
    那就只能将程序中的转换函数代码放到fastreport中了,请问转换函数如何放到fastreport中呢?谢谢
      

  6.   

    一、unit上定义、实现函数
    function CN_rmb(Num:string):WideString;//人民币大写转换function CN_rmb(Num: string): WideString;
    begin
        //人民币大写转换实现
    end;二、datamodule事件onCreate添加函数
    procedure TDM.DataModuleCreate(Sender: TObject);  //需在UserFunction处定义函数
    begin
      frxReport.AddFunction('function CN_rmb(Num:string):WideString;','Myfunction1','人民币中文大写转换'); //Myfunction1为名字也可其它
    end;三、frxReport事件onUserFunction定义函数
    function TDM.frxReportUserFunction(const MethodName: string;
      var Params: Variant): Variant;
    begin
      if UpperCase(MethodName) = UpperCase('cn_rmb') then
      Result:=CN_rmb(Params[0]);
    end;四、报表中使用:[cn_rmb(<frxDBDataset1."tax_total">)]
      

  7.   

    to gxgyj:
    function SmallToBig(NN:Real):AnsiString;//人民币大小写转换
    你好,按照你的办法,但是在第四步:[SmallToBig(<frxDBDataset1."tax_total">)]
    但是运行后,没有任何反映呀。memo显示是空的