ABAP-ALV1111

发布时间 2023-06-08 23:07:53作者: 往事只能回味---
*&---------------------------------------------------------------------*
*& Report  ZALV1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZALV1 MESSAGE-ID ZLSH.


INCLUDE ZHQ_01_14TOP.
INCLUDE ZHQ_01_14FORM.



START-OF-SELECTION.
  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE GT_CUSTOMER
    FROM ZCUSTOMER.

DATA I TYPE I VALUE 1.

    LOOP AT GT_CUSTOMER INTO GS_CUSTOMER.
        IF GS_CUSTOMER-ZSEX = 'M'.
            GS_CUSTOMER-ICON = ICON_GREEN_LIGHT.
        ELSE.
            GS_CUSTOMER-ICON = ICON_RED_LIGHT.
        ENDIF.

        GS_CUSTOMER-PRICE = I.

        MODIFY GT_CUSTOMER FROM GS_CUSTOMER.

        I = I + 1.

    ENDLOOP.



END-OF-SELECTION.

  IF GT_CUSTOMER IS NOT INITIAL.
      PERFORM BUILD_ALV.
  ELSE.
    MESSAGE S000 WITH '数据表为空' DISPLAY LIKE 'E'.
  ENDIF.
*&---------------------------------------------------------------------*
*&  包含                ZHQ_01_14TOP
*&---------------------------------------------------------------------*
TABLES ZCUSTOMER.


TYPES:BEGIN OF CUSTOMER,
    ZCUSTOMERID   TYPE ZCUSTOMERID,
    ZCOMPANYNAME  TYPE ZCOMPANYNAME,
    ZCREATEDATE   TYPE ZCREATEDATE,
    ZSCOPE        TYPE ZSCOPE,
    ZUSERID       TYPE ZUSERID,
    ZSEX          TYPE ZSEX,
END OF CUSTOMER.

TYPES:BEGIN OF GTY_CUSTOMER.
  INCLUDE TYPE CUSTOMER.
  TYPES:ICON  TYPE C LENGTH 4,
        CHECK TYPE C LENGTH 1,
        PRICE TYPE I,
        BOX TYPE C LENGTH 1,
END OF GTY_CUSTOMER.




DATA GT_CUSTOMER TYPE TABLE OF GTY_CUSTOMER.
DATA GS_CUSTOMER TYPE GTY_CUSTOMER.

DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV.

GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LAYOUT-ZEBRA = 'X'.
GS_LAYOUT-KEY_HOTSPOT = 'X'.
GS_LAYOUT-BOX_FIELDNAME = 'BOX'.
GS_LAYOUT-WINDOW_TITLEBAR = '客户应收账款报表'.
GS_LAYOUT-CONFIRMATION_PROMPT = 'X'.

DEFINE %%APPEND_FIELDCAT.

  CLEAR GS_FIELDCAT.
  GS_FIELDCAT-COL_POS   = &1.
  GS_FIELDCAT-FIELDNAME = &2.
  GS_FIELDCAT-OUTPUTLEN = &3.
  GS_FIELDCAT-SELTEXT_M = &4.


  CASE &2.
    WHEN 'ZCUSTOMERID'.
      GS_FIELDCAT-KEY = 'X'.

    WHEN 'CHECK'.
        GS_FIELDCAT-CHECKBOX = 'X'.
    WHEN 'PRICE'.
        GS_FIELDCAT-JUST = 'L'.
        GS_FIELDCAT-DO_SUM = 'X'.
        GS_FIELDCAT-HOTSPOT = 'X'.
    WHEN OTHERS.
  ENDCASE.



  APPEND GS_FIELDCAT TO GT_FIELDCAT.

END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*&  包含                ZHQ_01_14FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  BUILD_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_ALV .


  DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
  DATA GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

  %%APPEND_FIELDCAT:  '1' 'ZCUSTOMERID'   '10' '客户编号' ,
                      '2' 'ZCOMPANYNAME'  '30' '客户名称' ,
                      '3' 'ZCREATEDATE'   '10' '建档日期' ,
                      '4' 'ICON'          '10' '当前状态' ,
                      '5' 'CHECK'         '10' '选择' ,
                      '6' 'PRICE'         '10' '单价' .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
*     I_CALLBACK_PROGRAM                = ' '
*     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                         = GS_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_CUSTOMER
   EXCEPTIONS
     PROGRAM_ERROR                     = 1
     OTHERS                            = 2
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.


ENDFORM.                    " BUILD_ALV