不说了,该离职了,B站视频源码,侵权删。
REPORT zts_xsy_test14 MESSAGE-ID eu.
INCLUDE zts_xsy_test14top.
INCLUDE zts_xsy_test14form.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
IF gt_student IS NOT INITIAL.
PERFORM display_data.
ELSE.
MESSAGE s001 DISPLAY LIKE 'E'.
ENDIF.
*&---------------------------------------------------------------------*
*& 包含 ZTS_XSY_TEST14TOP
*&---------------------------------------------------------------------*
*类型池
TYPE-POOLS slis.
TYPES: BEGIN OF gty_student.
TYPES: box TYPE c LENGTH 1.
INCLUDE STRUCTURE zbc_xsy_student.
TYPES: icon TYPE c LENGTH 4. "图标
TYPES: check TYPE c LENGTH 1. "复选框
*TYPES: line_color TYPE c LENGTH 4. "行颜色
TYPES: FIELD_COLOR TYPE LVC_T_SCOL. "单元格颜色
TYPES: END OF gty_student.
DATA gt_student TYPE TABLE OF gty_student.
DATA gs_student TYPE gty_student.
*FUNCTION ALV
DATA gt_fieldcat TYPE slis_t_fieldcat_alv."列属性
DATA gs_fieldcat TYPE slis_fieldcat_alv.
DATA gs_layout TYPE slis_layout_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. "CALLBACK事件
DATA gs_events TYPE slis_alv_event.
*DATA pr_document TYPE .
*宏 每个宏中最多可以 定义9个参数
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'. "复选框
* GS_FIELDCAT-EDIT = 'X'."可选择
WHEN 'WEIGH'.
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 s_zcode FOR gs_student-zcode.
*&---------------------------------------------------------------------*
*& 包含 ZTS_XSY_TEST14FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .
DATA LS_SCOL TYPE LVC_S_SCOL.
SELECT *
FROM zbc_xsy_student
INTO CORRESPONDING FIELDS OF TABLE gt_student
WHERE zcode IN s_zcode.
LOOP AT gt_student INTO gs_student.
* 图标
IF gs_student-sex = 'F'.
gs_student-icon = icon_green_light." '@05@'.
ELSE.
gs_student-icon = icon_red_light.
ENDIF.
* 颜色
*行颜色
* IF GS_STUDENT-SEX IS INITIAL.
* GS_STUDENT-LINE_COLOR = 'C600'. "性别为空,设置底纹颜色
* ENDIF.
*单元格颜色
*1.性别字段增加颜色
IF GS_STUDENT-SEX IS INITIAL.
CLEAR LS_SCOL.
LS_SCOL-FNAME = 'SEX'. "字段名
LS_SCOL-COLOR-COL = 6. "颜色
LS_SCOL-COLOR-INT = 0. "加重
LS_SCOL-COLOR-INV =