从新手的角度,描述fastreport自定义函数的使用
工具/原料
fastreport 版本:4.13.1
方法/步骤
1:例子:将金额转换为大写(备注:函数为网上下载)
fastreport 版本:4.13.1

2:1、在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:2、在fastreport设计标签页中添加memo控件,这里的memo控件名为:memo28
然后在fastreport设计标签页选择memo28然后双击onbeforeprint事件,然后在代码页中的光标位置用代码引用自己编写的函数。引用方式如下:
----------------------------
memo28.text:=moneytocharacter(sum(<adoquery1."je">,masterdata1)) ;
-----------------------------


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

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.
----------------------------------------
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。举报
希望本文【fastreport自定义变量】FastReport中如何使用自定义函数能帮到你。