메뉴 건너뛰기

SAP 한국 커뮤니티



REPORT z_alv_list_transposed

노름마치 2007.11.05 12:49 조회 수 : 3012

REPORT z_alv_list_transposed.
*---------------------------------------------------------------------*
* This report displays an ALV Grid list transposed. It can be easely  *
* adapted to your needs, just replace SPFLI by another DDIC table     *
*---------------------------------------------------------------------*
* Author : Michel PIOUD                                               *
* Email : mpioud@yahoo.fr  HomePage : http://www.geocities.com/mpioud *
*---------------------------------------------------------------------*
TYPE-POOLS: slis.                      " ALV Global types


SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '10' OBLIGATORY.
SELECTION-SCREEN END OF LINE.


DATA gt_data TYPE STANDARD TABLE OF spfli WITH HEADER LINE.


*---------------------------------------------------------------------*
INITIALIZATION.


  v_1 = 'Maximum of records to read'.


*---------------------------------------------------------------------*
START-OF-SELECTION.


  PERFORM f_read_data.


  PERFORM f_display_data.


*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.


  SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_data
           FROM spfli
             UP TO p_max ROWS.


ENDFORM.                               " F_READ_DATA
*---------------------------------------------------------------------*
*      Form  F_DISPLAY_DATA
*---------------------------------------------------------------------*
FORM f_display_data.


  DATA:
    l_column    TYPE sy-tabix,
    lp_struct   TYPE REF TO data,
    lp_table    TYPE REF TO data,      " Pointer to dynamic table
    ls_lvc_cat  TYPE lvc_s_fcat,
    lt_lvc_cat  TYPE lvc_t_fcat,       " Field catalog
    lt_fcat     TYPE slis_t_fieldcat_alv,  " Field catalog
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv,  " Field catalog
    ls_layout   TYPE slis_layout_alv.


  FIELD-SYMBOLS :
    <header>       TYPE ANY,
    <field_header> TYPE ANY,
    <field_spfli>  TYPE ANY,
    <lt_data>      TYPE table.         " Data to display


  ls_lvc_cat-fieldname = 'COLUMNTEXT'.
  ls_lvc_cat-ref_table = 'LVC_S_DETA'.
  APPEND ls_lvc_cat TO lt_lvc_cat.


  ls_fieldcat-fieldname = 'COLUMNTEXT'.
  ls_fieldcat-ref_tabname = 'LVC_S_DETA'.
  ls_fieldcat-key  = 'X'.
  APPEND ls_fieldcat TO lt_fieldcat.


  DESCRIBE TABLE gt_data.


  DO sy-tfill TIMES.
*   For each line, a column 'VALUEx' is created in the fieldcatalog
*   Build Fieldcatalog
    WRITE sy-index TO ls_lvc_cat-fieldname LEFT-JUSTIFIED.
    CONCATENATE 'VALUE' ls_lvc_cat-fieldname
           INTO ls_lvc_cat-fieldname.
    ls_lvc_cat-ref_field = 'VALUE'.
    ls_lvc_cat-ref_table = 'LVC_S_DETA'.
    APPEND ls_lvc_cat TO lt_lvc_cat.
*   Build Fieldcatalog
    CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = ls_lvc_cat-fieldname.
    ls_fieldcat-ref_fieldname = 'VALUE'.
    ls_fieldcat-ref_tabname = 'LVC_S_DETA'.
    APPEND ls_fieldcat TO lt_fieldcat.
  ENDDO.


* Create internal table
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING it_fieldcatalog = lt_lvc_cat
    IMPORTING ep_table = lp_table.


  ASSIGN lp_table->* TO <lt_data>.


* Create structure = structure of the internal table
  CREATE DATA lp_struct LIKE LINE OF <lt_data>.
  ASSIGN lp_struct->* TO <header>.


* Create field catalog from dictionary structure
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_structure_name       = 'SPFLI'
       CHANGING
            ct_fieldcat            = lt_fcat
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


  DESCRIBE TABLE lt_fcat.


* Fill the internal to display <lt_data>
  DO sy-tfill TIMES.
    IF sy-index = 1.
      READ TABLE lt_fcat INTO ls_fieldcat INDEX 1.
      IF ls_fieldcat-fieldname = 'MANDT'.
*       If 1st column is MANDT, it's not displayed
        CONTINUE.
      ENDIF.
    ENDIF.
*   For each field of GT_DATA
    ASSIGN COMPONENT 1 OF STRUCTURE <header> TO <field_header>.
    IF sy-subrc NE 0. EXIT .ENDIF.
    READ TABLE lt_fcat INTO ls_fieldcat INDEX sy-index.
*   Fill 1st column
    <field_header> = ls_fieldcat-seltext_m.
    IF <field_header> IS INITIAL.
      <field_header> = ls_fieldcat-fieldname.
    ENDIF.


    LOOP AT gt_data.
      l_column = sy-tabix + 1.
      ASSIGN COMPONENT sy-index OF STRUCTURE gt_data TO <field_spfli>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      ASSIGN COMPONENT l_column OF STRUCTURE <header> TO <field_header>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      WRITE <field_spfli> TO <field_header> LEFT-JUSTIFIED.
    ENDLOOP.
    APPEND <header> TO <lt_data>.
  ENDDO.


  ls_layout-colwidth_optimize = 'X'.
  ls_layout-no_colhead = 'X'.
  ls_layout-zebra = 'X'.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout   = ls_layout
            it_fieldcat = lt_fieldcat
       TABLES
            t_outtab    = <lt_data>.


ENDFORM.                               " F_DISPLAY_DATA
************ END OF PROGRAM Z_ALV_LIST_TRANSPOSED *********************


번호 제목 글쓴이 날짜 조회 수
107 Dynamic Select 소스 [5] 떡밥 2011.06.03 17773
106 스크린에서 버튼을 tree 처럼 만들기. [32] file Jenny 2011.08.11 17657
105 Mass Download [5] file 소주와 막걸리 2009.11.13 17363
104 셀(cell) 레벨의 ALV EDIT(편집) 가능 소스 [5] sapjoy 2008.09.25 17266
103 통화단위, krw, usd 일반 필드에 변환시 로직(소수점, 자리수) [4] sapjoy 2011.07.19 15563
102 REPORT z_alv_list_block_2 [1] 노름마치 2007.11.05 15184
101 4.6c 에서 Xml 파일을 읽어오는 로직 예제 입니다. [2] woong 2009.05.11 14808
100 금액을 한글로(수표)표기 [17] file STARFISH 2009.03.17 14646
99 인터널 테이블을 사용한 구구단 출력 두가지 입니다 - WRITE, ALV 이용 [1] kofnhuge 2012.10.10 14022
98 Text(Description) 빠르게 반영하기,,, 속도개선을 위주로 [5] file 노름마치 2010.12.07 13909
97 [onepaper] 참고자료 Archiving 세팅에 필요한 파일소스입니다. [7] file 원니컴 2011.03.22 13801
96 Syntax Checker [4] file 소주와 막걸리 2009.11.13 13765
95 ALV Row Color 지정하는 소스. [3] 나침반친구 2007.05.28 12864
94 금액을 영문으로 [4] file 쥬앙 2009.04.06 12366
93 Transport Trace [4] file 소주와 막걸리 2009.11.13 12143
92 멀 어떻게 해야 하는건질 몰라 질문 드립니다 [5] 쏠라맨 2012.10.12 11665
91 [Module pool] Container에 webpage 넣기. [2] 냥냥 2013.03.19 11198
90 nugg 프로그램을 sap 에 생성하기.. [3] file MadMax 2012.10.11 10829
89 Select-Options 의 Extension 에 제한을 주는 방법 [5] icarus 2007.11.15 10828
88 Split 의 사용 [1] 양키(이경환) 2014.02.05 10724