data g_PRINT TYPE  SLIS_PRINT_ALV.


   g_print-no_coverpage  = 'X'. 

   g_print-no_print_listinfos =  'X'.  

   ...  

    

   CALL FUNCTION  'REUSE_ALV_LIST_DISPLAY'  

   EXPORTING  

   ....  

   is_print = g_print

   ....  

    

   이렇게 해주면 됩니다. 

설정

트랙백

댓글


DATA:  back_cont  TYPE REF TO cl_gui_docking_container.

  IF gs_custom_container IS INITIAL.
    IF NOT gs_custom_container IS INITIAL.
      CALL METHOD gs_custom_container->free.

    ENDIF.

    
IF cl_gui_alv_grid=>offlineIS INITIAL.  "back ground job check
      CREATE OBJECT gs_custom_container
        EXPORTING
          container_name c_container.
      CREATE OBJECT gs_alv_grid
        EXPORTING
          i_parent gs_custom_container.
    
ELSE.                                                       "back ground job 일 경우
      CREATE OBJECT gs_alv_grid
        EXPORTING
          i_parent back_cont.

    ENDIF.


    PERFORM alv_variant.       "<-- ALV Variant
    PERFORM alv_sort.          "<-- SORT
    PERFORM alv_layout.        "<-- General Layout

    PERFORM alv_fieldcatalog.    "<-- Field Attribute
    PERFORM alv_toolbar_exclude"CHANGING G_EXCLUDE. "<-- Toolbar Dim

    CALL METHOD gs_alv_grid->set_table_for_first_display
      EXPORTING
        i_default            c_x
        is_layout            gs_layout
        is_variant           gs_variant
        it_toolbar_excluding gs_exclude
        i_save               c_a
      CHANGING
        it_outtab            gt_list[]
        it_fieldcatalog      gs_fieldcat[]
        it_sort              gs_sort.

설정

트랙백

댓글


  DATAls_toolbar TYPE stb_button.

  CLEAR ls_toolbar.
  ls_toolbar-function  'REFR'.
  ls_toolbar-icon      icon_refresh.
  ls_toolbar-quickinfo 'Refresh' ##NO_TEXT.
  ls_toolbar-text      'Refresh' ##NO_TEXT.

*  APPEND ls_toolbar TO p_object->mt_toolbar.
  insert ls_toolbar inTO p_object->mt_toolbar index 1.


Index로 위치를 지정해주면 된다.

설정

트랙백

댓글

* Internal table 


DATABEGIN OF gs_result_100.
        INCLUDE STRUCTURE sflight.
