ERP-SAP/ABAP

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

행복한워니의 기록 2024. 12. 13. 06:51
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
반응형