如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
在ALV報表設計有時候需要根據一定條件將特定的單元顯示成特定的顏色,具體實現步驟如下:
1. 在需要顯示的內表中添加新的字段,字段類型為lvc_t_scol
2. 根據條件設置顏色數據;
3. 設置layout-coltab_fieldname的數據指定顯示顏色的字段.
代碼如下:(注意紅色部分)
REPORT? z_alv_color.
TYPE-POOLS: slis.
DATA: BEGIN OF it_flight OCCURS 0,
?????? carrid? LIKE sflight-carrid,
?????? connid?? LIKE sflight-connid,
?????? fldate?? LIKE sflight-fldate,
?????? seatsmax LIKE sflight-seatsmax,
?????? seatsocc LIKE sflight-seatsocc,
?????? color TYPE lvc_t_scol,
????? END OF it_flight.
DATA: it_fieldcat TYPE? slis_t_fieldcat_alv,
????? layout TYPE? slis_layout_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
? EXPORTING
??? i_program_name???????? = sy-repid
??? i_internal_tabname???? = 'IT_FLIGHT'
??? i_inclname???????????? = sy-repid
? CHANGING
??? ct_fieldcat??????????? = it_fieldcat
? EXCEPTIONS
??? inconsistent_interface = 1
??? program_error????????? = 2.
SELECT? carrid
?????? connid
?????? fldate
?????? seatsmax
?????? seatsocc
FROM sflight
INTO CORRESPONDING FIELDS OF TABLE it_flight
UP TO 20 ROWS.
DATA: col TYPE lvc_s_scol,
????? coltab TYPE lvc_t_scol,
color TYPE lvc_s_colo.
color-col = '6'.
color-int = '0'.
color-inv = '0'.
LOOP AT it_flight.
? IF it_flight-seatsocc Eq 0.
??? col-fname = 'SEATSOCC'.
??? col-color = color.
??? APPEND col TO coltab.
??? CLEAR col.
??? it_flight-color = coltab.
??? MODIFY? it_flight.
?ENDIF.
ENDLOOP.
layout-coltab_fieldname = 'COLOR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
? EXPORTING
??? i_callback_program = sy-repid
??? is_layout????????? = layout
??? it_fieldcat??????? = it_fieldcat
? TABLES
??? t_outtab?????????? = it_flight
? EXCEPTIONS
??? program_error????? = 1.
總結
以上是生活随笔為你收集整理的如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SD功能增强业务说明书
- 下一篇: SAP 物料订单创建、下达、报工、收货与