美文网首页
OO ALV与FUNCTION ALV

OO ALV与FUNCTION ALV

作者: 阿努比斯1117 | 来源:发表于2018-01-29 17:03 被阅读0次

OO ALV


image.png

OOALV中在AT SELECTION-SCREEN事件下使用SET_TABLE_FOR_FIRST_DISPLAY可以直接导出ALV,不用callscreen

*&---------------------------------------------------------------------*
*& Report ZMM004
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMM004.

TABLES:T001.

DATA: BEGIN OF ITAB OCCURS 0,
      BUKRS LIKE T001-BUKRS,
      BUTXT LIKE T001-BUTXT,
      ORT01 LIKE T001-ORT01,
      END OF ITAB.

DATA:  GT_FIELDCAT   TYPE LVC_T_FCAT,
       GS_FIELDCAT   TYPE LVC_S_FCAT,
       GS_LAYOUT     TYPE LVC_S_LAYO,
       GT_EXCLUDE    TYPE UI_FUNCTIONS.

DATA: CON_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
      ALV_TABLES TYPE REF TO CL_GUI_ALV_GRID,
      CON_ALV_TABLES TYPE REF TO CL_GUI_CONTAINER.

DEFINE : ADD_FIELD.
  GS_FIELDCAT-FIELDNAME = &1.
  GS_FIELDCAT-COLTEXT = &2.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.

SELECTION-SCREEN BEGIN OF BLOCK T1 WITH FRAME .
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS.
SELECTION-SCREEN END OF BLOCK T1.

START-OF-SELECTION.

  PERFORM GET_AND_PROCESS_DATA.
  CALL SCREEN 2000.

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  GET_AND_PROCESS_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_AND_PROCESS_DATA .

  SELECT BUKRS BUTXT ORT01
    INTO CORRESPONDING FIELDS OF TABLE ITAB
  FROM T001
  WHERE BUKRS IN S_BUKRS.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Module  STATUS_2000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_2000 OUTPUT.
  SET PF-STATUS '2000'.
*  SET TITLEBAR 'xxx'.
  PERFORM SET_ALV_FIELDS.
  PERFORM SET_ALV_LAYOUT CHANGING GS_LAYOUT.

   CHECK CON_SPLITTER IS INITIAL.
  "創建容器
  CREATE OBJECT CON_SPLITTER
    EXPORTING
      PARENT  = CL_GUI_CONTAINER=>SCREEN0
      ROWS    = 1
      COLUMNS = 1.
  "創建ALV控件
  CON_ALV_TABLES = CON_SPLITTER->GET_CONTAINER( ROW = 1 COLUMN = 1 ).
  CREATE OBJECT ALV_TABLES
    EXPORTING
      I_PARENT = CON_ALV_TABLES.

  CALL METHOD ALV_TABLES->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
*     I_BUFFER_ACTIVE               =
*     I_BYPASSING_BUFFER            =
*     I_CONSISTENCY_CHECK           =
*     I_STRUCTURE_NAME              =
*     IS_VARIANT                    =
      I_SAVE                        = 'X'
*     I_DEFAULT                     = 'X'
      IS_LAYOUT                     = GS_LAYOUT
*     IS_PRINT                      =
*     IT_SPECIAL_GROUPS             =
 "     IT_TOOLBAR_EXCLUDING          = GT_EXCLUDE
*     IT_HYPERLINK                  =
*     IT_ALV_GRAPHICS               =
*     IT_EXCEPT_QINFO               =
*     IR_SALV_ADAPTER               =
    CHANGING
      IT_OUTTAB                     = ITAB[]
      IT_FIELDCATALOG               = GT_FIELDCAT
*     IT_SORT                       =
*     IT_FILTER                     =
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Form  SET_ALV_FIELDS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SET_ALV_FIELDS .
  ADD_FIELD 'BUKRS' '公司'.
  ADD_FIELD 'BUTXT' '名称'.
  ADD_FIELD 'ORT01' 'ORT01'.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  SET_ALV_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GS_LAYOUT  text
*----------------------------------------------------------------------*
FORM SET_ALV_LAYOUT  CHANGING P_GS_LAYOUT TYPE LVC_S_LAYO.
  P_GS_LAYOUT-ZEBRA = 'X'.
  P_GS_LAYOUT-SMALLTITLE = 'X'.
  P_GS_LAYOUT-SEL_MODE = 'A'.
  P_GS_LAYOUT-GRID_TITLE = 'TEST'.
  P_GS_LAYOUT-CWIDTH_OPT = 'X'.
ENDFORM.

FUNCTION ALV


image.png
*&---------------------------------------------------------------------*
*& Report ZMM005
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMM005.

