分组打印,用SISTEXT算出合计金额。怎么样转换成人民币大写。如果用函数写在什么地方,怎么调用?我搜索了以前的贴子,也没有明确答案。请朋友们帮忙。
解决方案 »
- 类似于软件搜索的程序用什么通信比较好
- 在线急等,一个关于查询的简单问题,请各位给予解决,谢谢了!!!
- 用OLE创建EXCEL很慢
- 散分:简单的sql语句时间比较问题
- QReport的小问题!!!
- 菜鸟遇到一个问题,高分求教!!
- 请问给位大侠帮个忙!!!(多分!想要多少分!就多少分呀)
- 谁能给我一个能用的D6 Enterprise 的下载连接
- 使用shellexecute调用arj32时,arj32进程执行完后如何才能释放
- RichView如何让Gif动起来?
- 小女子求大家了,如何用Dephi写刻录光盘的程序,在线等,,,,
- ■■■怎样才能在屏幕上以透明的异型窗体的形式实现OSD(屏幕上的提示,背景是透明的)显示?(就是说用窗体模拟OSD显示)
这个是我很早很早以前写的,你参考一下,至于在哪里调用,没想到好的法子你试试能不能把它改在fastreport里面。
function small2big(sourcemoney:currency):string;
var
strsourcemoney,strobjectmoney:string;
//strsourcemoney 保存未转换的小写字符串
//strobjectmoney 保存已转换的大写字符串
thiswei,thispos:string[2];
//thiswei为当前位的大写,thispos为当前位的人民币单位
iwei,pospoint:integer;
//iwei为当前位置,pospoint为小数点的位置
begin
strsourcemoney:=formatfloat('0.00',sourcemoney);
//将浮点数转换成指定格式字符串
if length(strsourcemoney)>15 then //超过千亿元
begin
showmessage('please input correct number');
exit;
end;
pospoint:=pos('.',strsourcemoney);//小数点位置
for iwei:=length(strsourcemoney) downto 1 do
begin case pospoint-iwei of
-3: thispos:='厘' ;
-2: thispos:='分';
-1: thispos:='角';
1: thispos:='元';
2: thispos:='拾';
3: thispos:='佰';
4:thispos:='千';
5: thispos:='万';
6: thispos:='拾';
7:thispos:='佰';
8: thispos:='千';
9: thispos:='亿';
10: thispos:='十';
11: thispos:='佰';
12: thispos:='千';
end;
case strsourcemoney[iwei] of
'.': continue ;
'1': thiswei:='壹' ;
'2': thiswei:='贰';
'3': thiswei:='叁';
'4': thiswei:='肆';
'5': thiswei:='伍';
'6': thiswei:='陆';
'7': thiswei:='柒';
'8': thiswei:='捌';
'9': thiswei:='玖';
'0':
begin
thiswei:='';
if iwei<length(strsourcemoney) then
if (strsourcemoney[iwei+1]<>'0') and (strsourcemoney[iwei+1]<>'.') then
thiswei:='零';
if (thispos<>'亿') and (thispos<>'万') and (thispos<>'元') then
thispos:='' //单位是十,百、仟 的,为0,则不显示单位。
else
thiswei:='';//若单位为亿、万、元,则前一位0,不显示'零'
end;
end;
strobjectmoney:=thiswei+thispos+strobjectmoney;//组合成大写金额
end;
strobjectmoney:=ansireplacetext(strobjectmoney,'亿万','亿'); //去掉'亿万'中的'万'
if ansicontainsstr(strobjectmoney,'分') then
small2big:=strobjectmoney
else
begin
strobjectmoney:=strobjectmoney+'整';
small2big:=strobjectmoney;
end;
end;
不需要在fastreport中加定义函数,而在程序中加,
然后在打印报表之前给报表中的字段赋值,这样实现比较好一些,
不然需要做大小转换的报表都需在要报表中加自定义函数,如果函数有误,要修改函数,其不是很麻烦!