Chinaunix首页 | 论坛 | 博客
  • 博客访问: 174508
  • 博文数量: 31
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 585
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-17 23:11
文章分类

全部博文(31)

文章存档

2011年(1)

2009年(18)

2008年(12)

我的朋友

分类:

2009-02-26 16:59:58

REPORT  Z_TEST_EVENT                            .

DATA: AA(2).
DATA: T1 TYPE I VALUE '28'. "65-90

PERFORM GET_AZ USING T1
             CHANGING AA .
WRITE:/ AA.
FORM GET_AZ USING T1 TYPE I
            CHANGING AZ.
DATA: AA TYPE URL_CHAR.
DATA: S1 TYPE I."除以26的商
DATA: Y1 TYPE I. "除以26的余数
DATA: A1 TYPE URL_CHAR.
DATA: A2 TYPE URL_CHAR.
  IF T1 <= 26 .
     PERFORM GET_COL USING T1
             CHANGING AA .
     AZ = AA.
  ELSEIF T1 > 26.
   S1 = T1 / 26.
   Y1 = T1 MOD  26 .
   PERFORM GET_COL USING S1
              A1.
   PERFORM GET_COL USING Y1
              A2 .
   CONCATENATE A1 A2 INTO AZ.
   AA = AZ.
 ENDIF.
ENDFORM.
*
*FORM GET_COL USING I1 TYPE I
*             CHANGING AA TYPE URL_CHAR.
*DATA: INPUT TYPE I.
*DATA: X TYPE X.
*INPUT = I1 + 64.
*X = INPUT.
*      FIELD-SYMBOLS:
*        TYPE URL_CHAR.
*    ASSIGN X TO CASTING.
*    AA = .
*ENDFORM.
FORM get_col USING col TYPE i
                   col_name TYPE c .
  DATA: str TYPE string ,
        xstr TYPE xstring,
        l_con TYPE REF TO cl_rpe_convert .
  DATA: mod TYPE i ,
        div TYPE i .

  IF col > 702  OR col < 1 .
    MESSAGE '超过范围,FORM退出!' TYPE 'I'.
    EXIT.
  ENDIF.

  CREATE OBJECT l_con.

  mod = col MOD 26 .
  div = col DIV 26 .

  IF div > 0 AND mod <> 0.
    xstr = div + 64 .
  ELSEIF div > 1 AND mod = 0  .
    xstr = div + 63 .
  ENDIF.

  CALL METHOD l_con->xstring_to_string
    EXPORTING
      input  = xstr
    IMPORTING
      output = str.
  col_name = str .

  IF mod = 0 .
    str = 'Z'.
  ELSE.
    xstr = mod + 64 .
    CALL METHOD l_con->xstring_to_string
      EXPORTING
        input  = xstr
      IMPORTING
        output = str.
  ENDIF.

  CONCATENATE col_name str INTO col_name.
ENDFORM.                    "get_col
阅读(856) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~