请问crystal report里怎么实现人民币数字金额转成大写的金额?

qsc27 2005-11-22 03:20:15
我有一个字段是汇总后的数字金额,现在需要转成大写的人民币显示。
我搞了一半天,觉得很复杂,哪位帮帮我,多谢了。
(我用的是cr 8.5,不支持自定义的函数)
...全文
596 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpqian 2005-12-15
  • 打赏
  • 举报
回复
Local StringVar str := "";
Local StringVar jg := "";
Local NumberVar strLen :=Length (Join (Split (ToText ({1.je}), ','), ""));
Local NumberVar i;
For i := 1 To strLen Do
(
Local StringVar str:= Mid (Join (Split (ToText ({1.je}), ','), ""),i , 1);

select str
case '1':
Local StringVar jg:=jg+ '壹'
case '2':
Local StringVar jg:=jg+ '贰'
case '3':
Local StringVar jg:=jg+ '叁'
case '4':
Local StringVar jg:=jg+ '肆'
case '5':
Local StringVar jg:=jg+ '伍'
case '6':
Local StringVar jg:=jg+ '陆'
case '7':
Local StringVar jg:=jg+ '柒'
case '8':
Local StringVar jg:=jg+ '捌'
case '9':
Local StringVar jg:=jg+ '玖'
case '0':
Local StringVar jg:=jg+ '零'
case '.':
Local StringVar jg:=jg+ '点';
);
jg
qsc27 2005-12-13
  • 打赏
  • 举报
回复
谢谢zpqian(),能贴出来学习一下么。
zpqian 2005-12-12
  • 打赏
  • 举报
回复
请问作者qsc27,已经解决问题了吗?
如果还没有解决,请留言
我会把代码粘出来。

我已在crystal report 8.5上实现数字金额转成大写的人民币显示。
没有采用自定义的函数。
只用了一个formula.
GRWriter 2005-12-06
  • 打赏
  • 举报
回复
试试 Grid++Report, 有专门的例子说明此问题。主页:http://www.rubylong.cn
05108807619 2005-11-30
  • 打赏
  • 举报
回复
在我的问题中,还有一位朋友写了一个公式,你看看能否做:

http://community.csdn.net/Expert/TopicView.asp?id=4421749
qsc27 2005-11-30
  • 打赏
  • 举报
回复
谢谢爱小飞。
可以借鉴一下。
qsc27 2005-11-29
  • 打赏
  • 举报
回复
还有这种事?
05108807619 2005-11-29
  • 打赏
  • 举报
回复
刚才又错了,看这个Basic版的吧!


dim Toand as number
dim FirstPart as string
dim secondpart as string
dim thirdpart as string

Toand = InStr(Towords({Sheet1_.金额}),"点")

if toand=0 then
FirstPart = ToWords(Truncate({Sheet1_.金额})) + "元整"
secondpart=""
thirdpart=""

else
if right(totext({Sheet1_.金额}),1)="0" then
FirstPart = Left(ToWords(Truncate({Sheet1_.金额})), ToAnd-1) + "元"
SecondPart = left(ToWords(({Sheet1_.金额}-Truncate({Sheet1_.金额})) * 10) ,1)+ "角"
thirdPart=""
else
FirstPart = Left(ToWords(Truncate({Sheet1_.金额})), ToAnd-1) + "元"
SecondPart = left(ToWords(({Sheet1_.金额}-Truncate({Sheet1_.金额})) * 10) ,1)+ "角"
thirdPart=right(ToWords(({Sheet1_.金额}-Truncate({Sheet1_.金额})) * 100) ,1)+ "分"
end if
end if

formula=firstpart+secondpart+thirdpart
05108807619 2005-11-29
  • 打赏
  • 举报
回复
又改了,这样能完整显示中文大写了

//Converting money to words.
NumberVar ToAnd ;
StringVar FirstPart ;
StringVar SecondPart ;
StringVar ThirdPart ;
ToAnd := InStr(Towords({Sheet1_.金额}),'点');
//Locate And position.
if Toand =0 then
(
FirstPart := ToWords(Truncate({Sheet1_.金额})) + '元';
SecondPart :="整";
UpperCase (FirstPart+SecondPart);
)
else
(
FirstPart := Left(ToWords(Truncate({Sheet1_.金额})), ToAnd-1) + '元';
SecondPart := left(ToWords(({Sheet1_.金额}-Truncate({Sheet1_.金额})) * 10) ,1)+ '角';
ThirdPart := right(ToWords(({Sheet1_.金额}-Truncate({Sheet1_.金额})) * 100) ,1)+ '分';
UpperCase (FirstPart+SecondPart+ThirdPart);
)
05108807619 2005-11-29
  • 打赏
  • 举报
回复
我刚才利用公式字段写成了一段代码,可以凑合成人民币大写的功能

//Converting money to words.
NumberVar ToAnd ;
StringVar FirstPart ;
StringVar SecondPart ;
ToAnd := InStr(Towords({Sheet1_.金额}),'点');
//Locate And position.
if Toand =0 then
(
FirstPart := ToWords(Truncate({Sheet1_.金额})) + '元';
SecondPart :="整";
UpperCase (FirstPart+SecondPart);
)
else
(
FirstPart := Left(ToWords(Truncate({Sheet1_.金额})), ToAnd-1) + '元';
SecondPart := ToWords(({Sheet1_.金额}-Truncate({Sheet1_.金额})) * 100) + '分';
//ToAnd := InStr(SecondPart, '点');
//secondPart := Left(SecondPart, ToAnd-1) + ' 分 ';
UpperCase (FirstPart+SecondPart);
)

其中{Sheet1_.金额}是报表中需要显示的字段名.

在我的CR9.0中,显示的结果如下:
4,521.11 肆仟伍佰贰拾壹元拾壹分
135.58 壹佰叁拾伍元伍拾捌分
15,136.25 壹万伍仟壹佰叁拾陆元贰拾伍分
124.23 壹佰贰拾肆元贰拾叁分
125.00 壹佰贰拾伍元整

如果需要将分显示成角分的,那么请在上述代码中作更多的修改.

至于哪位大侠知道,那么能否帮我解决我的问题?
http://community.csdn.net/Expert/TopicView.asp?id=4421749
qsc27 2005-11-28
  • 打赏
  • 举报
回复
towords 函数只能转成"一、二、三..."
我希望转成"壹、贰、叁..."
05108807619 2005-11-28
  • 打赏
  • 举报
回复
奇怪,我的Towords就是可以转成壹,贰什么的
05108807619 2005-11-27
  • 打赏
  • 举报
回复
有这个功能,在中文版中,Towords函数就能转成中文大写。
反到是我想寻找的转英文大写功能就没有了!
macrondsc 2005-11-23
  • 打赏
  • 举报
回复
没有这个功能,只能自己转换
qsc27 2005-11-22
  • 打赏
  • 举报
回复
麻烦各位帮我看看,多谢了!

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