SPAN {
font-family: "Fixedsys";
font-size: 21pt;
color: #000000;
background: #FFFFFF;
}
.L1S31 {
font-style. italic;
color: #808080;
}
.L1S32 {
color: #3399FF;
}
.L1S33 {
color: #4DA619;
}
.L1S52 {
color: #0000FF;
}
REPORT ztest LINE-SIZE 255.
TABLES: lfa1.
DATA:
lr_conv_ci TYPE REF TO cl_rpe_convert,
vis.
DATA: BEGIN OF it_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
END OF it_lfa1.
SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr.
START-OF-SELECTION.
CREATE OBJECT lr_conv_ci.
SELECT lifnr name1
FROM lfa1
INTO TABLE it_lfa1
WHERE lifnr IN s_lifnr.
SORT it_lfa1 BY lifnr.
LOOP AT it_lfa1.
PERFORM frm_data_process USING it_lfa1-name1 vis.
IF vis = 'E'.
CONDENSE it_lfa1-name1.
WRITE:/ it_lfa1-lifnr, ' ', it_lfa1-name1.
ENDIF.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form frm_data_process
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_data_process USING p_name1 p_vis.
DATA: l_vislen TYPE i,
l_xislen TYPE i,
l_pos TYPE i,
l_string TYPE string,
l_last_char TYPE xstring.
CLEAR p_vis.
SHIFT p_name1 RIGHT DELETING TRAILING space.
l_pos = STRLEN( p_name1 ) - 1.
CALL FUNCTION 'NLS_VISUAL_CHARLEN'
EXPORTING
str = p_name1+l_pos(1)
IMPORTING
len_visual = l_vislen.
MOVE p_name1+l_pos(1) TO l_string.
CALL METHOD lr_conv_ci->string_to_xstring
EXPORTING
input = l_string
IMPORTING
output = l_last_char.
l_xislen = XSTRLEN( l_last_char ).
IF l_vislen <= 1 AND l_xislen > 2.
MOVE 'E' TO p_vis.
SHIFT p_name1 RIGHT BY 1 PLACES.
ENDIF.
ENDFORM. " frm_data_process
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/90790/viewspace-748801/
,如需转载,请注明出处,否则将追究法律责任。