人民币大写金额转换函数
FastReport调用Delphi中的自定义函数(人民币大写金额)function MoneyToCn(ANumberic: Real): string;
FastReport调用Delphi中的自定义函数(人民币大写金额)
const
FastReport调用Delphi中的自定义函数(人民币大写金额)  s1: string 
= '零壹贰叁肆伍陆柒捌玖';
FastReport调用Delphi中的自定义函数(人民币大写金额)  s2: string 
= '分角元拾佰仟万拾佰仟亿拾佰仟万';
FastReport调用Delphi中的自定义函数(人民币大写金额)
FastReport调用Delphi中的自定义函数(人民币大写金额)
function StrTran(const S, s1, s2: string): string;
FastReport调用Delphi中的自定义函数(人民币大写金额)
begin
FastReport调用Delphi中的自定义函数(人民币大写金额)  Result :
= StringReplace(S, s1, s2, [rfReplaceAll]);
FastReport调用Delphi中的自定义函数(人民币大写金额)
end;
FastReport调用Delphi中的自定义函数(人民币大写金额)
var
FastReport调用Delphi中的自定义函数(人民币大写金额)  S, dx: string;
FastReport调用Delphi中的自定义函数(人民币大写金额)  i, Len: Integer;
FastReport调用Delphi中的自定义函数(人民币大写金额)
FastReport调用Delphi中的自定义函数(人民币大写金额)
begin
FastReport调用Delphi中的自定义函数(人民币大写金额)  
if ANumberic < 0 then
FastReport调用Delphi中的自定义函数(人民币大写金额)  
begin
FastReport调用Delphi中的自定义函数(人民币大写金额)    dx :
= '';
FastReport调用Delphi中的自定义函数(人民币大写金额)    ANumberic :
= -ANumberic;
FastReport调用Delphi中的自定义函数(人民币大写金额)  
end;
FastReport调用Delphi中的自定义函数(人民币大写金额)
FastReport调用Delphi中的自定义函数(人民币大写金额)  S :
= Format('%.0f', [ANumberic * 100]);
FastReport调用Delphi中的自定义函数(人民币大写金额)  Len :
= Length(S);
FastReport调用Delphi中的自定义函数(人民币大写金额)  
for i := 1 to Len do
FastReport调用Delphi中的自定义函数(人民币大写金额)  dx :
= dx + Copy(s1, (Ord(S[i]) - Ord('0')) * 2 + 12+ Copy(s2, (Len - i)* 2 + 12);
FastReport调用Delphi中的自定义函数(人民币大写金额)
FastReport调用Delphi中的自定义函数(人民币大写金额)  dx :
= StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟'''), '零佰',''),'零拾'''), '零角'''), '零分'
FastReport调用Delphi中的自定义函数(人民币大写金额)    
'');
FastReport调用Delphi中的自定义函数(人民币大写金额)  dx :
= StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零'''), '零零',''),'零亿''亿'), '零万'''), '零元'
FastReport调用Delphi中的自定义函数(人民币大写金额)    
'');
FastReport调用Delphi中的自定义函数(人民币大写金额)  
if dx = '' then
FastReport调用Delphi中的自定义函数(人民币大写金额)    Result :
= '零元整'
FastReport调用Delphi中的自定义函数(人民币大写金额)  
else
FastReport调用Delphi中的自定义函数(人民币大写金额)    Result :
= StrTran(StrTran(dx, '亿万''亿零'), '零整''');
FastReport调用Delphi中的自定义函数(人民币大写金额)
end;

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

在FastReport用户函数事件中添加
FastReport调用Delphi中的自定义函数(人民币大写金额)function frxReport1UserFunction(const MethodName: string; var Params: Variant): Variant;
FastReport调用Delphi中的自定义函数(人民币大写金额)
begin
FastReport调用Delphi中的自定义函数(人民币大写金额)  
if UpperCase(MethodName) = UpperCase('MoneyToCn'then
FastReport调用Delphi中的自定义函数(人民币大写金额)  Result :
= MoneyToCn(Params[0]);
FastReport调用Delphi中的自定义函数(人民币大写金额)
end;

相关文章: