matinal:ABAP GRID LVS

该代码实现了一个SAPALV报表,用于显示学生信息。在SELECT-OPTIONS中过滤数据,对数据进行颜色和图标设置,并定义了字段类别、布局、排序、过滤和事件处理。用户可以与表格交互,如点击学生代码进入详细信息或下载数据。
REPORT ZBC_ALV_01 MESSAGE-ID ZBC.

INCLUDE ZBC_ALV_01TOP.
INCLUDE ZBC_ALV_01FORM.

START-OF-SELECTION.
  PERFORM get_data.
END-OF-SELECTION.
  IF GT_STU IS NOT INITIAL.
      PERFORM display_data.
  ELSE.
      MESSAGE S001 WITH 'STUDENT INFO . iS EMPTY!' DISPLAY LIKE 'E'.
  ENDIF.
ZBC_ALV_01TOP
*&---------------------------------------------------------------------*
*&  Include           ZBC_ALV_01TOP
*&---------------------------------------------------------------------*

TYPE-POOLs: SLIS .

TYPES: BEGIN OF GTY_STU .
TYPES: BOX TYPE C LENGTH 1.
  INCLUDE STRUCTURE ZSTU .
TYPES: ICON TYPE C LENGTH 4 .  "icon
TYPES: CHECK TYPE C LENGTH 1 . "checkbox
TYPES: LINE_COLOR TYPE C LENGTH 4 . "coloer
TYPES: FIELD_COLOR TYPE LVC_T_SCOL.  " filed color
TYPES: END OF GTY_STU .

DATA: GS_VARIANT TYPE DISVARIANT.

DATA GT_STU TYPE TABLE OF GTY_STU .
DATA GS_STU TYPE GTY_STU .

DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV .

DATA GT_FIELDCAT TYPE slis_t_fieldcat_alv .
DATA GS_FIELDCAT TYPE slis_fieldcat_alv .

DATA GT_SORT TYPE slis_t_sortinfo_alv.
DATA GS_SORT TYPE slis_sortinfo_alv.

DATA GT_FILTER TYPE slis_t_filter_alv.
DATA GS_FILTER TYPE slis_filter_alv.

DATA GT_EVENTS TYPE slis_t_event.
DATA GS_EVENTS TYPE slis_alv_event.



** marco at most 9 parameters
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 'ZCODE'.
        GS_FIELDCAT-KEY = 'X'.
      WHEN 'ICON' .
        GS_FIELDCAT-ICON = 'X'.
      WHEN 'CHECK'.
        GS_FIELDCAT-CHECKBOX = 'X'.
      WHEN 'WEIGHT'.
        GS_FIELDCAT-DO_SUM = 'X' .
        GS_FIELDCAT-HOTSPOT = 'X' .
*        GS_FIELDCAT-QUANTITY = 'KG' .
        GS_FIELDCAT-qfieldname = 'ZUNIT' .
        GS_FIELDCAT-EMPHASIZE =  'C601' .
      WHEN 'ZUNIT'.
        GS_FIELDCAT-EMPHASIZE =  'C600' .

    ENDCASE.

    APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.

SELECT-OPTIONS R_ZCODE FOR GS_STU-ZSCHOOL.
ZBC_ALV_01FORM
*&---------------------------------------------------------------------*
*&  Include           ZBC_ALV_01FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data .
  DATA LS_SCOL TYPE LVC_S_SCOL.
    SELECT *
      FROM ZSTU
      INTO CORRESPONDING FIELDS OF TABLE GT_STU
      WHERE ZSCHOOL IN R_ZCODE.

    LOOP AT GT_STU INTO GS_STU.
     "icon setting
      IF GS_STU-SEX = 'F'.
        GS_STU-ICON = ICON_GREEN_LIGHT.
      ELSE.
        GS_STU-ICON = ICON_RED_LIGHT.
      ENDIF.
     " line color
      IF GS_STU-SEX IS INITIAL.
        GS_STU-LINE_COLOR = 'C611'.
      ENDIF.

      "cell color
      IF GS_STU-SEX IS INITIAL.
        CLEAR LS_SCOL .
        LS_SCOL-FNAME = 'ZCODE'.  "filed
        LS_SCOL-COLOR-COL = 5 .  "color
        LS_S
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值