1. 程式人生 > >【黑科技】在alv中設定字型樣式

【黑科技】在alv中設定字型樣式

使用Function Module:REUSE_ALV_GRID_DISPLAY_LVC ,設定alv中字型樣式

程式程式碼:
* Include for all style values
INCLUDE <cl_alv_control>.
* Internal table for final output data
DATA: i_flight TYPE STANDARD TABLE OF sflight.
* Internal table for field catalog info
DATA: i_fields TYPE lvc_t_fcat.
* Field symbol for field catalog
FIELD-SYMBOLS: <wa_fields> TYPE lvc_s_fcat.

* Select data
SELECT * FROM sflight
INTO TABLE i_flight
UP TO 100 ROWS.
IF sy-subrc = 0.
* Get field catalog
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name       = 'SFLIGHT'
    CHANGING
      ct_fieldcat            = i_fields
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.
  IF sy-subrc = 0.
*   Changing the style of field catalog
    LOOP AT i_fields ASSIGNING <wa_fields>.
      IF sy-tabix > 4.
        <wa_fields>-style  =  alv_style_font_italic.
      ELSE.
        <wa_fields>-style  =  alv_style_font_bold.
      ENDIF.
    ENDLOOP.
  ENDIF.
* Calling the FM to display ALV report
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_structure_name = 'SFLIGHT'
      i_grid_title     = 'Style demo'(001)
      it_fieldcat_lvc  = i_fields
    TABLES
      t_outtab         = i_flight
    EXCEPTIONS
      program_error    = 1
      OTHERS           = 2.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDIF.

執行效果:


INCLUDE <cl_alv_control>的說明:裡面有好多ALV佈局的屬性,中文意思跟英文單詞意思同樣理解
下面是lav_lvc的樣式

CONSTANTS:
* Style 1
 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'.