TABLES:T001.

DATA: BEGIN OF ITAB OCCURS 0,
      BUKRS LIKE T001-BUKRS,
      BUTXT LIKE T001-BUTXT,
      ORT01 LIKE T001-ORT01,
      END OF ITAB.

DATA:  GT_FIELDCAT   TYPE LVC_T_FCAT,
       GS_FIELDCAT   TYPE LVC_S_FCAT,
       GS_LAYOUT     TYPE LVC_S_LAYO.

DEFINE : ADD_FIELD.
  GS_FIELDCAT-FIELDNAME = &1.
  GS_FIELDCAT-COLTEXT = &2.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.

SELECTION-SCREEN BEGIN OF BLOCK T1 WITH FRAME .
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS.
SELECTION-SCREEN END OF BLOCK T1.

START-OF-SELECTION.

  PERFORM GET_AND_PROCESS_DATA.
  PERFORM SET_ALV_DATAS.
  PERFORM DISPLAY_ALV.


END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  GET_AND_PROCESS_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_AND_PROCESS_DATA .

  SELECT BUKRS BUTXT ORT01
    INTO CORRESPONDING FIELDS OF TABLE ITAB
  FROM T001
  WHERE BUKRS IN S_BUKRS.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  SET_ALV_DATAS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SET_ALV_DATAS .
  SET PF-STATUS 'PF_STATUS01'.

  ADD_FIELD 'BUKRS' '公司'.
  ADD_FIELD 'BUTXT' '名称'.
  ADD_FIELD 'ORT01' 'ORT01'.

    GS_LAYOUT-ZEBRA = 'X'.
    GS_LAYOUT-SMALLTITLE = 'X'.
    GS_LAYOUT-SEL_MODE = 'A'.
    GS_LAYOUT-GRID_TITLE = 'TEST'.
    GS_LAYOUT-CWIDTH_OPT = 'X'.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                =
*   I_BUFFER_ACTIVE                   =
    I_CALLBACK_PROGRAM                = SY-REPID
*    I_CALLBACK_PF_STATUS_SET         = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
    I_GRID_TITLE                      = 'TEST'
*   I_GRID_SETTINGS                   =
    IS_LAYOUT_LVC                     = GS_LAYOUT
    IT_FIELDCAT_LVC                   = GT_FIELDCAT
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS_LVC             =
*   IT_SORT_LVC                       =
*   IT_FILTER_LVC                     =
*   IT_HYPERLINK                      =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT_LVC                      =
*   IS_REPREP_ID_LVC                  =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
*   IT_ALV_GRAPHICS                   =
*   IT_EXCEPT_QINFO_LVC               =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    T_OUTTAB                          = ITAB
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.

相关文章

  • OO ALV与FUNCTION ALV

    OO ALV OOALV中在AT SELECTION-SCREEN事件下使用SET_TABLE_FOR_FIRST...

  • 2019-11-07关于oo alv后台job问题 alv不展示

    在oo alv执行后台job的时候今天发现一个问题 就是如果你前台执行这个oo alv 程序会出来,但是如果后台运...

  • abap oo模板代码

    OO ALV是面向对象的ALV,在使用之前我们需创建一个control容器(屏幕),在通过CUSTOM_CONTA...

  • SAP ABAP ALV报表(一)

    01 ALV报表功能介绍02 ALV报表开发步骤03 ALV报表开发实战 01 ALV报表功能介绍 AVL报表是A...

  • ABAP-ALV-OO

    OOALV 行、列和单元格颜色设置 OOALV 行、列和单元格颜色设置 OOALV中的CHECKBOX字段挺麻烦的...

  • ABAP-ALV-GRID

    ALV简单实例 ABAP ALV使用实例---sflight航班表及其效果界面ABAP:ALV List报表最后页...

  • SAP ABAP ALV报表(二)

    确定ALV的标题栏 确定ALV的状态栏 确定ALV的按钮 确定ALV按钮的响应事件 添加热点 添加热点的响应事件 ...

  • 《SAP ABAP 开发指南》第七单元前五课时

    程序源代码 选择屏幕 Write Reuse alv ALV Grid SALV

  • abap alv 事件

    alv 事件的创建使用 在实际开发中经常要用到 事件 event,在各个alv中的具体使用如下 REUSE_ALV...

  • ALV的控件使用

    1简单控件创建ALV报表: 实现: 自定义输字段ALV控件实例: 以下输出结果: 在屏幕上建立ALV控件,使用SC...

网友评论

      本文标题:OO ALV与FUNCTION ALV

      本文链接:https://www.haomeiwen.com/subject/mamxzxtx.html