转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
在PB打印中实现人民币大写         

在PB打印中实现人民币大写

作者:闵涛 文章来源:闵涛的学习笔记 点击数:854 更新时间:2009/4/24 21:43:04
P>根据我国的财务票据的当前特点,仍需要财务票据中人民币有大写一项。本人原来在利用FOXPROW开发系统时,曾经利用FOXPROW编写过人民币大写的函数。现在本人又利用PB编写了一个人民币大写的函数。您只要将您数据窗口中的人民币小写项数据值取出,利用我的这个函数将其转换成大写方式,然后再赋到数据窗口的某项中即可。

  函数名:自定义函数:no_to_char_sell()

  函数内容:

string hz[15]
string money[2]
//hz[16]=零
if not rmb then
hz[1]=一
hz[2]=二
hz[3]=三
hz[4]=四
hz[5]=五
hz[6]=六
hz[7]=七
hz[8]=八
hz[9]=九
hz[10]=十
hz[11]=百
hz[12]=千
hz[13]=万
hz[14]=亿
hz[15]=点
else
hz[1]=壹
hz[2]=贰
hz[3]=叁
hz[4]=肆
hz[5]=伍
hz[6]=陆
hz[7]=柒
hz[8]=捌
hz[9]=玖
hz[10]=拾
hz[11]=佰
hz[12]=仟
hz[13]=万
hz[14]=亿
hz[15]=元 
money[1]=角
money[2]=分
end if


string val, num2
val=num
do while left(val,1) = 0
 val = right(val,len(val)-1)
loop

if pos(val,.) $#@60; $#@62; 0 then
num = left(val,pos(val,.) - 1)
num2 =mid(val, pos(val,.) + 1)
end if

string str=,str_tmp
int i
for i= 1 to len(num)
 str_tmp=mid(num,i,1)
choose case str_tmp
 case 1
 str=str+hz[1]
 case 2 
 str=str+hz[2]
 case 3
 str=str+hz[3]
 case 4
 str=str+hz[4]
 case 5
 str=str+hz[5]
 case 6
 str=str+hz[6]
 case 7
 str=str+hz[7]
 case 8
 str=str+hz[8]
 case 9
 str=str+hz[9]
 case 0
 str=str+
end choose
 if str_tmp=0 then 
 if right(str,2)=零 or str= or i=len(num) then 
 str=str
 else
 str=str+零
 end if
 else
 choose case len(num) -i +1
 case 1
 str=str
 case 2,6,10
 str=str +hz[10]
 case 3,7,11
 str=str +hz[11] 
 case 4,8,12
 str=str +hz[12] //千
 case 5,13
 str=str +hz[13] //万
 case 9
 str=str +亿
 end choose
end if

if len(num) -i +1 = 9 and mid
(num ,len(num) - 8,1) =0 then 
 if right(str,2)=零 then str = left(str,len(str) - 2)
 str=str +亿
end if
if len(num) -i +1 = 5 and mid
(num ,len(num) - 4 ,1) =0 then 
 if right(str,2)=零 then str = left(str,len(str) - 2)
 str=str +万
end if
next
 
if right(str,2)=零 then
 str = left(str,len(str) - 2)
end if
if left(str,4) =一十 or left(str,4) 
=壹拾 then str = right(str,len(str)   2)
int lpos
lpos = pos(str,亿万)
if lpos $#@60; $#@62; 0 then
 str =left(str , lpos +1) +mid(str,lpos +4)
end if


if pos(val,.) =0 then 
 if rmb then 
 return str+hz[15]
 else
 return str
 end if
end if

str = str + hz[15] //点or 元

int il_i
il_i = len(num2)

if rmb and il_I $#@62; 2 then
il_i = 2
end if

for i= 1 to il_i
 str_tmp=mid(num2,i,1)
choose case str_tmp
 case 1
 str=str+hz[1]
 case 2 
 str=str+hz[2]
 case 3
 str=str+hz[3]
 case 4
 str=str+hz[4]
 case 5
 str=str+hz[5]
 case 6
 str=str+hz[6]
 case 7
 str=str+hz[7]
 case 8
 str=str+hz[8]
 case 9
 str=str+hz[9]
 case 0
 str=str+零
end choose
 if rmb and right(str,2) $#@60; $#@62; 
零 then str=str+money[i]
next
do while right(str,2) = 零
str = left(str,len(str) - 2)
loop

return str
  以上程序本人考虑到数字的各种组合,基本可以对任何数据进行转换成人民币大写。本程序供大家参考,请大家指教。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台