FastReport调用Delphi中的人民币大写转换自定义函数

 

FastReport调用Delphi中的人民币大写转换自定义函数

function TJzpzEdit1.MoneyCn(mmje: Double): 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 mmje < 0 then

begin

dx := ‘负’;

mmje := -mmje;

end;

S := Format(‘%.0f’, [mmje * 100]);

Len := Length(S);

for i := 1 to Len do

dx := dx + Copy(s1, (Ord(S[i]) – Ord(’0′)) * 2 + 1, 2) + Copy(s2, (Len – i)

* 2 + 1, 2);

dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, ‘零仟’, ‘零’), ‘零佰’,

‘零’),

‘零拾’, ‘零’), ‘零角’, ‘零’), ‘零分’, ‘整’);

dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, ‘零零’, ‘零’), ‘零零’,

‘零’),

‘零亿’, ‘亿’), ‘零万’, ‘万’), ‘零元’, ‘元’);

if dx = ‘整’ then

Result := ‘零元整’

else

Result := StrTran(StrTran(dx, ‘亿万’, ‘亿零’), ‘零整’, ‘整’);

end;

//////////

procedure TJzpzEdit1.FormCreate(Sender: TObject);

begin

frxReport1.AddFunction(‘function MoneyCn(mmje: Double): String;’,'Myfunction’,'小写金额转大写的函数’);

end;

//////////

function TJzpzEdit1.frxReport1UserFunction(const MethodName: string;

var Params: Variant): Variant;

begin

if UpperCase(MethodName) = UpperCase(‘MoneyCn’) then

Result := MoneyCn(Params[0]);

end;

//////////

报表中调用方法

MoneyCn(50000000)

FastReport调用Delphi中的人民币大写转换自定义函数的更多相关文章

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

    1. 在 FormCreate 中向FastReprot添加函数 (fPrint)窗口 procedure TfPrint.FormCreate(Sender: TObject); frxReport ...

  2. python实现人民币大写转换

    问题描述: 银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序. 在中文大写方式中,0到10以及100.1000.10000被依次表示为: 零 壹 贰 ...

  3. Sqlserver中存储过程,触发器,自定义函数(一)

    Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...

  4. Sqlserver中存储过程,触发器,自定义函数

    Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...

  5. Sqlserver中存储过程,触发器,自定义函数(二)

    Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数 ...

  6. 【办公-Word-VB】人民币大写转换-带完整注释

    完整代码见:我的CSDN博客 -------------------- 应公司财务人员的请求,需在Word中做个:输入阿拉伯数字,自动转换成大写,并填充到Word控件中对应的亿.万.千控件格子的功能, ...

  7. Delphi中的进制转换

    二进制转换 function binToDec(Value: string): integer; var str: string; i: integer; begin Str := UpperCase ...

  8. java递归算法实现 数字人民币大写转换

    最近穷死了 ,没钱吃饭ing 写点钱给自己吧!public class Test{ public static String getChar(long a){ int b = (int)a; Map ...

  9. Delphi中返回类型为string的函数的一个陷阱(不是很懂)

    如果类的一个成员函数的返回值是string类型,需要注意一个问题 其返回值可能是错误的 例如函数的实现如下 function GetString( s: string ): string;begin  ...

随机推荐

  1. str_replace vs preg_replace

    转自:http://benchmarks.ro/2011/02/str_replace-vs-preg_replace/ 事实证明str_replace确实比preg_replace快. If you ...

  2. \n\t\r代表什么意思

    \t水平制表(跳到下一个tab位置)\r回车(将当前位置移到本行开头)\n换行(将当前位置移到下一行行开头)

  3. JMS基本概念和模型

    ------------------------------------------------------------------------------------------- JMS是什么 J ...

  4. django 文件上传

    模板文件: <form method='post' action='/script/upload/' enctype="multipart/form-data" accept ...

  5. jQuery源码-jQuery.fn.attr与jQuery.fn.prop

    jQuery.fn.attr.jQuery.fn.prop的区别 假设页面有下面这么个标签,$('#ddd').attr('nick').$('#ddd').prop('nick')分别会取得什么值? ...

  6. C#中的那些全局异常捕获

    1.WPF全局捕获异常     public partial class App : Application     {         public App()         {    // 在异 ...

  7. 软件测试-----Graph Coverage作业

    /******************************************************* * Finds and prints n prime integers * Jeff ...

  8. UNIX Time 时间戳 与 北京时间 相互转换

    typedef struct t_xtime { int year; int month; int day; int hour; int minute; int second; } _xtime ; ...

  9. 锋利的jQuery书中推荐的几款插件

    1.jQuery表单验证插件——Validation 2.jQuery表单插件——Form 3.模态窗口插件——SimpleModal 4.管理Cookie的插件——Cookie 5.jQuery U ...

  10. 学习ios(必看经典)牛人40天精通iOS开发的学习方法

    学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的学员到iOS开发高手的系统.专业的课程体系.以培养企业开发真正需要的人才为目标,每个知识点都用案例来讲 ...