DATAstats(4),
      check,
      ziso     LIKE t002-laiso,
      zdrop(10type c,
      
      cinfo      TYPE lvc_emphsz,
      cellstyl   TYPE lvc_t_styl,
      cellscol   TYPE lvc_t_scol.
DATAEND   OF gs_result_100,
gt_result_100 LIKE TABLE OF gs_result_100.



* ALV Layout setting


      gs_layout_1-info_fname 'CINFO'.
      gs_layout_1-stylefname 'CELLSTYL'.
      gs_layout_1-ctab_fname 'CELLSCOL'.



* Logic


  DATAls_scol TYPE lvc_s_scol,
        lt_scol TYPE lvc_t_scol,
        lt_styl TYPE lvc_t_styl,
        ls_styl TYPE lvc_s_styl,
        lw_idx  TYPE sy-tabix.



  LOOP AT gt_result_100 INTO gs_result_100.
    lw_idx sy-tabix.
    CLEARlt_scolls_scol,
           lt_stylls_styl.

    IF gs_result_100-price > p_price.
      ls_scol-fname 'PRICE'.
      ls_scol-color-col 6.
      ls_scol-color-int 1.
      APPEND ls_scol TO lt_scol.
    ENDIF.

    IF gs_result_100-currency 'USD'.
      ls_styl-fieldname 'CURRENCY'.
      ls_styl-style cl_gui_alv_grid=>mc_style_enabled.

      APPEND ls_styl TO lt_styl.
    ELSE.
      ls_styl-fieldname 'CURRENCY'.
      ls_styl-style cl_gui_alv_grid=>mc_style_disabled.

      APPEND ls_styl TO lt_styl.
    ENDIF.

    INSERT LINES OF lt_styl INTO TABLE gs_result_100-cellstyl.
    INSERT LINES OF lt_scol INTO TABLE gs_result_100-cellscol.

    MODIFY gt_result_100 FROM gs_result_100
                         INDEX lw_idx
                         TRANSPORTING cellscol cellstyl.
  ENDLOOP.

설정

트랙백

댓글

- alv 관련 method (gc_grid_1->get_selected_rows 등) 호출 후에 넣어야 하는 code


CALL METHOD gc_grid_1->get_selected_rows
    IMPORTING
      et_index_rows gt_rows_1.

  CALL METHOD cl_gui_cfw=>flush. ===> 솔직히 무슨 기능인지 파악 안됨.


- alv grid change 후에 넣어야 하는 code ( 보통 User command 실행 하기전에 넣어줌 )


  DATA: lw_valid(1),
          lw_refresh(1VALUE 'X'.

  "변경 확인 및 DATA_CHANGED 이벤트 발생
  CALL METHOD gc_grid_2->check_changed_data
    IMPORTING
      e_valid   lw_valid
    CHANGING
      c_refresh lw_refresh.


check_changed_data 는 alv_changed event 처리 루틴안에 넣으면 무한 loop에 걸리게 됨.


check_changed_data 는 alv-grid 의 변경사항여부를 점검하여 변경사항이 있을 경우

data_chaged 이벤트로 분기시켜주는 역할을 합니다. 

grid 에서 변경 후처리가 끝난 후라면 변경사항이 없기 때문에 해당 메쏘드를 타지 않을 것이고 

변경하고 후처리가 되지 않았다면 변경사항에 대한 처리가 되지 않았으므로 data_changed 로 분기 되겠죠.

설정

트랙백

댓글

alv grid의 layout에서 info_name이라는 속성을 이용하면 alv grid의 row별 색깔을 원하는대로 zebra 같이 표현이 가능하다.


DATA BEGIN OF gt_list1 OCCURS 0.
DATA chk(1).                             "체크박스
INCLUDE STRUCTURE gt_temp_list1.
DATA zstat(5TYPE c,
       mblnr    TYPE matdoc-mblnr,
       mjahr    TYPE matdoc-mjahr,
       info(4)  TYPE c,            "ALV ROW COLOR
       colinfo  TYPE lvc_t_scol,   "ALV COLUMN COLOR
       style    TYPE lvc_t_styl.   "ALV CONTROL
DATA END OF gt_list1.


FORM alv_column_row_color .
  DATA l_mod TYPE i.

*--// ALV Row color
  l_mod sy-tabix MOD 2.
  IF l_mod 1.
    g_char cl_gui_resources=>list_col_key.                "color 4
  ELSE.
    g_char cl_gui_resources=>list_col_normal.             "color 2
  ENDIF.

  CONCATENATE g_constant         "constant
              g_char             "color
              g_off              "intensified 0=off 1=on
              g_off              "inverse     0=off 1=on
  INTO  gt_list1-info.             "see ABAP-Help for COLOR

  modify gt_list1.
ENDFORM.                    " ALV_COLUMN_ROW_COLOR


FORM alv_layout .
  CLEAR gs_layout.
  gs_layout-zebra      c_x.          " LINE COLOR
  gs_layout-cwidth_opt c_x.          " ALV 제어: 열너비최적화
  gs_layout-info_fname = 'INFO'.       " ROW COLOR.

ENDFORM.                    " ALV_LAYOUT

'SAP Program > ALV' 카테고리의 다른 글

ALV Cell Style, Cell Color 개별 지정  (0) 2017.03.30
ALV Change or method call 이후에 넣어야 하는 code  (0) 2017.03.20
SALV vs ALV  (0) 2017.03.03
ALV Grid current row 정보 가져오기  (0) 2017.03.03
SALV 기초 자료  (0) 2017.03.02

설정

트랙백

댓글

SALV vs ALV

SAP Program/ALV 2017. 3. 3. 15:52

salv가 class alv 보다 화면에 display 되는 속도가 빠르거나 하지는 않다.

하지만 salv 로 개발하면 몇줄 코딩하지 않고 간단하게 alv grid 를 만들수 있다.

물론 detail 한 control(Edit, on_changed event 등)을 하려면 class alv로 개발하는것이 맞다.


SALV도 Edit 작업은 가능하지만 굳이 edit 기능을 사용해야 한다면 class ALV로 작업하는게

맞다고 생각한다.

설정

트랙백

댓글

GRID 상에서 현재 선택된 row의 정보 반환

DATA: GL_ROW       TYPE I,         
           GL_VALUE     TYPE C,         
           GL_COL          TYPE I,
           GL_ROW_ID   TYPE LVC_S_ROW,         
           GL_COL_ID     TYPE LVC_S_COL,
           GL_ROW_NO TYPE LVC_S_ROID.   

CALL METHOD G_GRID->GET_CURRENT_CELL     
  IMPORTING       
    E_ROW     = GL_ROW       
    E_VALUE   = GL_VALUE       
    E_COL     = GL_COL       
    ES_ROW_ID = GL_ROW_ID       
    ES_COL_ID = GL_COL_ID       
    ES_ROW_NO = GL_ROW_NO.



설정

트랙백

댓글

SALV 관련 기초 자료.

간단하고 쉽게 설명되어 있음.


salv.pdf

salv2.pdf


설정

트랙백

댓글