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
阅读(887) | 评论(0) | 转发(0) |