报表中的大小金额的转换 请问怎样在报表中实现汇总金额和转换成大写金额?在线等待!!(我用的是FastReport) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 财务软件中总少不了大写的金额表示方式,如下为一个简单的小写金额转换为大写的函数,其思路简单(可以说烂吧,居然利用了位置来转换),但是它却几乎可以无限制的转换,只要你能读得出来和写得进去:function Tform1.SmallTOBig(small:real):string;var SmallMonth,BigMonth:string;wei1,qianwei1:string[2];wei,qianwei,dianweizhi,qian:integer;begin{------- 修改参数令值更精确 -------}{小数点后的位数,需要的话也可以改动该值}qianwei:=-2;{转换成货币形式,需要的话小数点后加多几个零}Smallmonth:=formatfloat('0.00',small);{---------------------------------}dianweizhi :=pos('.',Smallmonth);{小数点的位置}{循环小写货币的每一位,从小写的右边位置到左边}for qian:=length(Smallmonth) downto 1 dobegin{如果读到的不是小数点就继续} if qian<>dianweizhi thenbegin{位置上的数转换成大写}case strtoint(copy(Smallmonth,qian,1)) of1:wei1:='壹'; 2:wei1:='贰';3:wei1:='叁'; 4:wei1:='肆';5:wei1:='伍'; 6:wei1:='陆';7:wei1:='柒'; 8:wei1:='捌';9:wei1:='玖'; 0:wei1:='零';end;{判断大写位置,可以继续增大到real类型的最大值,可是谁有那么多钱}case qianwei of-3:qianwei1:='厘';-2:qianwei1:='分';-1:qianwei1:='角';0 :qianwei1:='元';1 :qianwei1:='拾';2 :qianwei1:='佰';3 :qianwei1:='千';4 :qianwei1:='万';5 :qianwei1:='拾';6 :qianwei1:='佰';7 :qianwei1:='千';8 :qianwei1:='亿';9 :qianwei1:='十';10:qianwei1:='佰';11:qianwei1:='千';end;inc(qianwei);BigMonth :=wei1+qianwei1+BigMonth;{组合成大写金额}end;end;SmallTOBig:=BigMonth;end;程序调用如下“edit1.text:=SmallTOBig(1234567890.1234);”他自动默认小数点后两位 delphi A3报表 用过wise Install的朋友请进:如何让其卸载时不卸载某些文件? I/O错误145 关于SQL SERVER函数在SELECT语句在DELPHI下怎样写. 在treeview怎样动态显示数据库里某一列的内容 请教VB程序打包问题(在线等!!!) 看不懂这段代码 delphi调用VC创建的dll问题(100) Delphi 6 中的Action事件代码应怎么写? 送分:有誰用过sql server7 桌面版? 有关打印设置的问题 急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急,在线,ONLINE
function Tform1.SmallTOBig(small:real):string;
var SmallMonth,BigMonth:string;
wei1,qianwei1:string[2];
wei,qianwei,dianweizhi,qian:integer;
begin
{------- 修改参数令值更精确 -------}
{小数点后的位数,需要的话也可以改动该值}
qianwei:=-2;{转换成货币形式,需要的话小数点后加多几个零}
Smallmonth:=formatfloat('0.00',small);
{---------------------------------}dianweizhi :=pos('.',Smallmonth);{小数点的位置}{循环小写货币的每一位,从小写的右边位置到左边}
for qian:=length(Smallmonth) downto 1 do
begin
{如果读到的不是小数点就继续}
if qian<>dianweizhi then
begin{位置上的数转换成大写}
case strtoint(copy(Smallmonth,qian,1)) of1:wei1:='壹'; 2:wei1:='贰';
3:wei1:='叁'; 4:wei1:='肆';
5:wei1:='伍'; 6:wei1:='陆';
7:wei1:='柒'; 8:wei1:='捌';
9:wei1:='玖'; 0:wei1:='零';
end;{判断大写位置,可以继续增大到real类型的最大值,可是谁有那么多钱}
case qianwei of
-3:qianwei1:='厘';
-2:qianwei1:='分';
-1:qianwei1:='角';
0 :qianwei1:='元';
1 :qianwei1:='拾';
2 :qianwei1:='佰';
3 :qianwei1:='千';
4 :qianwei1:='万';
5 :qianwei1:='拾';
6 :qianwei1:='佰';
7 :qianwei1:='千';
8 :qianwei1:='亿';
9 :qianwei1:='十';
10:qianwei1:='佰';
11:qianwei1:='千';
end;inc(qianwei);
BigMonth :=wei1+qianwei1+BigMonth;{组合成大写金额}
end;end;SmallTOBig:=BigMonth;end;程序调用如下“edit1.text:=SmallTOBig(1234567890.1234);”他自动默认小数点后两位