internal table 선언은 아래와 같이 되어 있고,
한 screen에서 table control을 두개 사용하여 아래 각 internal table을 처리하고 있습니다.
types: begin of t_itab.
INCLUDE STRUCTURE zt02.
types: mark(01),
bankl_t(30),
io_gb_t(04),
l_cmpno(12),
end of t_itab.
data: gt_bank type t_itab occurs 0 with header line,
gt_r3 type t_itab occurs 0 with header line.
사용자가 'SORT'버튼을 누르면
sorting 처리를 하려고 하는데
한 개의 subroutin으로 두개의 internal table에 대한 sorting 처리를 하려니
internal table이름을 바꿔줘야 하는데, internal table이름을 field-symbol로 사용하려 하니
자꾸만 dump(type conflict)가 발생하네요.
아래 소스 보시고...
원인이 무엇인지... 해결방법을 아시는 분은 답변 좀 올려주시면 감하겠습니다.
form sort_table_control using p_sort_type.
DATA: lv_tc_name LIKE feld-name,
lv_tc_field_name LIKE feld-name.
GET CURSOR FIELD lv_tc_field_name
AREA lv_tc_name.
case lv_tc_name .
when 'TC1'.
perform sort_data using lv_tc_name 'GT_BANK' p_sort_type.
when 'TC2'.
perform sort_data using lv_tc_name 'GT_R3' p_sort_type.
endcase.
endform.
form sort_data using p_tc_name p_itab p_sort_type.
data: lv_index type i.
FIELD-SYMBOLS:
ASSIGN (p_tc_name) TO
FIELD-SYMBOLS:
assign (p_itab) to
data: lv_sort_field(30).
DATA: ls_cols TYPE cxtab_column.
read table
if sy-subrc = 0.
lv_index = strlen( p_itab ) + 1.
move ls_cols-screen-name+lv_index(10) to lv_sort_field.
case p_sort_type.
when 'A'.
sort
when 'D'.
sort
endcase.
else.
message s998 with '정렬할 칼럼을 선택하세요.'.
endif.
endform. " sort_data
헤더라인이 존재하는 인터널 테이블을 사용하면 구조체만 assign 됩니다.
header line을 제거하고 다시 해보세요~