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

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)

时间: 2024-12-09 14:57:17

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

FastReport调用Delphi中的自定义函数

//定义一个函数: function SmallToMoney(akey: real): string; begin   //'1234500' end; //此处为fastreport加载自定义函数以便引用 procedure Tprint_from.FormCreate(Sender: TObject);begin  frxReport1.AddFunction('function SmallToMoney(akey: real): string;', 'Myfunction', '函数功能

人民币 大写转换

public class NumberData { /**-人民币 大写转换 * * @param num ----要转化的数字 * @return */ public static String makeUpperCaseSum(String numStr) { String isNeg = "";//正或者负 double num = Double.parseDouble(numStr); if (num < 0) { num *= -1; isNeg = "负&q

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

Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. 1.1存储过程的定义:存放在服务器上预先编译好的sql语句,可以给存储过程传递参数,也可以从存储过程返回值. 优点:提供了安全访问机制,比如可以将不同的存储过程的执行权限赋予权限不同的用户:改进了执行性能,因为存储过程是预编译的:减少了网络流量,因为在调用存储过程时,传递的字符串很短,没有很长的s

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

Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的存储过程,Insert,Update,Delete After触发器:记录被改变之后激活执行 Instead of触发器:记录被改变之前激活执行. DDL触发器:响应数据定义语言执行时触发执行的存储过程,一般用于执行数据库中的管理任务 审核和规范数据库的操作: 防止数据表结构被更改或删除 2. ht

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

Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数: 1 go 2 create function SumOrders(@职工号 varchar(20))--指定参数名,和返回类型 stuNo 3 returns int --指定返回类型 4 begin 5 declare @订单总数 int --学生人数sumstudent 6 select @

Delphi中String与PAnsiChar转换

来自:http://blog.sina.com.cn/s/blog_63970dc00101btq5.html ---------------------------------------------------------------------- 在application.messagebox()函数中的第一个参数要用到PAnsiChar. 所有的原生字符串类型String转PAnsiChar都需要经过AnsiString过渡 strAnsi:= PAnsiChar(AnsiString(

一个强大的人民币大写转换的正则表达式

static string ConvertToChinese(double dNum) { string tmps = dNum.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A"); string str = Regex.Replace(tmps, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|

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

如果类的一个成员函数的返回值是string类型,需要注意一个问题 其返回值可能是错误的 例如函数的实现如下 function GetString( s: string ): string;begin  Result := Result + s;end; 调用方式如下: procedure test();var  i: Integer;  s: string;begin    s := '';    s := GetString( IntToStr( 1 ) );    s := GetStrin

16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS

;以下是16位汇编 创建静态库,并调用静态库中的函数 ;多文件汇编格式 ;编译方法(此处用的是masm 5.0,如果是其他的编译器,有可能不能编译) ;第一种,编译方法 ;1.masm main.asm  生成.obj文件 ;2.masm lib.asm  生成.obj文件 ;3.link main.obj lib.obj 生成.exe文件 ;第二种,编译方法 ;1.masm main.asm  生成.obj文件 ;2.masm 16lib.asm  生成.obj文件 ;3.lib 16lib.