ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SAP Report] ALV Event(2) // SALV
    SAP 2022. 5. 26. 22:38

    안녕하세요! 건양대학교 기업소프트웨어학부 학생입니다. 이번에 실습할 내용은 SALV에 대한 내용입니다.

    ALV를 사용하기 위해 Function을 호출하고, ALV 출력을 위한 Screen을 생성하고 하셨을 것입니다. 이번에 사용할 SALV는 Simple ALV라고 생각하시면 좋겠습니다. 리스트의 출력만 간단하게 하고, ALV를 간단하게 구성할 수 있습니다.

    이 SALV는 아래 구문만으로 불러올 수 있습니다.


    데이터 선언

    go_table type REF TO cl_salv_table

    인스턴스 생성 및 출력

              cl_salv_table=>factory(
                IMPORTING
                  r_salv_table go_table
                CHANGING
                  t_table gt_grade ).

              go_table->display).

    SALV의 다양한 기능과 요소들은 Google 검색 혹은 Easy ABAP 2.0 교재를 참고하시면 많은 정보를 얻으실 수 있습니다.

    이번에 진행할 내용은 ALV에서의 버튼 생성과 Popup으로 띄우는 SALV입니다. 지난번에 작성한 글을 이어 만들어보겠습니다.

    2022.05.18 - [SAP Report] - [SAP Report] For All Entries

     

    [SAP Report] For All Entries

    안녕하세요! 건양대학교 기업소프트웨어학부 학생입니다. 오늘 알아 볼 구문은 [For All Entries] 입니다. 여러분은 SQL를 잘 사용하고 계신가요? ABAP에서 Table에 있는 데이터를 가져올 때 저희는 Select

    minmin98.tistory.com

    위 출력 화면을 보시면 GRADE라는 버튼이 하나 생성된 것을 보실 수 있습니다.

    Class-Method on_tolbar를 선언해줍니다.

    버튼의 타입을 지정해줍니다. 도메인에 저장된 숫자에 따라 버튼이 다릅니다.

    0 일반
    1 메뉴 및 기본버튼
    2 메뉴
    3 구분자
    4 라디오버튼
    5 체크박스
    6 메뉴 옵션

    버튼의 Function, Name, 커서를 위에 올렸을 때 뜨는 정보, 버튼 타입을 지정해준 후 Insert를 진행합니다.

    버튼이 만들어졌습니다. 하지만 동작은 하지 않습니다. 동작을 위해 Class-Method를 하나 더 선언해줍니다.

    툴바에 있는 버튼을 클릭할 시 해당 이벤트가 작동하게 됩니다.

    해당 메소드의 선언부분입니다. 데이터 선언과 gs_list를 클리어해줍니다. 메소드를 출력해줍니다. 지금 alv에서 몇 번 라인을 선택했는지 알게됩니다.

    툴바에 있는 버튼 중 GRADE를 클릭했을 경우입니다. 먼저 gt_grade와 gs_grade를 클리어해줍니다. 만약 선택한 라인 수가 0이라면 메세지를 출력해줍니다.

    그렇지 않다면( 선택한 라인 수가 1개 이상이면) lt_row_no에 있는 데이터의 수만큼 루프를 돌려줍니다.

    gt_list의 데이터를 읽어옵니다. 해당 라인의 정보를 읽어오는 것이므로 Index ls_row_no-row_id을 통해 해당 라인의 정보를 읽어옵니다. 읽어온 라인 중 출력하고 싶은 정보만 gs_grade에 넣어주고 gs_grade에 정보를 gt_grade에 append 해줍니다.

    SALV를 생성해줍니다. SALV에서 출력할 데이터는 gt_grade의 데이터입니다.

    헤더를 생성해주고, SALV를 팝업으로 출력하기 위해 팝업기능을 추가해줍니다. 또 데이터의 길이에 맞게 컬럼 길이를 조정해줍니다.

    SALV 출력을 위한 구문을 작성해줍니다.

    해당 라인의 정보가 팝업형태의 ALV로 나오는 것을 확인할 수 있습니다.

    다음으로는 메소드 4개를 간단히 정리해보도록 하겠습니다.

    1. get_current_cell

    ALV GRID 컨트롤에 커서가 놓은 위치의 값과 속성들을 반환합니다.

    선택된 셀이 존재하지 않으면 라인의 Row 값은 0을 반환합니다. ALV GRID 컨트롤은 두 개의 라인과 컬럼의 인덱스 번호를 반환하는데, 하나는 현재 선택된 라인과 컬럼이고 다른 하나는 인터널 테이블 라인과 컬럼의 인덱스입니다.

    다음과 같이 설정 후 패턴을 불러오시면 됩니다.

    인스턴스 // G_GRID , 클래스 // CL_GUI_ALV_GRID, METHOD // GET_CURRENT_CELL

    2. get_selected_cells

    현재 선택된 복수의 셀 정보를 LVC_T_CELL 타입의 테이블로 반환합니다. 따라서 현재 선택된 셀들의 필드명, 인데스 등의 정보를 가져오게 됩니다.

    다음과 같이 설정 후 패턴을 불러오시면 됩니다.

    인스턴스 // G_GRID , 클래스 // CL_GUI_ALV_GRID, METHOD // GET_SELECTED_CELLS

    3. get_selected_columns

    선택된 컬럼들의 정보를 LVC_T_COL 타입의 테이블로 반환합니다.

    다음과 같이 설정 후 패턴을 불러오시면 됩니다.

    인스턴스 // G_GRID , 클래스 // CL_GUI_ALV_GRID, METHOD // GET_SELECTED_COLUMNS

    4. get_selected_rows

    선택된 멀티 라인의 정보를 LVC_T_ROW 타입의 테이블로 반환합니다.

    다음과 같이 설정 후 패턴을 불러오시면 됩니다.

    인스턴스 // G_GRID , 클래스 // CL_GUI_ALV_GRID, METHOD // GET_SELECTED_ROWS

    위 정보들은 아래 블로그를 참고하여 작생하였습니다.

    https://abapta0903.tistory.com/entry/CLGUIALVGRID-%EA%B8%B0%ED%83%80-%EB%A9%94%EC%86%8C%EB%93%9C

     

    CL_GUI_ALV_GRID 기타 메소드

    이전 글에서는 ALV에서 가장 중요한 역할을 하는 set_table_for_first_display의 메서드의 기능과 파라미터에 대해서 알아보았다. 이후 ALV에서 자주 사용되는 메서드에 대해서 학습해보자. 1) get_current_cel

    abapta0903.tistory.com

    감사합니다.

    김성준, 「Easy ABAP 2.0」, 프리렉(2012)

    책정보, http://www.yes24.com/Product/Goods/7334929.

    SAP Joy, http://sapjoy.co.kr/

    'SAP' 카테고리의 다른 글

    [SAP OOP] Global Class // Event  (0) 2022.05.30
    [SAP OOP] Interface // Event // 송금 관리  (0) 2022.05.19
    [SAP Report] For All Entries  (0) 2022.05.18
    [SAP OOP] Interface // 잔고 관리  (0) 2022.05.10
    [SAP Report] ALV Event (1)  (0) 2022.05.10
Designed by Tistory.