中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > Informix
INFORMIX 4GL写的转换成大写金额字串的函数
作者:未知 时间:2005-09-13 19:04 出处:ChinaUnix.net 责编:chinaitpower
              摘要:INFORMIX 4GL写的转换成大写金额字串的函数

[code:1:6fff3a5b27]#######################################
## 这个函数输入金额,返回大写汉字金额 ##
## bellchiu AT NanJing CITIC    :em13:       ##
#######################################
FUNCTION F_CONV_GB(pf_money)
DEFINE pf_money DECIMAL(14,2)

DEFINE ll_money INTEGER
DEFINE i  SMALLINT
DEFINE li_bit SMALLINT
DEFINE li_length SMALLINT
DEFINE li_len    SMALLINT
DEFINE ls_money  CHAR(20)
DEFINE ls_result CHAR(64)

DEFINE ls_arr_num   ARRAY [10] OF CHAR(2)
DEFINE ls_arr_unit  ARRAY [14] OF CHAR(2)
DEFINE ls_arr_unit0 ARRAY [14] OF CHAR(2)

LET ls_arr_num[1] ='壹'
LET ls_arr_num[2] ='贰'
LET ls_arr_num[3] ='叁'
LET ls_arr_num[4] ='肆'
LET ls_arr_num[5] ='伍'
LET ls_arr_num[6] ='陆'
LET ls_arr_num[7] ='柒'
LET ls_arr_num[8] ='捌'
LET ls_arr_num[9] ='玖'
LET ls_arr_num[10]='零'

LET  ls_arr_unit[ 1] = '分'
LET  ls_arr_unit[ 2] = '角'
LET  ls_arr_unit[ 3] = '元'
LET  ls_arr_unit[ 4] = '拾'
LET  ls_arr_unit[ 5] = '佰'
LET  ls_arr_unit[ 6] = '仟'
LET  ls_arr_unit[ 7] = '万'
LET  ls_arr_unit[ 8] = '拾'
LET  ls_arr_unit[ 9] = '佰'
LET  ls_arr_unit[10] = '仟'
LET  ls_arr_unit[11] = '亿'
LET  ls_arr_unit[12] = '拾'
LET  ls_arr_unit[13] = '佰'
LET  ls_arr_unit[14] = '仟'

LET  ls_arr_unit0[ 1] = '整'
LET  ls_arr_unit0[ 2] = '零'
LET  ls_arr_unit0[ 3] = '元'
LET  ls_arr_unit0[ 4] = '零'
LET  ls_arr_unit0[ 5] = '零'
LET  ls_arr_unit0[ 6] = '零'
LET  ls_arr_unit0[ 7] = '万'
LET  ls_arr_unit0[ 8] = '零'
LET  ls_arr_unit0[ 9] = '零'
LET  ls_arr_unit0[10] = '零'
LET  ls_arr_unit0[11] = '亿'
LET  ls_arr_unit0[12] = '零'
LET  ls_arr_unit0[13] = '零'
LET  ls_arr_unit0[14] = '零'

IF  pf_money=0 THEN
RETURN '零元整'
END IF
IF pf_money<0 THEN
LET pf_money=0 - pf_money
LET ls_result='负 '
ELSE 
LET ls_result=''
END IF
IF pf_money>999999999999.99 THEN
RETURN ls_result='数值超出范围'
END IF

LET ls_money=pf_money*100 USING "<<<<<<<<<<<<<<"
LET li_length=length(ls_money CLIPPED)

for i=1 to li_length

LET li_bit=ls_money[i]

if li_bit=0 then 
LET li_len=length(ls_result CLIPPED)
  if ls_result[li_len - 1, li_len]<>'零' then 
  LET ls_result = ls_result CLIPPED, ls_arr_unit0[li_length - i + 1]
  else
  LET ls_result = ls_result[1, li_len - 2],
 ls_arr_unit0[li_length - i + 1]
  end if 
  else
  LET ls_result = ls_result CLIPPED, ls_arr_num[li_bit], 
ls_arr_unit [li_length -i + 1]
end if 
END FOR

return ls_result CLIPPED

END FUNCTION[/code:1:6fff3a5b27]

[size=9:6fff3a5b27]****帮你加上code,格式就好看了! Admirer[/size:6fff3a5b27]

 bellchiu 回复于:2004-01-30 20:32:04
不知道为什么缩进都没有了 ! 大家凑合着看. 
其中:
DEFINE ls_arr_unit0 ARRAY [14] OF CHAR(2) 

数组的用法很高效, 很特别.

 czw1413_cn 回复于:2004-01-31 14:24:08
不错~~~~~~~~~~

 dintan 回复于:2004-02-01 13:58:17
如果能寫個英文最好不過了!

 mxf6666 回复于:2004-02-02 08:24:51
不错!

 john_student 回复于:2004-02-03 15:58:23
设计方法新颖。

 wjj9912130 回复于:2004-02-05 08:30:13
寫得不錯!
頂!

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有