二维码

[fmalv] 在alv中设置字体样式

Twilight发表于 2014-08-12 11:03txfirst 最后回复于 2018-12-25 22:19 [复制链接] 8651 3

使用Function Module:REUSE_ALV_GRID_DISPLAY_LVC ,设置alv中字体样式

程序代码:
  1. * Include for all style values
  2. INCLUDE <cl_alv_control>.
  3. * Internal table for final output data
  4. DATA: i_flight TYPE STANDARD TABLE OF sflight.
  5. * Internal table for field catalog info
  6. DATA: i_fields TYPE lvc_t_fcat.
  7. * Field symbol for field catalog
  8. FIELD-SYMBOLS: <wa_fields> TYPE lvc_s_fcat.

  9. * Select data
  10. SELECT * FROM sflight
  11. INTO TABLE i_flight
  12. UP TO 100 ROWS.
  13. IF sy-subrc = 0.
  14. * Get field catalog
  15.   CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
  16.     EXPORTING
  17.       i_structure_name       = 'SFLIGHT'
  18.     CHANGING
  19.       ct_fieldcat            = i_fields
  20.     EXCEPTIONS
  21.       inconsistent_interface = 1
  22.       program_error          = 2
  23.       OTHERS                 = 3.
  24.   IF sy-subrc = 0.
  25. *   Changing the style of field catalog
  26.     LOOP AT i_fields ASSIGNING <wa_fields>.
  27.       IF sy-tabix > 4.
  28.         <wa_fields>-style  =  alv_style_font_italic.
  29.       ELSE.
  30.         <wa_fields>-style  =  alv_style_font_bold.
  31.       ENDIF.
  32.     ENDLOOP.
  33.   ENDIF.
  34. * Calling the FM to display ALV report
  35.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  36.     EXPORTING
  37.       i_structure_name = 'SFLIGHT'
  38.       i_grid_title     = 'Style demo'(001)
  39.       it_fieldcat_lvc  = i_fields
  40.     TABLES
  41.       t_outtab         = i_flight
  42.     EXCEPTIONS
  43.       program_error    = 1
  44.       OTHERS           = 2.
  45.   IF sy-subrc <> 0.
  46. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  47. *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  48.   ENDIF.
  49. ENDIF.
复制代码


执行效果:
Font style in ALV.png

INCLUDE <cl_alv_control>的说明:里面有好多ALV布局的属性,中文意思跟英文单词意思同样理解
下面是lav_lvc的样式
  1. CONSTANTS:
  2. * Style 1
  3. ALV_STYLE_COLOR_BACKGROUND(4)                  TYPE X VALUE '00000001',
  4. ALV_STYLE_COLOR_HEADING(4)                     TYPE X VALUE '00000002',
  5. ALV_STYLE_COLOR_NORMAL(4)                      TYPE X VALUE '00000003',
  6. ALV_STYLE_COLOR_TOTAL(4)                       TYPE X VALUE '00000004',
  7. ALV_STYLE_COLOR_KEY(4)                         TYPE X VALUE '00000005',
  8. ALV_STYLE_COLOR_POSITIVE(4)                    TYPE X VALUE '00000006',
  9. ALV_STYLE_COLOR_NEGATIVE(4)                    TYPE X VALUE '00000007',
  10. ALV_STYLE_COLOR_GROUP(4)                       TYPE X VALUE '00000008',
  11. ALV_STYLE_COLOR_INT_BACKGROUND(4)              TYPE X VALUE '00000009',
  12. ALV_STYLE_COLOR_INT_HEADING(4)                 TYPE X VALUE '0000000A',
  13. ALV_STYLE_COLOR_INT_NORMAL(4)                  TYPE X VALUE '0000000B',
  14. ALV_STYLE_COLOR_INT_TOTAL(4)                   TYPE X VALUE '0000000C',
  15. ALV_STYLE_COLOR_INT_KEY(4)                     TYPE X VALUE '0000000D',
  16. ALV_STYLE_COLOR_INT_POSITIVE(4)                TYPE X VALUE '0000000E',
  17. ALV_STYLE_COLOR_INT_NEGATIVE(4)                TYPE X VALUE '0000000F',
  18. ALV_STYLE_COLOR_INT_GROUP(4)                   TYPE X VALUE '00000010',
  19. ALV_STYLE_COLOR_INV_BACKGROUND(4)              TYPE X VALUE '00000011',
  20. ALV_STYLE_COLOR_INV_HEADING(4)                 TYPE X VALUE '00000012',
  21. ALV_STYLE_COLOR_INV_NORMAL(4)                  TYPE X VALUE '00000013',
  22. ALV_STYLE_COLOR_INV_TOTAL(4)                   TYPE X VALUE '00000014',
  23. ALV_STYLE_COLOR_INV_KEY(4)                     TYPE X VALUE '00000015',
  24. ALV_STYLE_COLOR_INV_POSITIVE(4)                TYPE X VALUE '00000016',
  25. ALV_STYLE_COLOR_INV_NEGATIVE(4)                TYPE X VALUE '00000017',
  26. ALV_STYLE_COLOR_INV_GROUP(4)                   TYPE X VALUE '00000018',

  27. ALV_STYLE_FONT_BOLD(4)                         TYPE X VALUE '00000020',
  28. ALV_STYLE_FONT_BOLD_NO(4)                      TYPE X VALUE '00000040',

  29. ALV_STYLE_FONT_ITALIC(4)                       TYPE X VALUE '00000080',
  30. ALV_STYLE_FONT_ITALIC_NO(4)                    TYPE X VALUE '00000100',

  31. ALV_STYLE_FONT_UNDERLINED(4)                   TYPE X VALUE '00000200',
  32. ALV_STYLE_FONT_UNDERLINED_NO(4)                TYPE X VALUE '00000400',

  33. ALV_STYLE_ALIGN_LEFT_TOP(4)                    TYPE X VALUE '00000800',
  34. ALV_STYLE_ALIGN_CENTER_TOP(4)                  TYPE X VALUE '00001000',
  35. ALV_STYLE_ALIGN_RIGHT_TOP(4)                   TYPE X VALUE '00001800',
  36. ALV_STYLE_ALIGN_LEFT_CENTER(4)                 TYPE X VALUE '00002000',
  37. ALV_STYLE_ALIGN_CENTER_CENTER(4)               TYPE X VALUE '00002800',
  38. ALV_STYLE_ALIGN_RIGHT_CENTER(4)                TYPE X VALUE '00003000',
  39. ALV_STYLE_ALIGN_LEFT_BOTTOM(4)                 TYPE X VALUE '00003800',
  40. ALV_STYLE_ALIGN_CENTER_BOTTOM(4)               TYPE X VALUE '00004000',
  41. ALV_STYLE_ALIGN_RIGHT_BOTTOM(4)                TYPE X VALUE '00004800',

  42. ALV_STYLE_FONT_SYMBOL(4)                       TYPE X VALUE '00008000',
  43. ALV_STYLE_FONT_SYMBOL_NO(4)                    TYPE X VALUE '00010000',

  44. ALV_STYLE_CHECKBOX_NOT_CHECKED(4)              TYPE X VALUE '00020000',
  45. ALV_STYLE_CHECKBOX_CHECKED(4)                  TYPE X VALUE '00040000',
  46. ALV_STYLE_CHECKBOX_NO(4)                       TYPE X VALUE '00060000',

  47. ALV_STYLE_ENABLED(4)                           TYPE X VALUE '00080000',
  48. ALV_STYLE_DISABLED(4)                          TYPE X VALUE '00100000',

  49. ALV_STYLE_SINGLE_CLK_EVENT(4)                  TYPE X VALUE '00200000',
  50. ALV_STYLE_SINGLE_CLK_EVENT_NO(4)               TYPE X VALUE '00400000',

  51. ALV_STYLE_RADIO_NOT_CHECKED(4)                 TYPE X VALUE '00800000',
  52. ALV_STYLE_RADIO_CHECKED(4)                     TYPE X VALUE '01000000',
  53. ALV_STYLE_RADIO_NO(4)                          TYPE X VALUE '01800000',

  54. ALV_STYLE_F4(4)                                TYPE X VALUE '02000000',
  55. ALV_STYLE_F4_NO(4)                             TYPE X VALUE '04000000',

  56. ALV_STYLE_IMAGE(4)                             TYPE X VALUE '08000000',

  57. ALV_STYLE_NO_DELETE_ROW(4)                     TYPE X VALUE '10000000',

  58. ALV_STYLE_BUTTON(4)                            TYPE X VALUE '20000000',
  59. ALV_STYLE_BUTTON_NO(4)                         TYPE X VALUE '40000000',


  60. * Style 2
  61. ALV_STYLE2_NO_BORDER_LEFT(4)                   TYPE X VALUE '00010000',
  62. ALV_STYLE2_NO_BORDER_RIGHT(4)                  TYPE X VALUE '00020000',
  63. ALV_STYLE2_NO_BORDER_TOP(4)                    TYPE X VALUE '00040000',
  64. ALV_STYLE2_NO_BORDER_BOTTOM(4)                 TYPE X VALUE '00080000',

  65. * Style 3 ( WEBSTYLES ).

  66. * Style 4
  67. ALV_STYLE4_ZEBRA_ROW(4)                        TYPE X VALUE '00000001',
  68. ALV_STYLE4_STOP_MERGE(4)                       TYPE X VALUE '00000002',

  69. ALV_STYLE4_LINK(4)                             TYPE X VALUE '00000004',
  70. ALV_STYLE4_LINK_NO(4)                          TYPE X VALUE '00000008',

  71. * Column Styles
  72. ALV_COL_STYLE_SORT_UP(4)                        TYPE X VALUE '00000001',
  73. ALV_COL_STYLE_SORT_DOWN(4)                      TYPE X VALUE '00000002',
  74. ALV_COL_STYLE_FILTER(4)                         TYPE X VALUE '00000004',
  75. ALV_COL_STYLE_TOTAL(4)                          TYPE X VALUE '00000008',
  76. ALV_COL_STYLE_SUBTOTAL(4)                       TYPE X VALUE '00000010',
  77. ALV_COL_STYLE_CHARACTERISTIC(4)                 TYPE X VALUE '00000020',
  78. ALV_COL_STYLE_KEYFIGURE(4)                      TYPE X VALUE '00000040',
  79. ALV_COL_STYLE_KEY(4)                            TYPE X VALUE '00000080',
  80. ALV_COL_STYLE_EXCEPTION(4)                      TYPE X VALUE '00000100',
  81. ALV_COL_STYLE_SIGNED_KEYFIGURE(4)               TYPE X VALUE '00000200',
  82. ALV_COL_STYLE_MERGE(4)                          TYPE X VALUE '00000400',
  83. ALV_COL_STYLE_FIXED(4)                          TYPE X VALUE '00000800',
  84. ALV_COL_STYLE_AUTO_VALUE(4)                     TYPE X VALUE '00001000',
  85. ALV_COL_STYLE_NO_DISP(4)                        TYPE X VALUE '00002000',
  86. ALV_COL_STYLE_HASREF(4)                         TYPE X VALUE '00004000',
  87. ALV_COL_STYLE_AVERAGE(4)                        TYPE X VALUE '00008000',
  88. ALV_COL_STYLE_MIN(4)                            TYPE X VALUE '00010000',
  89. ALV_COL_STYLE_MAX(4)                            TYPE X VALUE '00020000'.
复制代码
回复

使用道具 举报

glb1197531
厉害了!!
回复

使用道具 举报

zhongguomao
黑科技啊,闻所未闻啊。。。收藏了。
回复 支持 反对

使用道具 举报

txfirst
这个学习了
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表