创建转换为大写金额的存储过程

/********************************************************
创建时间:20110112
修改时间:
功能:小写金额转换成大写
参数:n_LowerMoney   小写金额
                    v_TransType   种类   --   1:   directly   translate,   0:   read   it   in   words  
输出:大写金额
********************************************************/
ALTER   PROCEDURE   [dbo].[L2U]  
(
@n_LowerMoney   numeric(15,2),
@v_TransType   int,
@RET   VARCHAR(200)   output
)
  AS  
   
Declare   @v_LowerStr   VARCHAR(200)   --   小写金额  
Declare   @v_UpperPart   VARCHAR(200)  
Declare   @v_UpperStr   VARCHAR(200)   --   大写金额
Declare   @i_I   int

set   nocount   on

select   @v_LowerStr   =   LTRIM(RTRIM(STR(@n_LowerMoney,20,2)))   --四舍五入为指定的精度并删除数据左右空格

select   @i_I   =   1
select   @v_UpperStr   =   ' '

while   (   @i_I   <=   len(@v_LowerStr))
begin
            select   @v_UpperPart   =   case   substring(@v_LowerStr,len(@v_LowerStr)   -   @i_I   +   1,1)
                                                        WHEN     '. '   THEN     '元 '
                                                        WHEN     '0 '   THEN     '零 '
                                                        WHEN     '1 '   THEN     '壹 '
                                                        WHEN     '2 '   THEN     '贰 '
                                                        WHEN     '3 '   THEN     '叁 '
                                                        WHEN     '4 '   THEN     '肆 '
                                                        WHEN     '5 '   THEN     '伍 '
                                                        WHEN     '6 '   THEN     '陆 '
                                                        WHEN     '7 '   THEN     '柒 '
                                                        WHEN     '8 '   THEN     '捌 '
                                                        WHEN     '9 '   THEN     '玖 '
                                                        END
                                                    +  
                                                        case   @i_I
                                                        WHEN     1     THEN     '分 '
                                                        WHEN     2     THEN     '角 '
                                                        WHEN     3     THEN     ' '
                                                        WHEN     4     THEN     ' '
                                                        WHEN     5     THEN     '拾 '
                                                        WHEN     6     THEN     '佰 '
                                                        WHEN     7     THEN     '仟 '
                                                        WHEN     8     THEN     '万 '
                                                        WHEN     9     THEN     '拾 '
                                                        WHEN     10     THEN     '佰 '
                                                        WHEN     11     THEN     '仟 '
                                                        WHEN     12     THEN     '亿 '
                                                        WHEN     13     THEN     '拾 '
                                                        WHEN     14     THEN     '佰 '
                                                        WHEN     15     THEN     '仟 '
                                                        WHEN     16     THEN     '万 '
                                                        ELSE   ' '
                                                        END
select   @v_UpperStr   =   @v_UpperPart   +   @v_UpperStr
select   @i_I   =   @i_I   +   1
end

--------print     '//v_UpperStr   = '+@v_UpperStr   + '// '

if   (   @v_TransType=0   )
begin
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零拾 ', '零 ')  
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零佰 ', '零 ')  
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零仟 ', '零 ')  
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零零零 ', '零 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零零 ', '零 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零角零分 ', '整 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零分 ', '整 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零角 ', '零 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零亿零万零元 ', '亿元 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '亿零万零元 ', '亿元 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零亿零万 ', '亿 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零万零元 ', '万元 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '万零元 ', '万元 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零亿 ', '亿 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零万 ', '万 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零元 ', '元 ')
select   @v_UpperStr   =   REPLACE(@v_UpperStr, '零零 ', '零 ')
end

--   对壹元以下的金额的处理  
if   (   substring(@v_UpperStr,1,1)= '元 '   )
begin
          select   @v_UpperStr   =   substring(@v_UpperStr,2,(len(@v_UpperStr)   -   1))
end

if   (substring(@v_UpperStr,1,1)=   '零 ')
begin
          select   @v_UpperStr   =   substring(@v_UpperStr,2,(len(@v_UpperStr)   -   1))
end

if   (substring(@v_UpperStr,1,1)= '角 ')
begin
          select   @v_UpperStr   =   substring(@v_UpperStr,2,(len(@v_UpperStr)   -   1))
end

if   (   substring(@v_UpperStr,1,1)= '分 ')
begin
          select   @v_UpperStr   =   substring(@v_UpperStr,2,(len(@v_UpperStr)   -   1))
end

if   (substring(@v_UpperStr,1,1)= '整 ')
begin
          select   @v_UpperStr   =   '零元整 '
end

select   @RET=@v_UpperStr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值