ALV標準顯示內表數據--復制

来源:互联网 发布:淘宝手机秒杀神器 编辑:程序博客网 时间:2024/06/15 10:00

GT_LAYOUT-LIGHTS_FIELDNAME = 'MTYPE'.  設定燈字段
====================================
TYPE-POOLS: SLIS.
DATA:GT_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA:T_EDITPOS      TYPE TABLE OF CDRED WITH HEADER LINE.
DATA:WA_T_EDITPOS   TYPE CDRED.
DATA:ET_RETURN      TYPE TABLE OF BAPIRET2 WITH HEADER LINE.
DATA:T_FIELDCAT     TYPE SLIS_T_FIELDCAT_ALV,
     W_FILEDCAT     LIKE LINE OF T_FIELDCAT.
DATA:T_LISTHEADER   TYPE SLIS_T_LISTHEADER,
     W_LISTHEADER   LIKE LINE OF T_LISTHEADER.
DATA:T_EVENT        TYPE SLIS_T_EVENT,
     W_EVENT        LIKE LINE OF T_EVENT.
DATA:T_SORT         TYPE SLIS_T_SORTINFO_ALV.
DATA:X_SORT         LIKE LINE OF T_SORT.

 

PERFORM SUB_CALL_ALV_FUNCTION.                 "ALV SHOW

 

*-------------------------------ALV------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  SUB_CALL_ALV_FUNCTION
*&---------------------------------------------------------------------*
*&      Description: Show ALV Format
*----------------------------------------------------------------------*
FORM SUB_CALL_ALV_FUNCTION.

* Set ALV parameters for the program
  PERFORM SUB_SET_PARAMETERS.
* add SORT
  PERFORM SUB_SET_SORT.
* add event
  PERFORM SUB_SET_EVENT.
** add the title
*  PERFORM SUB_SET_REPORT_TITLE.
* Call ALV list function
  PERFORM SUB_CALL_ALV_WITH_LIST TABLES IT_RESULT.

ENDFORM.                    "SUB_CALL_ALV_FUNCTION

*&--------------------------------------------------------------------*
*&      Form:       SUB_SET_PARAMETERS                                *
*&--------------------------------------------------------------------*
*&      Description:Set ALV parameters                                *
*&--------------------------------------------------------------------*
FORM SUB_SET_PARAMETERS.

* Set the fields which will be displayed into T_ FIELDCAT
    PERFORM SUB_FIELD_DES USING 'FKTYP' 'IT_RESULT' '' ''  '' TEXT-H01.
    PERFORM SUB_FIELD_DES USING 'VKORG' 'IT_RESULT' '' ''  '' TEXT-H02.
    PERFORM SUB_FIELD_DES USING 'VTWEG' 'IT_RESULT' '' ''  '' TEXT-H03.
    PERFORM SUB_FIELD_DES USING 'SPART' 'IT_RESULT' '' ''  '' TEXT-H04.
    PERFORM SUB_FIELD_DES USING 'FKDAT' 'IT_RESULT' '' ''  '' TEXT-H05.
    PERFORM SUB_FIELD_DES USING 'KUNNR' 'IT_RESULT' '' ''  '' TEXT-H06.
    PERFORM SUB_FIELD_DES USING 'NAME1' 'IT_RESULT' '' ''  '' TEXT-H07.
    PERFORM SUB_FIELD_DES USING 'FKART' 'IT_RESULT' '' ''  '' TEXT-H08.
    PERFORM SUB_FIELD_DES USING 'LLAND' 'IT_RESULT' '' ''  '' TEXT-H09.

    PERFORM SUB_FIELD_DES USING 'DN_VBELN' 'IT_RESULT' '' ''  '' TEXT-H10.
    PERFORM SUB_FIELD_DES USING 'DN_ITEM'  'IT_RESULT' '' ''  '' TEXT-H11.
    PERFORM SUB_FIELD_DES USING 'SO_VBELN' 'IT_RESULT' '' ''  '' TEXT-H12.
    PERFORM SUB_FIELD_DES USING 'SO_ITEM'  'IT_RESULT' '' ''  '' TEXT-H13.

    PERFORM SUB_FIELD_DES USING 'P_MATNR' 'IT_RESULT' '' ''  '' TEXT-H14.
    PERFORM SUB_FIELD_DES USING 'MATNR'   'IT_RESULT' '' ''  '' TEXT-H15.
    PERFORM SUB_FIELD_DES USING 'MAKTX'   'IT_RESULT' '' ''  '' TEXT-H16.
    PERFORM SUB_FIELD_DES USING 'KDMAT'   'IT_RESULT' '' ''  '' TEXT-H17.
    PERFORM SUB_FIELD_DES USING 'ZMENG'   'IT_RESULT' '' ''  '' TEXT-H18.
    PERFORM SUB_FIELD_DES USING 'DMBTR'   'IT_RESULT' '' ''  '' TEXT-H19.

