字体设置粗体还是斜体等一系列ALV布局的属性都包括在<cl_alv_control>中的,<cl_alv_control>中提供了所需的所有样式,其中就包括ALV报表中字体加粗(alv_style_font_bold)和斜体(alv_style_font_italic)。如下:
include <cl_alv_control>.
CONSTANTS:
* Style 1
*ALV_STYLE_COLOR_BACKGROUND:
*若十位是双数,改变的是背景颜色,不同的双数,字体可能变成粗体或斜体,
* 若十位是单数,改变字体颜色,不同单数,字体可能是粗体,斜体,个位数控制的是颜色,
*个位和十位均从0-F
ALV_STYLE_COLOR_BACKGROUND(4) TYPE X VALUE '00000001',
ALV_STYLE_COLOR_HEADING(4) TYPE X VALUE '00000002',
ALV_STYLE_COLOR_NORMAL(4) TYPE X VALUE '00000003',
ALV_STYLE_COLOR_TOTAL(4) TYPE X VALUE '00000004',
ALV_STYLE_COLOR_KEY(4) TYPE X VALUE '00000005',
ALV_STYLE_COLOR_POSITIVE(4) TYPE X VALUE '00000006',
ALV_STYLE_COLOR_NEGATIVE(4) TYPE X VALUE '00000007',
ALV_STYLE_COLOR_GROUP(4) TYPE X VALUE '00000008',
ALV_STYLE_COLOR_INT_BACKGROUND(4) TYPE X VALUE '00000009',
ALV_STYLE_COLOR_INT_HEADING(4) TYPE X VALUE '0000000A',
ALV_STYLE_COLOR_INT_NORMAL(4) TYPE X VALUE '0000000B',
ALV_STYLE_COLOR_INT_TOTAL(4) TYPE X VALUE '0000000C',
ALV_STYLE_COLOR_INT_KEY(4) TYPE X VALUE '0000000D',
ALV_STYLE_COLOR_INT_POSITIVE(4) TYPE X VALUE '0000000E',
ALV_STYLE_COLOR_INT_NEGATIVE(4) TYPE X VALUE '0000000F',
ALV_STYLE_COLOR_INT_GROUP(4) TYPE X VALUE '00000010',
ALV_STYLE_COLOR_INV_BACKGROUND(4) TYPE X VALUE '00000011',
ALV_STYLE_COLOR_INV_HEADING(4) TYPE X VALUE '00000012',
ALV_STYLE_COLOR_INV_NORMAL(4) TYPE X VALUE '00000013',
ALV_STYLE_COLOR_INV_TOTAL(4) TYPE X VALUE '00000014',
ALV_STYLE_COLOR_INV_KEY(4) TYPE X VALUE '00000015',
ALV_STYLE_COLOR_INV_POSITIVE(4) TYPE X VALUE '00000016',
ALV_STYLE_COLOR_INV_NEGATIVE(4) TYPE X VALUE '00000017',
ALV_STYLE_COLOR_INV_GROUP(4) TYPE X VALUE '00000018',
ALV_STYLE_FONT_BOLD(4) TYPE X VALUE '00000020', "字体变成粗体
ALV_STYLE_FONT_BOLD_NO(4) TYPE X VALUE '00000040',
ALV_STYLE_FONT_ITALIC(4) TYPE X VALUE '00000080', "字体变成斜体
ALV_STYLE_FONT_ITALIC_NO(4) TYPE X VALUE '00000100',
ALV_STYLE_FONT_UNDERLINED(4) TYPE X VALUE '00000200', "加下划线
ALV_STYLE_FONT_UNDERLINED_NO(4) TYPE X VALUE '00000400',
ALV_STYLE_ALIGN_LEFT_TOP(4) TYPE X VALUE '00000800',
ALV_STYLE_ALIGN_CENTER_TOP(4) TYPE X VALUE '00001000',
ALV_STYLE_ALIGN_RIGHT_TOP(4) TYPE X VALUE '00001800',
ALV_STYLE_ALIGN_LEFT_CENTER(4) TYPE X VALUE '00002000',
ALV_STYLE_ALIGN_CENTER_CENTER(4) TYPE X VALUE '00002800',
ALV_STYLE_ALIGN_RIGHT_CENTER(4) TYPE X VALUE '00003000',
ALV_STYLE_ALIGN_LEFT_BOTTOM(4) TYPE X VALUE '00003800',
ALV_STYLE_ALIGN_CENTER_BOTTOM(4) TYPE X VALUE '00004000',
ALV_STYLE_ALIGN_RIGHT_BOTTOM(4) TYPE X VALUE '00004800',
ALV_STYLE_FONT_SYMBOL(4) TYPE X VALUE '00008000',
ALV_STYLE_FONT_SYMBOL_NO(4) TYPE X VALUE '00010000',
ALV_STYLE_CHECKBOX_NOT_CHECKED(4) TYPE X VALUE '00020000',
ALV_STYLE_CHECKBOX_CHECKED(4) TYPE X VALUE '00040000', "加复选框如下:☑
ALV_STYLE_CHECKBOX_NO(4) TYPE X VALUE '00060000',
ALV_STYLE_ENABLED(4) TYPE X VALUE '00080000',
ALV_STYLE_DISABLED(4) TYPE X VALUE '00100000',
ALV_STYLE_SINGLE_CLK_EVENT(4) TYPE X VALUE '00200000',
ALV_STYLE_SINGLE_CLK_EVENT_NO(4) TYPE X VALUE '00400000',
ALV_STYLE_RADIO_NOT_CHECKED(4) TYPE X VALUE '00800000',
ALV_STYLE_RADIO_CHECKED(4) TYPE X VALUE '01000000',
ALV_STYLE_RADIO_NO(4) TYPE X VALUE '01800000',
ALV_STYLE_F4(4) TYPE X VALUE '02000000',
ALV_STYLE_F4_NO(4) TYPE X VALUE '04000000',
ALV_STYLE_IMAGE(4) TYPE X VALUE '08000000',
ALV_STYLE_NO_DELETE_ROW(4) TYPE X VALUE '10000000',
ALV_STYLE_BUTTON(4) TYPE X VALUE '20000000',
ALV_STYLE_BUTTON_NO(4) TYPE X VALUE '40000000',
* Style 2
ALV_STYLE2_NO_BORDER_LEFT(4) TYPE X VALUE '00010000',
ALV_STYLE2_NO_BORDER_RIGHT(4) TYPE X VALUE '00020000',
ALV_STYLE2_NO_BORDER_TOP(4) TYPE X VALUE '00040000',
ALV_STYLE2_NO_BORDER_BOTTOM(4) TYPE X VALUE '00080000',
* Style 3 ( WEBSTYLES ).
* Style 4
ALV_STYLE4_ZEBRA_ROW(4) TYPE X VALUE '00000001',
ALV_STYLE4_STOP_MERGE(4) TYPE X VALUE '00000002',
ALV_STYLE4_LINK(4) TYPE X VALUE '00000004',
ALV_STYLE4_LINK_NO(4) TYPE X VALUE '00000008',
* Column Styles
ALV_COL_STYLE_SORT_UP(4) TYPE X VALUE '00000001',
ALV_COL_STYLE_SORT_DOWN(4) TYPE X VALUE '00000002',
ALV_COL_STYLE_FILTER(4) TYPE X VALUE '00000004',
ALV_COL_STYLE_TOTAL(4) TYPE X VALUE '00000008',
ALV_COL_STYLE_SUBTOTAL(4) TYPE X VALUE '00000010',
ALV_COL_STYLE_CHARACTERISTIC(4) TYPE X VALUE '00000020',
ALV_COL_STYLE_KEYFIGURE(4) TYPE X VALUE '00000040',
ALV_COL_STYLE_KEY(4) TYPE X VALUE '00000080',
ALV_COL_STYLE_EXCEPTION(4) TYPE X VALUE '00000100',
ALV_COL_STYLE_SIGNED_KEYFIGURE(4) TYPE X VALUE '00000200',
ALV_COL_STYLE_MERGE(4) TYPE X VALUE '00000400',
ALV_COL_STYLE_FIXED(4) TYPE X VALUE '00000800',
ALV_COL_STYLE_AUTO_VALUE(4) TYPE X VALUE '00001000',
ALV_COL_STYLE_NO_DISP(4) TYPE X VALUE '00002000',
ALV_COL_STYLE_HASREF(4) TYPE X VALUE '00004000',
ALV_COL_STYLE_AVERAGE(4) TYPE X VALUE '00008000',
ALV_COL_STYLE_MIN(4) TYPE X VALUE '00010000',
ALV_COL_STYLE_MAX(4) TYPE X VALUE '00020000'.
具体实例如下所示:
*&---------------------------------------------------------------------*
*& Report ZYXYR0012
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
report zyxyr0012.
include <cl_alv_control>.
constants:
alv_style_color_background(6) type x value '000000A4'. "改变这一列的背景颜色,个位代表背景对应的颜色,
* 十位代表字体颜色同时字体变粗了,如果十位出现字体颜色,那么个位的颜色不会显示出来
types: begin of ty_sbook,
mandt type sbook-mandt,
carrid type sbook-carrid,
connid type sbook-connid,
fldate type sbook-fldate,
bookid type sbook-bookid,
luggweight type sbook-luggweight,
wunit type sbook-wunit,
class type sbook-class,
loccuram type sbook-loccuram,
loccurkey type sbook-loccurkey,
order_date type sbook-order_date,
counter type sbook-counter,
cancelled type sbook-cancelled, "复选框(编辑状态下显示复选框,需设置Fieldcat-checkbox)
passname type sbook-passname,
passbirth type sbook-passbirth,
sel, "选择框(设置layout-box_fname,无需设置fieldcat)
end of ty_sbook,
gs_sbook type table of ty_sbook.
data: gt_sbook type gs_sbook with header line.
data: gt_fieldcat type lvc_t_fcat with header line.
field-symbols: <fs_fieldcat> type lvc_s_fcat.
* gs_fieldcat type lvc_s_fcat.
data: gs_layout type lvc_s_layo.
*------------------------------------------------------------------------
*选择屏幕
*------------------------------------------------------------------------
selection-screen begin of block bk1 with frame title text-001.
parameters: p_carrid type sbook-carrid.
selection-screen end of block bk1.
*------------------------------------------------------------------------
* 屏幕初始化
*------------------------------------------------------------------------
initialization.
start-of-selection.
perform frm_get_data.
end-of-selection.
perform frm_build_layout.
perform frm_build_fieldcat.
perform frm_show_alv.
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
form frm_get_data .
select * from sbook
into corresponding fields of table gt_sbook
up to 100 rows.
endform.
*&---------------------------------------------------------------------*
*& Form frm_build_layout
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
form frm_build_layout .
clear: gs_layout.
gs_layout-zebra = 'X'. "斑马线
gs_layout-cwidth_opt = 'X'. "自动优化列宽
gs_layout-box_fname = 'SEL'. "选择
endform.
*&---------------------------------------------------------------------*
*& Form frm_build_fieldcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
form frm_build_fieldcat .
data: lv_fieldcat type string.
define mac_field.
lv_fieldcat = '&1'.
translate lv_fieldcat to upper case.
clear: gt_fieldcat.
gt_fieldcat-fieldname = lv_fieldcat.
gt_fieldcat-reptext = '&2'.
if gt_fieldcat-fieldname = 'CARRID'.
gt_fieldcat-just = 'C'.
gt_fieldcat-style = alv_style_font_bold.
endif.
if gt_fieldcat-fieldname = 'ORDER_DATE'.
gt_fieldcat-edit_mask = '____/__/__'.
gt_fieldcat-style = alv_style_font_underlined.
endif.
if gt_fieldcat-fieldname = 'FLDATE'.
gt_fieldcat-style = alv_style_font_italic.
endif.
if gt_fieldcat-fieldname = 'CANCELLED'.
gt_fieldcat-style = alv_style_checkbox_checked. "复选框
endif.
if gt_fieldcat-fieldname = 'PASSBIRTH'.
gt_fieldcat-style = alv_style_color_background.
endif.
append gt_fieldcat .
END-OF-DEFINITION.
mac_field: carrid 航运公司,
connid 航线id,
fldate 航班日期,
luggweight 行李重量,
wunit 重量单位,
class 航班舱位,
loccuram 价格,
loccurkey 货币,
order_date 订单日期,
counter 柜台号,
cancelled 取消,
passname 乘客姓名,
passbirth 乘客生日.
endform.
*&---------------------------------------------------------------------*
*& Form frm_show_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
form frm_show_alv .
call function 'REUSE_ALV_GRID_DISPLAY_LVC'
exporting
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_PF_STATUS_SET'
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout_lvc = gs_layout
it_fieldcat_lvc = gt_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'A'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = gt_sbook
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2.
.
if sy-subrc <> 0.
* Implement suitable error handling here
endif.
endform.
*------------------------------------------------------------------------
* frm_pf_status_set
*------------------------------------------------------------------------
form frm_pf_status_set using rt_extab type slis_t_extab.
set pf-status 'STATUS01'.
set titlebar 'TITLE'.
endform.
效果如下: