ABAP ALV中的字体如何设置

字体设置粗体还是斜体等一系列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.

效果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值