在帖子http://www.91sap.com/thread-3154-1-1.html中,讲述了如何得到连续的流水号。假如有需求要求我们实现A B C D E F --- X Y Z 这样的序列的话,上述方法就不能实现了。可以通过ASC码来实现转换
源代码如下
**如果我们想得到A B C D --- X Y Z这样的一串序列就可以使用下面代码得到
DATA : chr VALUE 'A'.
DATA : asc TYPE i.
***返回字符对应的ASC码
PERFORM getasc USING chr
CHANGING asc.
WRITE asc.
***返回ASC码对应的字符
DO 25 TIMES.
asc = asc + 1.
PERFORM getchr USING asc
CHANGING chr.
WRITE / chr.
ENDDO.
*&---------------------------------------------------------------------*
*& Form getASC
*&---------------------------------------------------------------------*
* 获得字符的ASC
*----------------------------------------------------------------------*
* -->P_C 字符
* -->P_ASC asc码
*----------------------------------------------------------------------*
FORM getasc USING p_c
CHANGING p_asc TYPE i.
FIELD-SYMBOLS : <n> TYPE x.
DATA : l_rn1 TYPE i.
ASSIGN p_c TO <n> CASTING.
MOVE <n> TO l_rn1.
p_asc = l_rn1.
ENDFORM. " getASC
*&---------------------------------------------------------------------*
*& Form getChr
*&---------------------------------------------------------------------*
* 获得ASC对应的字符
*----------------------------------------------------------------------*
* -->P_ASC asc码
* -->P_C 字符
*----------------------------------------------------------------------*
FORM getchr USING p_asc TYPE i
CHANGING p_c TYPE c.