zoukankan      html  css  js  c++  java
  • FastReport调用Delphi中的自定义函数(人民币大写金额)

    人民币大写金额转换函数
    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;
  • 相关阅读:
    各个版本中Notification对象创建的方法
    数据结构一:线性表
    安装eclipse中文汉化包后无法打开eclipse【转】
    在MFC里面使用自定义的OpenGL类进行绘图(基于VS2010)
    2016-2-25 我的博客开通了
    从C#到Swift原来这么简单,So Easy!
    CocoaPods安装及使用(包含重装步骤)
    Xcode键盘快捷键
    参考资料收集
    重温算法和数据结构:二分查找
  • 原文地址:https://www.cnblogs.com/sonicit/p/1213082.html
Copyright © 2011-2022 走看看