zoukankan      html  css  js  c++  java
  • 宏的方式显示ALV

    *&---------------------------------------------------------------------*
    *& Report  Y_TEST_JAMES_ALV_FOR_JUN
    *&
    *&---------------------------------------------------------------------*
    *& Creator: JAMES ZONG
    *& This report IS FOR TEST
    *&---------------------------------------------------------------------*
    
    REPORT Y_TEST_JAMES_ALV_FOR_JUN.
    
    DATA: BEGIN OF gs_alv,
            new_flag TYPE c. "Indicator for New lines
        INCLUDE STRUCTURE SETLINET.
    DATA: END OF gs_alv.
    DATA: gt_alv LIKE TABLE OF gs_alv."All lines
    
    
    *& ------  ALV related DATA Definition ------
    TYPE-POOLS: VRM,SLIS,TRUXS.  " USED TO LISTBOX
    
    DATA: gt_field    LIKE TABLE OF lvc_s_fcat WITH HEADER LINE, "ALV fields
          gs_layout   TYPE lvc_s_layo,                           "ALV layout
          gw_events   TYPE slis_alv_event,
    
          gw_sort_lvc TYPE lvc_s_sort,
          gt_sort_lvc TYPE lvc_t_sort,
    
          gt_event    TYPE slis_t_event,                         "ALV-event
          gs_event    LIKE LINE OF gt_event.
    
    DATA:LR_GRID TYPE REF TO cl_gui_alv_grid. " ALV OBJECT
    
    DATA:
      LT_ITAB1 TYPE TABLE OF SETLINET.
    *& ------  ALV related DATA Definition ------
    
    * Macro definition of ALV
    
    DEFINE alv.
      gt_field-fieldname = &1.
      gt_field-coltext   = &2.
      gt_field-outputlen = &3.
      gt_field-no_zero   = &4.
      gt_field-ref_table = &5.
      gt_field-ref_field = &6.
      gt_field-edit      = &7.
      gt_field-checkbox  = &8.
    
      APPEND gt_field.
      CLEAR gt_field.
    
    END-OF-DEFINITION.
    
    *&---------------------------------------------------------------------*
    *&  SELECTION SCREEN
    *&---------------------------------------------------------------------*
    PARAMETERS: p_cont TYPE SETLINET-SETCLASS OBLIGATORY.
    
    SELECTION-SCREEN BEGIN OF BLOCK b13 WITH FRAME TITLE TEXT-t00.
    SELECTION-SCREEN COMMENT /1(75) TEXT-t01.
    SELECTION-SCREEN COMMENT /1(75) TEXT-t02.
    SELECTION-SCREEN COMMENT /1(75) TEXT-t03.
    SELECTION-SCREEN COMMENT /1(75) TEXT-t04.
    SELECTION-SCREEN COMMENT /1(75) TEXT-t05.
    SELECTION-SCREEN COMMENT /1(75) TEXT-t06.
    *SELECTION-SCREEN COMMENT /1(75) text-955.
    *SELECTION-SCREEN COMMENT /1(75) text-956.
    *SELECTION-SCREEN COMMENT /1(75) text-957.
    *SELECTION-SCREEN COMMENT /1(75) text-958.
    *SELECTION-SCREEN COMMENT /1(75) text-000.
    *SELECTION-SCREEN COMMENT /1(75) text-959.
    SELECTION-SCREEN END OF BLOCK b13.
    
    
    " Get entries from ZYJJ_VEHICLE
    
    SELECT * FROM SETLINET INTO CORRESPONDING FIELDS OF TABLE gt_alv
      WHERE SETCLASS = p_cont.
    
    " DISPLAY ALV
    
      gs_layout-cwidth_opt = 'X'.
      gs_layout-zebra = 'X'.
    
      alv 'SETCLASS' 'Display a' 10 '' '' '' '' ''.
      alv 'SUBCLASS' 'Display b' 10 '' '' '' '' ''.
      alv 'SETNAME' 'Display c' 10 '' '' '' '' ''.
      alv 'LANGU' 'Display d' 10 '' '' '' '' ''.
      alv 'LINEID' 'Display f' 16 '' '' '' '' ''.
    
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
        EXPORTING
          i_callback_program      = sy-repid
          is_layout_lvc           = gs_layout
          it_fieldcat_lvc         = gt_field[]
          i_grid_title            = ''
          i_callback_user_command = 'USER_COMMAND'
          "i_callback_pf_status_set = 'SET_PF_STATUS'
          i_save                  = 'A'
    *     it_events               = gt_event
        TABLES
          t_outtab                = gt_alv
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.

     之前用了fm 的方式去显示ALV, 接着用了OO 的方式也去实现了一下。今天用宏的方式来实现一下.

    用宏的方式的好处:

    解放了出力显示字段的制约,也就是说ALV出力显示的字段可以用自己来决定,比如可以随意的去改变字段的显示位置,长度,文本,等等等一些字段单位的属性。

     必须配合 【FM】CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'进行使用

  • 相关阅读:
    还敢说你是程序员?一律师闲着没事写了个app,用户量600万
    cnentos中进行bond网卡配置,一切配置无问题,就是ping不通宿主机
    他曾被腾讯、百度、金山、遨游等联合封杀,如今他发展的却更好
    百度命不久矣?他为什么这么说?
    html实现下拉框、switch开关、复选框效果
    javascript拖拽滑动条
    行内元素默认间距的4种解决办法
    Html5 video用法详解
    npm装包时-S和-D的区别
    css3实现背景模糊的三种方式
  • 原文地址:https://www.cnblogs.com/HARU/p/7629115.html
Copyright © 2011-2022 走看看