• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

FastReport调用Delphi中的自定义函数(人民币大写金额)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
人民币大写金额转换函数
function MoneyToCn(ANumberic: Real): string;
const
  s1: string 
= '零壹贰叁肆伍陆柒捌玖';
  s2: string 
= '分角元拾佰仟万拾佰仟亿拾佰仟万';

function StrTran(const S, s1, s2: string): string;
begin
  Result :
= StringReplace(S, s1, s2, [rfReplaceAll]);
end;
var
  S, dx: string;
  i, Len: Integer;

begin
  
if ANumberic < 0 then
  
begin
    dx :
= '';
    ANumberic :
= -ANumberic;
  
end;

  S :
= Format('%.0f', [ANumberic * 100]);
  Len :
= Length(S);
  
for i := 1 to Len do
  dx :
= dx + Copy(s1, (Ord(S[i]) - Ord('0')) * 2 + 12+ Copy(s2, (Len - i)* 2 + 12);

  dx :
= StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟'''), '零佰',''),'零拾'''), '零角'''), '零分'
    
'');
  dx :
= StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零'''), '零零',''),'零亿''亿'), '零万'''), '零元'
    
'');
  
if dx = '' then
    Result :
= '零元整'
  
else
    Result :
= StrTran(StrTran(dx, '亿万''亿零'), '零整''');
end;

在Create中向FastReprot添加函数
procedure Create(Sender: TObject);
begin
  frxReport1.AddFunction(
'function MoneyToCn(ANumberic: Real): String;','Myfunction','人民币大写金额转换函数');
end;

在FastReport用户函数事件中添加
function frxReport1UserFunction(const MethodName: string; var Params: Variant): Variant;
begin
  
if UpperCase(MethodName) = UpperCase('MoneyToCn'then
  Result :
= MoneyToCn(Params[0]);
end;

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab中利用null函数解齐次线性方程组发布时间:2022-07-18
下一篇:
MATLAB广度优先搜索BFS、深度优先搜索DFS发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap