亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5325 | 回復(fù): 9
打印 上一主題 下一主題

INFORMIX 4GL寫的轉(zhuǎn)換成大寫金額字串的函數(shù) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2004-01-30 20:28 |只看該作者 |倒序?yàn)g覽
  1. #######################################
  2. ## 這個(gè)函數(shù)輸入金額,返回大寫漢字金額 ##
  3. ## bellchiu AT NanJing CITIC    :em13:       ##
  4. #######################################
  5. FUNCTION F_CONV_GB(pf_money)
  6. DEFINE pf_money DECIMAL(14,2)

  7. DEFINE ll_money        INTEGER
  8. DEFINE i                 SMALLINT
  9. DEFINE li_bit        SMALLINT
  10. DEFINE li_length SMALLINT
  11. DEFINE li_len    SMALLINT
  12. DEFINE ls_money  CHAR(20)
  13. DEFINE ls_result CHAR(64)

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

  17. LET ls_arr_num[1] ='壹'
  18. LET ls_arr_num[2] ='貳'
  19. LET ls_arr_num[3] ='叁'
  20. LET ls_arr_num[4] ='肆'
  21. LET ls_arr_num[5] ='伍'
  22. LET ls_arr_num[6] ='陸'
  23. LET ls_arr_num[7] ='柒'
  24. LET ls_arr_num[8] ='捌'
  25. LET ls_arr_num[9] ='玖'
  26. LET ls_arr_num[10]='零'

  27. LET  ls_arr_unit[ 1] = '分'
  28. LET  ls_arr_unit[ 2] = '角'
  29. LET  ls_arr_unit[ 3] = '元'
  30. LET  ls_arr_unit[ 4] = '拾'
  31. LET  ls_arr_unit[ 5] = '佰'
  32. LET  ls_arr_unit[ 6] = '仟'
  33. LET  ls_arr_unit[ 7] = '萬'
  34. LET  ls_arr_unit[ 8] = '拾'
  35. LET  ls_arr_unit[ 9] = '佰'
  36. LET  ls_arr_unit[10] = '仟'
  37. LET  ls_arr_unit[11] = '億'
  38. LET  ls_arr_unit[12] = '拾'
  39. LET  ls_arr_unit[13] = '佰'
  40. LET  ls_arr_unit[14] = '仟'

  41. LET  ls_arr_unit0[ 1] = '整'
  42. LET  ls_arr_unit0[ 2] = '零'
  43. LET  ls_arr_unit0[ 3] = '元'
  44. LET  ls_arr_unit0[ 4] = '零'
  45. LET  ls_arr_unit0[ 5] = '零'
  46. LET  ls_arr_unit0[ 6] = '零'
  47. LET  ls_arr_unit0[ 7] = '萬'
  48. LET  ls_arr_unit0[ 8] = '零'
  49. LET  ls_arr_unit0[ 9] = '零'
  50. LET  ls_arr_unit0[10] = '零'
  51. LET  ls_arr_unit0[11] = '億'
  52. LET  ls_arr_unit0[12] = '零'
  53. LET  ls_arr_unit0[13] = '零'
  54. LET  ls_arr_unit0[14] = '零'

  55. IF  pf_money=0 THEN
  56.         RETURN '零元整'
  57. END IF
  58. IF pf_money<0 THEN
  59.         LET pf_money=0 - pf_money
  60.         LET ls_result='負(fù) '
  61. ELSE
  62.         LET ls_result=''
  63. END IF
  64. IF pf_money>;999999999999.99 THEN
  65.         RETURN ls_result='數(shù)值超出范圍'
  66. END IF

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

  69. for i=1 to li_length

  70.         LET li_bit=ls_money[i]
  71.                
  72.         if li_bit=0 then
  73.                 LET li_len=length(ls_result CLIPPED)
  74.                 if ls_result[li_len - 1, li_len]<>;'零' then
  75.                         LET ls_result = ls_result CLIPPED, ls_arr_unit0[li_length - i + 1]
  76.                 else
  77.                         LET ls_result = ls_result[1, li_len - 2],
  78.                                                          ls_arr_unit0[li_length - i + 1]
  79.                 end if
  80.         else
  81.                 LET ls_result = ls_result CLIPPED, ls_arr_num[li_bit],
  82.                                                 ls_arr_unit [li_length -i + 1]
  83.         end if
  84. END FOR

  85. return ls_result CLIPPED

  86. END FUNCTION
復(fù)制代碼


****幫你加上code,格式就好看了! Admirer

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2004-01-30 20:32 |只看該作者

INFORMIX 4GL寫的轉(zhuǎn)換成大寫金額字串的函數(shù)

不知道為什么縮進(jìn)都沒有了 ! 大家湊合著看.
其中:
DEFINE ls_arr_unit0 ARRAY [14] OF CHAR(2)

數(shù)組的用法很高效, 很特別.

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2004-01-31 14:24 |只看該作者

INFORMIX 4GL寫的轉(zhuǎn)換成大寫金額字串的函數(shù)

不錯(cuò)~~~~~~~~~~

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2004-02-01 13:58 |只看該作者

INFORMIX 4GL寫的轉(zhuǎn)換成大寫金額字串的函數(shù)

如果能寫個(gè)英文最好不過了!

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2004-02-02 08:24 |只看該作者

INFORMIX 4GL寫的轉(zhuǎn)換成大寫金額字串的函數(shù)

不錯(cuò)!

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2004-02-03 15:58 |只看該作者

INFORMIX 4GL寫的轉(zhuǎn)換成大寫金額字串的函數(shù)

設(shè)計(jì)方法新穎。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2004-02-05 08:30 |只看該作者

INFORMIX 4GL寫的轉(zhuǎn)換成大寫金額字串的函數(shù)

寫得不錯(cuò)!
頂!

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2012-02-10 10:07 |只看該作者
#---------------------------------------------------------------------#
# -- 將一串?dāng)?shù)字返回漢字大寫 -- zwx
# -- Ssta='S',簡短型 50010.00伍萬 零 壹拾 圓 零角 零分)
# -- Ssta='L',完整型 50010.00伍萬 零仟 零佰 壹拾 零圓 零角 零分)
#---------------------------------------------------------------------#
FUNCTION num_to_upcode(Snum,Ssta)
DEFINE Snum    DEC(16,2),
       Ssta    CHAR(1),
       S1str   CHAR(20),
       S3str   CHAR(2),
       Snstr   CHAR(100),
       Srstr   CHAR(100),
       Slen    INT,
       Scnt    INT,
       St1     INT,
       St2     INT,
       St3     INT
    LET S1str = Snum
  # display 'Input:',Snum,' -- >',S1str
    LET Slen = LENGTH(S1str)
    FOR St1 = 1 TO Slen
        IF  S1str[St1] = '.' THEN
            EXIT FOR
        END IF
    END FOR
    LET Snstr = NULL
    LET S3str = ' '
    FOR St2 = 1 TO Slen
        LET St3 = St1 - St2
        LET S3str = ' '
        CALL num_1to_upcode(S1str[St2]) RETURNING S3str
        LET Snstr = Snstr CLIPPED,S3str CLIPPED
        LET Snstr = Snstr CLIPPED
        LET Scnt = LENGTH(Snstr)
        IF  Scnt > 4 THEN
            IF  Snstr[Scnt-3,Scnt] = '零零' THEN
                LET  Snstr[Scnt-1,Scnt] = '  '
            END IF
        END IF
        IF  S1str[st2] = '-' THEN
            CONTINUE FOR
        END IF
        LET S3str = ' '
        CALL num_2to_upcode(St3) RETURNING S3str
        LET Snstr = Snstr CLIPPED,S3str CLIPPED
        IF  Ssta = 'S' THEN
            LET Snstr = Snstr CLIPPED
            LET Scnt = LENGTH(Snstr)
            IF  Scnt > 4 THEN
                IF  Snstr[Scnt-3,Scnt] = '零圓' OR
                    Snstr[Scnt-3,Scnt] = '零萬' OR
                    Snstr[Scnt-3,Scnt] = '零億' OR
                    Snstr[Scnt-3,Scnt] = '零兆' THEN
                    LET Snstr[Scnt-3,Scnt-2] = Snstr[Scnt-1,Scnt]
                    LET Snstr[Scnt-1,Scnt] = '  '
                END IF
            END IF
            LET Snstr = Snstr CLIPPED
            LET Scnt  = LENGTH(Snstr)
            IF  Scnt > 4 THEN
                IF  Snstr[Scnt-3,Scnt] = '兆億' OR
                    Snstr[Scnt-3,Scnt] = '兆萬' OR
                    Snstr[Scnt-3,Scnt] = '零拾' OR
                    Snstr[Scnt-3,Scnt] = '零佰' OR
                    Snstr[Scnt-3,Scnt] = '零仟' OR
                    Snstr[Scnt-3,Scnt] = '億萬' THEN
                    LET Snstr[Scnt-1,Scnt] = '零'
                END IF
            END IF
        END IF
        LET Snstr = Snstr CLIPPED
        LET Scnt = LENGTH(Snstr)
        IF  Scnt > 4 THEN
            IF  Snstr[Scnt-3,Scnt] = '零零' THEN
                LET  Snstr[Scnt-1,Scnt] = '  '
            END IF
        END IF
    END FOR
