您的位置:首页 > 其它

ALV GRID颜色设置

2008-10-18 14:18 232 查看


ALV的颜色分为行的颜色、列的颜色和CELL的颜色。

1.行的颜色
需要在要显示的内表中添加一个字段放置颜色信息,比如COLOR(4)TYPEC.
ITAB-COLOR='C700'.

此外,还要根据采用的FM方式还是CLASS方式设置一下显示颜色

FM方式:LS_LAYOUT-INFO_FIELDNAME='COLOR'.


CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT=LS_LAYOUT
IT_FIELDCAT=LT_FIELDCAT
TABLES
T_OUTTAB=ITAB.


CLASS方式:SLA-INFO_FNAME='COLOR'.
CALLMETHODGO_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_VARIANT=GS_VARIANT
I_SAVE='A'
IS_LAYOUT=SLA
CHANGING
IT_OUTTAB=ITAB[]
IT_FIELDCATALOG=GT_FIELDCAT[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION=1
PROGRAM_ERROR=2
TOO_MANY_LINES=3
OTHERS=4.


2.列的颜色
设置FIELDCAT就可以了,如:TMP_FIELDCAT-EMPHASIZE='C500'."列的颜色

3.CELL的颜色
需要在要显示的内表添加一个字段:cellcolorsTYPElvc_t_scol.
ls_cellcolor-color-col='5'.
ls_cellcolor-color-int='1'.
ls_cellcolor-color-inv='1'.
APPENDls_cellcolorTOlist-cellcolors.
APPENDlist.


例子:

REPORTZ_BARRY_ALV_CL_COLOR2.

TYPES:BEGINOFilist_s,
name1(10),
name2(10),
name3(10),
ENDOFilist_s.
DATA:ilistTYPESTANDARDTABLEOFilist_sWITHHEADERLINE.

DATA:BEGINOFlistOCCURS0.
INCLUDESTRUCTUREilist.
DATA:rowcolor(4)TYPEc,
cellcolorsTYPElvc_t_scol,
cellstylesTYPElvc_t_styl,
celltextTYPEalv_t_dtv.
DATA:ENDOFlist.

DATA:ok_codeLIKEsy-ucomm.
DATA:l_valid(1)TYPEc.
DATA:go_gridTYPEREFTOcl_gui_alv_grid.

DATA:gt_fieldcatTYPElvc_t_fcat,
gs_fieldcatTYPElvc_s_fcat,
slaTYPElvc_s_layo.
DATA:ls_fieldcatTYPElvc_s_fcat.
DATAls_styleTYPElvc_s_styl.
DATAls_cellcolorTYPElvc_s_scol.
DATAls_celltextTYPEalv_s_dtv.

*---------------------------------------------------------------------*
*CLASSlcl_event_receiverDEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASSlcl_event_receiverDEFINITION.
PUBLICSECTION.
METHODShandle_button_click
FOREVENTbutton_clickOFcl_gui_alv_grid
IMPORTINGes_col_id
es_row_no.
ENDCLASS."lcl_event_receiverDEFINITION

*---------------------------------------------------------------------*
*CLASSlcl_event_receiverIMPLEMENTATION
*---------------------------------------------------------------------*
*........*
*---------------------------------------------------------------------*
CLASSlcl_event_receiverIMPLEMENTATION.
METHODhandle_button_click.
PERFORMtestUSINGes_col_id
es_row_no.
ENDMETHOD."handle_f4
ENDCLASS."lcl_event_receiverIMPLEMENTATION

DATA:event_receiverTYPEREFTOlcl_event_receiver.
DATA:iiTYPEi.

START-OF-SELECTION.

CLEARls_fieldcat.
ls_fieldcat-fieldname='NAME1'.
ls_fieldcat-scrtext_l='NAME1'.
APPENDls_fieldcatTOgt_fieldcat.
CLEARls_fieldcat.
ls_fieldcat-fieldname='NAME2'.
ls_fieldcat-scrtext_l='NAME2'.
*ls_fieldcat-emphasize='C610'.
APPENDls_fieldcatTOgt_fieldcat.
CLEARls_fieldcat.
ls_fieldcat-fieldname='NAME3'.
ls_fieldcat-scrtext_l='NAME3'.
APPENDls_fieldcatTOgt_fieldcat.

list-name1='A'.
list-name2='ARE'.
ls_cellcolor-fname='NAME1'.
ls_cellcolor-color-col='5'.
ls_cellcolor-color-int='1'.
ls_cellcolor-color-inv='1'.
APPENDls_cellcolorTOlist-cellcolors.
APPENDlist.
list-name1='AA'.
list-name2='BB'.
ls_cellcolor-fname='NAME2'.
ls_cellcolor-color-col='3'.
ls_cellcolor-color-int='1'.
ls_cellcolor-color-inv='1'.
APPENDls_cellcolorTOlist-cellcolors.
APPENDlist.
list-name1='HOW'.
list-name2='ARE'.
list-rowcolor='C410'.
ls_style-fieldname='NAME3'.
ls_style-style=cl_gui_alv_grid=>mc_style_button.
*ls_style-style=cl_gui_alv_grid=>MC_STYLE_HOTSPOT.
APPENDls_styleTOlist-cellstyles.
ls_celltext-buttoncell='TEST'.
APPENDls_celltextTOlist-celltext.
APPENDlist.

sla-stylefname='CELLSTYLES'.
sla-ctab_fname='CELLCOLORS'.
sla-info_fname='ROWCOLOR'.

WRITE'a'.
CREATEOBJECTgo_grid
EXPORTING
i_parent=cl_gui_container=>screen0.

CREATEOBJECTevent_receiver.
SETHANDLERevent_receiver->handle_button_clickFORgo_grid.

CALLMETHODgo_grid->set_table_for_first_display
EXPORTING
*is_variant=gs_variant
i_save='A'
is_layout=sla
CHANGING
it_outtab=list[]
it_fieldcatalog=gt_fieldcat[]
EXCEPTIONS
invalid_parameter_combination=1
program_error=2
too_many_lines=3
OTHERS=4.
*&---------------------------------------------------------------------*
*&Formtest
*&---------------------------------------------------------------------*
FORMtestUSINGp_es_col_idTYPElvc_s_col
p_es_row_noTYPElvc_s_roid.
MESSAGEi899(fi)WITHp_es_col_id-fieldnamep_es_row_no-row_id.
ENDFORM."test

转自:http://blog.chinaunix.net/u1/40527/showart.php?id=344295
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: