FastReport中如何使用自定义函数

2025-12-19 11:00:58

1、例子:将金额转换为大写(备注:函数为网上下载)

FastReport 版本:4.13.1

FastReport中如何使用自定义函数

2、在FastReport代码页中编写金额转换大写函数

将下面虚线内的代码复制到代码页上方

 --------------------------------------------

//这里是函数

function MoneyToCharacter(Money:real):string; //数字转换为中文大写

var

    temp:string;

    resu:string;

    i,j:integer;

    len:integer;

    Num:array[0..9] of string;

    A:array[0..13] of string;

begin

     Num[0]:='零';

     num[1]:='壹';

     Num[2]:='贰';

     num[3]:='叁';

     Num[4]:='肆';

     num[5]:='伍';

     Num[6]:='陆';

     num[7]:='柒';

     Num[8]:='捌';

     num[9]:='玖';

     a[0]:='分';

     a[1]:='角';

     a[2]:='元';

     a[3]:='拾';

     a[4]:='佰';

     a[5]:='仟';

     a[6]:='万';

     a[7]:='拾';

     a[8]:='佰';

     a[9]:='仟';

     a[10]:='亿';

     a[11]:='拾';

     a[12]:='佰';

     a[13]:='仟';

     temp:=trim(inttostr(round(money*100)));

     len:=length(temp);

     resu:='';

     if (len>13) or (len=0) then

       begin

         exit;

       end;

     for i:=1 to len do

     begin

         j:=strtoint(copy(temp,i,1));

         resu:=resu+num[j]+a[len-i];

     end;

     result:=resu;

end;

  --------------------------------------------

3、在FastReport设计标签页中添加memo控件,这里的memo控件名为:memo28

然后在FastReport设计标签页选择memo28然后双击onbeforeprint事件,然后在代码页中的光标位置用代码引用自己编写的函数。引用方式如下:

---------------------------- 

    memo28.text:=MoneyToCharacter(SUM(<ADOQuery1."je">,MasterData1)) ; 

-----------------------------

FastReport中如何使用自定义函数

FastReport中如何使用自定义函数

4、注意事项:在设计报表页面中双击memo28的弹出窗口中引用公式是没有效果的,需要在code页面中用代码引用。

FastReport中如何使用自定义函数

5、 

Code页的全部代码如下:

----------------------------------------

//这里是函数

function MoneyToCharacter(Money:real):string; //数字转换为中文大写

var

    temp:string;

    resu:string;

    i,j:integer;

    len:integer;

    Num:array[0..9] of string;

    A:array[0..13] of string;

begin

     Num[0]:='零';

     num[1]:='壹';

     Num[2]:='贰';

     num[3]:='叁';

     Num[4]:='肆';

     num[5]:='伍';

     Num[6]:='陆';

     num[7]:='柒';

     Num[8]:='捌';

     num[9]:='玖';

     a[0]:='分';

     a[1]:='角';

     a[2]:='元';

     a[3]:='拾';

     a[4]:='佰';

     a[5]:='仟';

     a[6]:='万';

     a[7]:='拾';

     a[8]:='佰';

     a[9]:='仟';

     a[10]:='亿';

     a[11]:='拾';

     a[12]:='佰';

     a[13]:='仟';

     temp:=trim(inttostr(round(money*100)));

     len:=length(temp);

     resu:='';

     if (len>13) or (len=0) then

       begin

         exit;

       end;

     for i:=1 to len do

     begin

         j:=strtoint(copy(temp,i,1));

         resu:=resu+num[j]+a[len-i];

     end;

     result:=resu;

end;

//这里是自定义函数的引用

procedure Memo28OnBeforePrint(Sender: TfrxComponent);

begin

    memo28.text:=MoneyToCharacter(SUM(<ADOQuery1."je">,MasterData1)) ; 

end;


begin

       

end.

 ----------------------------------------

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