***    PERFORM SUB_FIELD_DES USING 'U_PRICE' 'IT_RESULT' '' ''  '' TEXT-H20.
    PERFORM SUB_FIELD_DES USING 'KBETR'   'IT_RESULT' '' ''  '' TEXT-H20.
    PERFORM SUB_FIELD_DES USING 'KPEIN'   'IT_RESULT' '' ''  '' TEXT-H27.

    PERFORM SUB_FIELD_DES USING 'KWERT'   'IT_RESULT' '' ''  '' TEXT-H21.

    PERFORM SUB_FIELD_DES USING 'TRATE'   'IT_RESULT' '' ''  '' TEXT-H28.
    PERFORM SUB_FIELD_DES USING 'TAMOUNT' 'IT_RESULT' '' ''  '' TEXT-H29.

    PERFORM SUB_FIELD_DES USING 'WAERS'   'IT_RESULT' '' ''  '' TEXT-H22.
    PERFORM SUB_FIELD_DES USING 'KURSK'   'IT_RESULT' '' ''  '' TEXT-H23.
    PERFORM SUB_FIELD_DES USING 'LOC_CUR' 'IT_RESULT' '' ''  '' TEXT-H24.
    PERFORM SUB_FIELD_DES USING 'U_COST'  'IT_RESULT' '' ''  '' TEXT-H25.
    PERFORM SUB_FIELD_DES USING 'L_WAERS' 'IT_RESULT' '' ''  '' TEXT-H26.

ENDFORM.                    "SUB_SET_PARAMETERS

*&---------------------------------------------------------------------*
*&      Form  SUB_SET_SORT
*&---------------------------------------------------------------------*
FORM SUB_SET_SORT .

***  X_SORT-spos = '1'.
***  X_SORT-fieldname = 'FKTYP'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '2'.
***  X_SORT-fieldname = 'VKORG'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '3'.
***  X_SORT-fieldname = 'VTWEG'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '4'.
***  X_SORT-fieldname = 'SPART'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '5'.
***  X_SORT-fieldname = 'FKDAT'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '6'.
***  X_SORT-fieldname = 'KUNNR'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '7'.
***  X_SORT-fieldname = 'NAME1'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '8'.
***  X_SORT-fieldname = 'FKART'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.
***
***  X_SORT-spos = '9'.
***  X_SORT-fieldname = 'LLAND'.
**** X_SORT-UP = 'X'.
***  X_SORT-down = 'X'.
***  APPEND X_SORT TO T_SORT.

ENDFORM.                        "SUB_SET_SORT

*&---------------------------------------------------------------------*
*&      Form  SUB_SET_EVENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SUB_SET_EVENT .
*  DATA: C_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME
*                               VALUE 'SUB_TOP_OF_PAGE' .
*  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
*    EXPORTING
*      I_LIST_TYPE = 0
*    IMPORTING
*      ET_EVENTS   = T_EVENT.
*  READ TABLE T_EVENT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
*  INTO W_EVENT .
*  IF SY-SUBRC = 0 .
*    W_EVENT-FORM = C_FORMNAME_END_OF_PAGE .
*    APPEND W_EVENT TO T_EVENT . "add form 'TOP_OF_PAGE' to the events,
*  ENDIF.                        "perform the FORM 'to_of_page' .
ENDFORM.                        "SUB_SET_EVENT

*&--------------------------------------------------------------------*
*&      Form:       SUB_CALL_ALV_WITH_LIST                            *
*&--------------------------------------------------------------------*
*&      Description:call ALV list function                            *
*&--------------------------------------------------------------------*
FORM SUB_CALL_ALV_WITH_LIST TABLES T_RESULT.

  IF T_RESULT[] IS INITIAL."no data
