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

qsc27 2005-11-22 03:20:15
我有一个字段是汇总后的数字金额,现在需要转成大写的人民币显示。
我搞了一半天,觉得很复杂,哪位帮帮我,多谢了。
(我用的是cr 8.5,不支持自定义的函数)
...全文
683 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
  • 打赏
  • 举报
回复
麻烦各位帮我看看,多谢了!
内容概要:本文系统研究了在强弱电网适配场景下,构网型(GFM)与跟网型(GFL)逆变器并联系统的协同控制逻辑及其暂态动态行为,重点依托Simulink仿真平台构建混合并网系统模型,深入分析两类逆变器在不同电网强度条件下的交互特性、频率响应机制、稳定性表现及抗扰能力。研究涵盖分层控制架构设计、异构控制策略对比、频率扰动响应规律以及多工况暂态性能评估,探讨了GFM与GFL逆变器在功率支撑、电压频率调节和系统稳定性方面的互补性与协同机制,旨在提升高比例新能源接入背景下并网系统的适应性、鲁棒性与动态性能。; 适合人群:具备电力电子、新能源并网、自动控制或电力系统仿真等相关专业知识背景,从事新型电力系统控制、微电网运行、逆变器控制策略研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解构网型与跟网型逆变器在强弱电网中的协同工作机理与动态交互特性;②掌握异构逆变器并联系统的建模方法、协同控制策略设计与暂态仿真分析流程;③为高渗透率新能源系统的稳定性分析、控制优化及工程应用提供理论依据和技术参考。; 阅读建议:建议结合Simulink仿真实例进行动手实践,重点关注控制策略的实现细节、参数整定方法及多工况仿真结果的动态响应分析,同时可参考文中提及的相关博士论文复现案例以深化对理论机制的理解。

6,107

社区成员

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

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