#  display 'Output:-- >',Snstr
        # -- 格式調(diào)整,加空格
    LET Srstr = "("
    LET Snstr = Snstr CLIPPED
    LET Slen = LENGTH(Snstr)
    FOR St2 = 1 TO Slen/2
        LET St1 = St2 * 2
        LET S3str = Snstr[St1-1,St1]
        IF  S3str MATCHES '[負(fù)兆億萬仟佰拾圓角]' THEN
            LET Srstr = Srstr CLIPPED,S3str,'_'
        ELSE
            IF  S3str MATCHES '[零]' AND St2 <= Slen/2-4 AND
                Ssta = 'S' THEN
                LET Srstr = Srstr CLIPPED
                LET Scnt = LENGTH(Srstr)
                IF  Srstr[Scnt] = '_' THEN
                    LET Srstr = Srstr CLIPPED,S3str,'_'
                ELSE
                    LET Srstr = Srstr CLIPPED,'_',S3str,'_'
                END IF
            ELSE
                LET Srstr = Srstr CLIPPED,S3str
            END IF
        END IF
    END FOR
    LET Srstr = Srstr CLIPPED,')'
    LET Srstr = Srstr CLIPPED
    LET Slen = LENGTH(Srstr)
    FOR St2 = 1 TO Slen
        IF  Srstr[St2] = '_' THEN
            LET Srstr[St2] = ' '
        END IF
    END FOR
  # display 'Return:-- >',Srstr
    RETURN Srstr
END FUNCTION
#---------------------------------------------------------------------#
# -- 將一個(gè)數(shù)字返回漢字名稱 --  zwx
#---------------------------------------------------------------------#
FUNCTION num_1to_upcode(Snum)
DEFINE Snum   CHAR(1),
       Sstr   CHAR(2)
    LET Sstr = ' '
    CASE
        WHEN Snum = '-'
             LET Sstr = '負(fù)'
        WHEN Snum = '0'
             LET Sstr = '零'
        WHEN Snum = '1'
             LET Sstr = '壹'
        WHEN Snum = '2'
             LET Sstr = '貳'
        WHEN Snum = '3'
             LET Sstr = '參'
        WHEN Snum = '4'
             LET Sstr = '肆'
        WHEN Snum = '5'
             LET Sstr = '伍'
        WHEN Snum = '6'
             LET Sstr = '陸'
        WHEN Snum = '7'
             LET Sstr = '柒'
        WHEN Snum = '8'
             LET Sstr = '捌'
        WHEN Snum = '9'
             LET Sstr = '玖'
    END CASE
    RETURN Sstr
END FUNCTION
#---------------------------------------------------------------------#
# -- 返回?cái)?shù)字對應(yīng)的位數(shù)代碼 --  zwx
#---------------------------------------------------------------------#
FUNCTION num_2to_upcode(Snum)
DEFINE Snum   INT,
       Sstr   CHAR(2)
    LET Sstr = ' '
    CASE
        WHEN Snum MOD 4 = 2
             LET Sstr = '拾'
        WHEN Snum MOD 4 = 3
             LET Sstr = '佰'
        WHEN Snum MOD 4 = 0 AND Snum > 0
             LET Sstr = '仟'
        WHEN Snum = 5
             LET Sstr = '萬'
        WHEN Snum = 9
             LET Sstr = '億'
        WHEN Snum = 13
             LET Sstr = '兆'
        WHEN Snum = 0
             LET Sstr = '圓'
        WHEN Snum = -1
             LET Sstr = '角'
        WHEN Snum = -2
             LET Sstr = '分'
    END CASE
    RETURN Sstr
END FUNCTION

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2012-08-23 00:41 |只看該作者
呵呵,謝謝樓主了~~~~~~~~~~~

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2012-09-10 15:46 |只看該作者
謝謝樓主和8樓的朋友,學(xué)習(xí)了!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP