SAP ABAP ALV TOP OF PAGE (alv 상단 document 생성하기)

SAP ABAP TOP-OF-PAGE ALV Document 로직




screen화면을 분할하여 사용하는 경우도 종종 있다.
일반적으로 두개의 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.


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


해당 메서드를 통해 상단의 document의 크기를 설정해준다. 
ID에 1을 넣으면 상단 컨테이너의 높이를 조절하는것이고
ID에 2를 넣으면 하단 컨테이너의 높이를 조절하는 것이다.



CREATE OBJECT GR_DOCUMENT
    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.





서브루틴 안에 상단 document에 보여줄 text와 변수를 넣어준다.
CALL METHOD GR_DOCUMENT->DISPLAY_DOCUMENT
를 반드시 해주어야 display가 된다.




이벤트를 등록해주고



gr_document가 하단 grid2에 대한 설명이라는 것이다.


위의 로직을 완성해주면 top of page가 생성된다.






다음 이전