*   Display message 'no data
    MESSAGE S000(ZBA) WITH 'NO Data!'.
  ELSE.
*    SORT IT_RESULT BY PRUEFLOS MATNR.
*  You can call ALV list or ALV Grid list(one of the two functions)
*  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
*  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_STRUCTURE_NAME               =
**   IS_LAYOUT                      =
*    IT_FIELDCAT                    = T_FIELDCAT
**   IT_EXCLUDING                   =
**   IT_SPECIAL_GROUPS              =
*    IT_SORT                        = T_SORT
**   IT_FILTER                      =
**   IS_SEL_HIDE                    =
**   I_DEFAULT                      = 'X'
*    I_SAVE                         = 'A'
**   IS_VARIANT                     =
**   IT_EVENTS                      = T_EVENT
**   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
** IMPORTING
**   E_EXIT_CAUSED_BY_CALLER        =
**   ES_EXIT_CAUSED_BY_USER         =
*    TABLES
*      T_OUTTAB                     = T_RESULT
*   EXCEPTIONS
*     PROGRAM_ERROR                 = 1
*     OTHERS                        = 2  .
*  IF SY-SUBRC NE 0.
*  ENDIF.
*------------------------------------------------
*   The report will call ALV GRID list to display data
    GT_LAYOUT-ZEBRA = 'X'.
    GT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
        I_CALLBACK_PROGRAM                = SY-REPID  "--SY-CPROG
*     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                      =
*     I_GRID_SETTINGS                   =
        IS_LAYOUT                         = GT_LAYOUT
        IT_FIELDCAT                       = T_FIELDCAT
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
        IT_SORT                           = T_SORT
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     I_DEFAULT                         = 'X'
        I_SAVE                            = 'A'
*     IS_VARIANT                        =
        IT_EVENTS                         = T_EVENT
*     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
*     IT_ALV_GRAPHICS                   =
*     IT_HYPERLINK                      =
*     IT_ADD_FIELDCAT                   =
*     IT_EXCEPT_QINFO                   =
*     I_HTML_HEIGHT_TOP                 =
*     I_HTML_HEIGHT_END                 =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          = T_RESULT
     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.
  ENDIF.
ENDFORM.            "SUB_CALL_ALV_WITH_LIST

*&--------------------------------------------------------------------*
*&      Form:         SUB_FIELD_DES                                   *
*&--------------------------------------------------------------------*
*&      Description:  Set the fields which will be displayed          *
*&--------------------------------------------------------------------*
*&      L_FIELDNAME---must upper case                                 *
*&      L_TABNAME  ---internal table name                             *
*&      L_KEY      ---column with key-color AND frozen                *
*&      L_CHECKBOX ---the column is checkbox                          *
*&      L_INPUT    ---the column can be edited in ALV list            *
*&      L_SELTEX_L ---column Long description of title                *
*&--------------------------------------------------------------------*
FORM SUB_FIELD_DES USING L_FIELDNAME TYPE C
                         L_TABNAME TYPE C
                         L_KEY TYPE C
                         L_CHECKBOX TYPE C
                         L_INPUT TYPE C
                         L_SELTEX_L TYPE C.  "L_OUTPUTLEN TYPE I
  CLEAR W_FILEDCAT.
  W_FILEDCAT-FIELDNAME = L_FIELDNAME."must upper case
  W_FILEDCAT-TABNAME   = L_TABNAME.  "internal table name
  W_FILEDCAT-KEY       = L_KEY.      "column with key-color AND frozen
  W_FILEDCAT-CHECKBOX  = L_CHECKBOX. "the column is checkbox
  W_FILEDCAT-INPUT     = L_INPUT.    "the column can be edited in ALV
  W_FILEDCAT-SELTEXT_L = L_SELTEX_L. "column Long title
* W_FILEDCAT-SELTEXT_M = 'Sel'    .  "column Medium title
* W_FILEDCAT-SELTEXT_S = 'Sel'    .  "column short title
*  W_FILEDCAT-OUTPUTLEN = L_OUTPUTLEN.
  APPEND W_FILEDCAT TO T_FIELDCAT.

ENDFORM.                    "SUB_FIELD_DES

原创粉丝点击