您的位置:首页 > 其它

如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色

2008-10-19 13:05 507 查看
在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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: