본문 바로가기
ERP-SAP/ABAP

<ABAP> Dynamic internal table (동적 인터널 테이블)에서 cell tab color tab 넣기 만들기

by 행복한워니의 기록 2024. 12. 13.
728x90
반응형

먼저... 안되는 코딩을 소개한다.

분명히 말하지만 "안되는 코딩이다".
따라하지마라...
이유는 간단하다 LVC_T_SCAL 은 참조할 테이블이 아니다. 테이블타입이지 ..그래서 안된다.
Do not work THIS code!!=>>

wa_fieldcatalog-fieldname  = 'COLOR'.
wa_fieldcatalog-ref_table  = 'LVC_T_SCOL'.
APPEND wa_fieldcat TO gt_fieldcat.

CLEAR wa_fieldcat.

CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fieldcat
IMPORTING
ep_table = t_output.

ASSIGN t_output->* TO <gt_output>.
==========
다른방식으로 이분꺼는 될것이라 생각한다.
동적으로 다시 comp를 불러서 거기 ITAB으로 선언한
Lvc_T_scal 타입을 던져서 COMP에 추가하는 로직이다.

https://friendjinho.tistory.com/entry/ABAP-Dynamic-table-cell-color

[ABAP] Dynamic table - cell color

FORM create_dynamic . PERFORM create_dynamic_fieldcat TABLES gt_fieldcat2. PERFORM create_dynamic_table TABLES gt_fieldcat2. PERFORM create_dynamic_data. PERFORM set_dynamic_color. ENDFORM. " create_dynamic_table ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

friendjinho.tistory.com



그러나 코딩이 길어지는 단점이 있다.
그래서 내가 선택한 로직은 무엇이냐면.......

맨 위 안되는 코딩의 응용
1. 스트럭쳐를 SE11에 만든다.
2. 거기 필드를 만들고( CELLCOL 라 필드명을 만들었다) TYPE에 LVC_T_Scal을 만든다.
3. 그걸 맨 위 안되는 코딩처럼 갖다 쓴다.....

즉,

wa_fieldcatalog-fieldname  = 'COLOR'. 내Itab 내부에 선언할 필드명
wa_fieldcatalog-ref_table  = 'ZSCONCELLC'.
wa_fielscatalog-ref_field = "CELLCOL".
APPEND wa_fieldcat TO gt_fieldcat.

이렇게 필드카탈로그를 생성하고
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fieldcat
IMPORTING
ep_table = t_output.

ASSIGN t_output->* TO <gt_output>.

하면 필드에 들아가서 동적 ITAB이 생성된다.


거기서 팁하나 추가하면..
데이터를 담는 ITAB에서는 CELLCOL을 같이 담아 그 라인에 필드컬러정보를 넣는게 컨셉인데
그 데이터를 뿌려주는 Alv display 에서 필드카탈로그는 CELLCOL이 안담긴 필드카탈로그를 던져줘야 한다....
아무생각없이 어? DYNAMIC TABLE 생성용 필드카탈로그가 있있으니 그거던져야지 하고 넣었다가 덤프...ㅋㅋ







728x90
반응형