SAP ABAP TOP-OF-PAGE ALV Document 로직
일반적으로 두개의 ALV를 띄우기보다는
상단에 화면 내용에 대한 정보를 담은 Document를 만들고
하단에 ALV를 띄우는 경우가 많다.
우선 먼저 선언해야 할 부분은 컨테이너와 split, top, bottom, document이다.
GR_DOCKING1 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
GR_SPLIT1 TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
GR_TOP TYPE REF TO CL_GUI_CONTAINER,
GR_BOTTOM TYPE REF TO CL_GUI_CONTAINER,
GR_DOCUMENT TYPE REF TO CL_DD_DOCUMENT,
GR_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
GR_SPLIT1 TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
GR_TOP TYPE REF TO CL_GUI_CONTAINER,
GR_BOTTOM TYPE REF TO CL_GUI_CONTAINER,
GR_DOCUMENT TYPE REF TO CL_DD_DOCUMENT,
GR_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
CL_GUI_DOCKING_CONTAINER,으로 컨테이너의 바탕을 선언한다.
또는 스크린페인터에서 직접 컨테이너를 그려줘도 된다.
CL_GUI_SPLITTER_CONTAINER로 분할해줄 스플릿트를 선언해주고
CL_GUI_CONTAINER로 할당해줄 컨테이너를 두개 선언해준다.
CL_DD_DOCUMENT 까지 선언해준다.
또한 class event를 선언해준다.
화면의 PBO에 container와 split 오브젝트를 만들어주고
상단과 하단에 CL_GUI_CONTAINER 로 선언해준 컨테이너를 할당해준다.
CALL METHOD GR_SPLIT1->SET_ROW_HEIGHT
EXPORTING
ID = 1 " Row ID
HEIGHT = 20. " Height
EXPORTING
ID = 1 " Row ID
HEIGHT = 20. " Height
해당 메서드를 통해 상단의 document의 크기를 설정해준다.
ID에 1을 넣으면 상단 컨테이너의 높이를 조절하는것이고
ID에 2를 넣으면 하단 컨테이너의 높이를 조절하는 것이다.
CREATE OBJECT GR_DOCUMENT
EXPORTING
STYLE = 'ALV_GRID'
EXPORTING
STYLE = 'ALV_GRID'
document 오브젝트를 생성해준다.
PBO에 오브젝트를 다 할당해주었으면
top of page 이벤트에 등록해둔 서브루틴부분에 로직을 만들어준다.
FORM TOP_OF_PAGE USING P_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.
*---- header title
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = 'TOP OF PAGE' " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>HEADING " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>HEADING. " Recommended Font Sizes
CALL METHOD P_DYNDOC_ID->NEW_LINE( ). " 한줄바꿈
CALL METHOD P_DYNDOC_ID->NEW_LINE( ).
*---- text 문서
DATA : LV_BURKS TYPE SDYDO_TEXT_ELEMENT,
LV_ANLKL TYPE SDYDO_TEXT_ELEMENT.
LV_BURKS = P_BURKS.
LV_ANLKL = P_ANLKL.
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = '변경! : ' " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE. " Recommended Font Sizes .
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = LV_BURKS " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE. "
CALL METHOD P_DYNDOC_ID->NEW_LINE( ). " 한줄바꿈
CALL METHOD P_DYNDOC_ID->NEW_LINE( ).
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = '자산클래스 : ' " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE. " Recommended Font Sizes .
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = LV_ANLKL " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE.
CALL METHOD GR_DOCUMENT->DISPLAY_DOCUMENT
EXPORTING
REUSE_CONTROL = 'X' " HTML Control Reused
PARENT = GR_TOP. " Contain Object Already Exists
ENDFORM.
*---- header title
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = 'TOP OF PAGE' " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>HEADING " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>HEADING. " Recommended Font Sizes
CALL METHOD P_DYNDOC_ID->NEW_LINE( ). " 한줄바꿈
CALL METHOD P_DYNDOC_ID->NEW_LINE( ).
*---- text 문서
DATA : LV_BURKS TYPE SDYDO_TEXT_ELEMENT,
LV_ANLKL TYPE SDYDO_TEXT_ELEMENT.
LV_BURKS = P_BURKS.
LV_ANLKL = P_ANLKL.
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = '변경! : ' " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE. " Recommended Font Sizes .
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = LV_BURKS " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE. "
CALL METHOD P_DYNDOC_ID->NEW_LINE( ). " 한줄바꿈
CALL METHOD P_DYNDOC_ID->NEW_LINE( ).
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = '자산클래스 : ' " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE. " Recommended Font Sizes .
CALL METHOD P_DYNDOC_ID->ADD_TEXT
EXPORTING
TEXT = LV_ANLKL " Single Text, Up To 255 Characters Long
SAP_STYLE = CL_DD_AREA=>KEY " Recommended Styles
SAP_COLOR = CL_DD_AREA=>LIST_NORMAL " Not Release 99
SAP_FONTSIZE = CL_DD_AREA=>LARGE.
CALL METHOD GR_DOCUMENT->DISPLAY_DOCUMENT
EXPORTING
REUSE_CONTROL = 'X' " HTML Control Reused
PARENT = GR_TOP. " Contain Object Already Exists
ENDFORM.
서브루틴 안에 상단 document에 보여줄 text와 변수를 넣어준다.
CALL METHOD GR_DOCUMENT->DISPLAY_DOCUMENT
를 반드시 해주어야 display가 된다.
위의 로직을 완성해주면 top of page가 생성된다.
Tags:
SAP ABAP