【ABAP】ALV练习

题目 要求ALV展现数据。数据自取。要求ALV实现双击某条数据使用弹出显示他的具体详细信息。

*&---------------------------------------------------------------------*
 *& Report ZLJH0911
 *&---------------------------------------------------------------------*
 *&
 *&---------------------------------------------------------------------*
 REPORT ZLJH0911.
 **********************************************************************
 *定义
 **********************************************************************
 type-POOLS: SLIS.
 
 TYPES:BEGIN OF TYP_01,
  MATNR TYPE MARA-MATNR,"物料编号
  MAKTX TYPE MAKT-MAKTX,"物料描述
 END OF TYP_01.
 
 DATA GT_01 TYPE STANDARD TABLE OF TYP_01.
 
 DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
 DATA GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
 
 DEFINE FIELDCAT.
 CLEAR GS_FIELDCAT.
 GS_FIELDCAT-COL_POS   = &1.
 GS_FIELDCAT-fieldname = &2.
 GS_FIELDCAT-SELTEXT_L = &3.
 APPEND GS_FIELDCAT TO GT_FIELDCAT.
 END-OF-DEFINITION.
 **********************************************************************
 *SELECTION SCREEN
 **********************************************************************
 
 
 **********************************************************************
 *AT SELECTION SCREEN
 **********************************************************************
 
 
 
 START-OF-SELECTION.
 SELECT MARA~MATNR
       MAKT~MAKTX
        FROM MARA
  INNER JOIN MAKT ON MARA~MATNR = MAKT~MATNR AND MAKT~SPRAS = SY-LANGU
  into TABLE GT_01 UP TO 50 ROWS.
 END-OF-SELECTION.
 
 
 IF GT_01 IS NOT INITIAL.
 PERFORM FRM_SHOW.
 ELSE.
 MESSAGE '无符合条件的数据' TYPE 'E' DISPLAY LIKE 'I'.
 ENDIF.
 
 
 *&---------------------------------------------------------------------*
 *&      Form  FRM_SHOW
 *&---------------------------------------------------------------------*
 *       text
 *----------------------------------------------------------------------*
 *  -->  p1        text
 *  <--  p2        text
 *----------------------------------------------------------------------*
 FORM frm_show .
 PERFORM FRM_FIELDCAT.
 PERFORM FRM_ALV_DISPLAY.
 ENDFORM.
 *&---------------------------------------------------------------------*
 *&      Form  FRM_FIELDCAT
 *&---------------------------------------------------------------------*
 *       text
 *----------------------------------------------------------------------*
 *  -->  p1        text
 *  <--  p2        text
 *----------------------------------------------------------------------*
 FORM frm_fieldcat .
 FIELDCAT '1' 'MATNR' '物料编号'.
 FIELDCAT '2' 'MAKTX' '物料描述'.
 ENDFORM.
 *&---------------------------------------------------------------------*
 *&      Form  FRM_ALV_DISPLAY
 *&---------------------------------------------------------------------*
 *       text
 *----------------------------------------------------------------------*
 *  -->  p1        text
 *  <--  p2        text
 *----------------------------------------------------------------------*
 FORM frm_alv_display .
 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
 *   I_INTERFACE_CHECK                 = ' '
 *   I_BYPASSING_BUFFER                = ' '
 *   I_BUFFER_ACTIVE                   = ' '
    I_CALLBACK_PROGRAM                = SY-CPROG"SY-REPID
 *   I_CALLBACK_PF_STATUS_SET          = ' '
    I_CALLBACK_USER_COMMAND           = 'FRM_USERCOMMAND'
 *   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                      =
 *   I_GRID_SETTINGS                   =
 *   IS_LAYOUT                         =
    IT_FIELDCAT                       = GT_FIELDCAT
 *   IT_EXCLUDING                      =
 *   IT_SPECIAL_GROUPS                 =
 *   IT_SORT                           =
 *   IT_FILTER                         =
 *   IS_SEL_HIDE                       =
 *   I_DEFAULT                         = 'X'
 *   I_SAVE                            = ' '
 *   IS_VARIANT                        =
 *   IT_EVENTS                         =
 *   IT_EVENT_EXIT                     =
 *   IS_PRINT                          =
 *   IS_REPREP_ID                      =
 *   I_SCREEN_START_COLUMN             = 0
 *   I_SCREEN_START_LINE               = 0
 *   I_SCREEN_END_COLUMN               = 0
 *   I_SCREEN_END_LINE                 = 0
 *   I_HTML_HEIGHT_TOP                 = 0
 *   I_HTML_HEIGHT_END                 = 0
 *   IT_ALV_GRAPHICS                   =
 *   IT_HYPERLINK                      =
 *   IT_ADD_FIELDCAT                   =
 *   IT_EXCEPT_QINFO                   =
 *   IR_SALV_FULLSCREEN_ADAPTER        =
 * IMPORTING
 *   E_EXIT_CAUSED_BY_CALLER           =
 *   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    t_outtab                          = GT_01EXCEPTIONS
 *   PROGRAM_ERROR                     = 1
 *   OTHERS                            = 2
          .
 IF sy-subrc <> 0.
 * Implement suitable error handling here
 ENDIF.
 
 ENDFORM.
 
 *----------------------------------------------------------------------*
 *       FORM  FRM_USERCOMMAND
 *----------------------------------------------------------------------*
 *       text
 *----------------------------------------------------------------------*
 *  -->  p1        TEXT
 *  <--  p2        text
 *----------------------------------------------------------------------*
 
 FORM FRM_USERCOMMAND USING P_CODE TYPE SYUCOMM
                     CHANGING SEL TYPE SLIS_SELFIELD.
 DATA LT_TAB TYPE STANDARD TABLE OF TYP_01.
 CASE P_CODE.
   WHEN '&IC1'.
  READ TABLE GT_01 INTO DATA(GS_01INDEX SEL-tabindex.
  SELECT  *
    FROM MARA
    INTO TABLE @DATA(GT_OUT)
    WHERE MATNR = @GS_01-MATNR.
   CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
     EXPORTING
       I_TITLE                       = '详细信息'
 *      I_SELECTION                   = 'X'
 *      I_ALLOW_NO_SELECTION          =
       I_ZEBRA                       = 'X'
 *      I_SCREEN_START_COLUMN         = 50
 *      I_SCREEN_START_LINE           = 5
 *      I_SCREEN_END_COLUMN           = 200
 *      I_SCREEN_END_LINE             = 50
 *      I_CHECKBOX_FIELDNAME          =
 *      I_LINEMARK_FIELDNAME          =
 *      I_SCROLL_TO_SEL_LINE          = 'X'
       i_tabname                     = 'MARA'
       I_STRUCTURE_NAME              = 'MARA'
 *      IT_FIELDCAT                   =
 *      IT_EXCLUDING                  =
 *      I_CALLBACK_PROGRAM            =
 *      I_CALLBACK_USER_COMMAND       =
 *      IS_PRIVATE                    =
 *    IMPORTING
 *      ES_SELFIELD                   =
 *      E_EXIT                        =
     tables
       t_outtab                      = gt_out
    EXCEPTIONS
      PROGRAM_ERROR                 = 1
      OTHERS                        = 2
             .
   IF sy-subrc <> 0.
 * Implement suitable error handling here
   ENDIF.
 
 ENDCASE.
 
 ENDFORM.
【ABAP】ALV练习

给TA打赏
共{{data.count}}人
人已打赏
ABAPSAP

【ABAP】通过GUI端创建透明表

2019-8-7 22:11:16

ABAPSAP

【ABAP】ALV练习1

2019-9-12 14:40:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索