zoukankan      html  css  js  c++  java
  • ABAP ALV DEMO示例源码

    关于ALV表格颜色,感觉这种需求在项目中用到的时候不是很多,但是前一段时间面试的时候,面试官问了我关于ALV单元格颜色的问题。

    以前了解过一点,回答的不是很好,后来百度了一下,大概了解了一些,今天工作不忙,所以总结一下,以后工作用到可以过来看一下。

    (其实有的时候面试官就是想通过这些不常用的知识点,来了解被面试者的水平)

    DEMO源代码

      1 *&---------------------------------------------------------------------*
      2 *& Report  ZHAIM_test
      3 *&
      4 *&---------------------------------------------------------------------*
      5 *&
      6 *&
      7 *&---------------------------------------------------------------------*
      8 
      9 REPORT  ZHAIM_test NO STANDARD PAGE HEADING.
     10 
     11 TABLES ZEMP_TEST.
     12 
     13 TYPES: BEGIN OF TY_ZEMP.
     14        INCLUDE STRUCTURE ZEMP_TEST.
     15 TYPES: CLR TYPE CHAR4,
     16        CELLCOLOR TYPE LVC_T_SCOL, "单元格颜色
     17        END OF TY_ZEMP.
     18 
     19 DATA: IT_ZEMP TYPE STANDARD TABLE OF TY_ZEMP,
     20       IW_ZEMP TYPE TY_ZEMP.
     21 
     22 TYPE-POOLS : SLIS.
     23 DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
     24        IT_EVENT TYPE SLIS_T_EVENT, "不能有表头,否则会RUNTIME ERROR
     25        IW_LAYOUT TYPE SLIS_LAYOUT_ALV,
     26        IW_CELLCOLOR TYPE LVC_S_SCOL,
     27        IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
     28 
     29 PARAMETERS P_DEPT TYPE ZEMP_TEST-EDEPT.
     30 
     31 START-OF-SELECTION.
     32 
     33   PERFORM FRM_GET_EVENT.
     34   PERFORM FRM_GET_DATA.
     35   PERFORM FRM_ALV_COLOR.
     36   PERFORM FRM_COMMENT_BUILD.
     37   PERFORM FRM_LAYOUT.
     38   PERFORM FRM_FIELDCAT.
     39   PERFORM FRM_ALV_DISPLAY.
     40 
     41 *&---------------------------------------------------------------------*
     42 *&      Form  FRM_GET_DATA
     43 *&---------------------------------------------------------------------*
     44 *       text
     45 *----------------------------------------------------------------------*
     46 *  -->  p1        text
     47 *  <--  p2        text
     48 *----------------------------------------------------------------------*
     49 FORM FRM_GET_DATA .
     50 
     51   AUTHORITY-CHECK OBJECT 'ZEMPOBJ00'
     52          ID 'ZEMPDEPT' FIELD P_DEPT
     53          ID 'ACTVT'  FIELD '03'.
     54   IF SY-SUBRC <> 0.
     55     MESSAGE S001(00) WITH '您没有权限查看此数据' DISPLAY LIKE 'E'.
     56     STOP.
     57   ENDIF.
     58 
     59   SELECT *
     60     FROM ZEMP_TEST
     61     INTO CORRESPONDING FIELDS OF TABLE IT_ZEMP
     62    WHERE EDEPT = P_DEPT.
     63   IF SY-SUBRC <> 0.
     64     MESSAGE S001(00) WITH '不存在符合条件的数据' DISPLAY LIKE 'E'.
     65     STOP.
     66   ENDIF.
     67 
     68 ENDFORM.                    " FRM_GET_DATA
     69 
     70 *&---------------------------------------------------------------------*
     71 *&      Form  FRM_GET_EVENT
     72 *&---------------------------------------------------------------------*
     73 *       text
     74 *----------------------------------------------------------------------*
     75 *  -->  p1        text
     76 *  <--  p2        text
     77 *----------------------------------------------------------------------*
     78 FORM FRM_GET_EVENT .
     79 
     80   DATA: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'FRM_TOP_OF_PAGE'.
     81 
     82   DATA L_EVENTS TYPE SLIS_ALV_EVENT.
     83 
     84   CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
     85     EXPORTING
     86       I_LIST_TYPE     = 0
     87     IMPORTING
     88       ET_EVENTS       = IT_EVENT
     89     EXCEPTIONS
     90       LIST_TYPE_WRONG = 1
     91       OTHERS          = 2.
     92   IF SY-SUBRC <> 0.
     93     MESSAGE ID SY-MSGID TYPE SY-MSGTY
     94         NUMBER SY-MSGNO
     95           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     96   ENDIF.
     97 * 在事件(字段名:NAME)为"TOP_OF_PAGE"的行中
     98 *将FORM名(字段名:FORM)设为"FRM_TOP_OF_PAGE"
     99 * 这样,系统就会自动PERFORM FRM_TOP_OF_PAGE.
    100   CLEAR L_EVENTS.
    101   READ TABLE IT_EVENT
    102         WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
    103         INTO L_EVENTS.
    104 
    105   IF SY-SUBRC = 0.
    106     MOVE FORMNAME_TOP_OF_PAGE TO L_EVENTS-FORM.
    107     MODIFY IT_EVENT FROM L_EVENTS INDEX SY-TABIX.
    108   ELSE.
    109     L_EVENTS-FORM = FORMNAME_TOP_OF_PAGE.
    110     L_EVENTS-NAME = FORMNAME_TOP_OF_PAGE.
    111     APPEND L_EVENTS TO IT_EVENT.
    112   ENDIF.
    113 
    114 ENDFORM.                    " FRM_GET_EVENT
    115 
    116 *&---------------------------------------------------------------------*
    117 *&      Form  FRM_TOP_OF_PAGE
    118 *&---------------------------------------------------------------------*
    119 *       表头
    120 *----------------------------------------------------------------------*
    121 *  -->  p1        text
    122 *  <--  p2        text
    123 *----------------------------------------------------------------------*
    124 FORM  FRM_TOP_OF_PAGE.
    125   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    126     EXPORTING
    127       IT_LIST_COMMENTARY       = IT_LISTHEADER
    128       I_LOGO                   = 'ENJOYSAP_LOGO'
    129 *     I_END_OF_LIST_GRID       =
    130 *     I_ALV_FORM               =
    131       .
    132 * "TCODE:OAOR,CLASS
    133 * NAME:PICTURES,CLASS TYPE :OT,执行,可以看到所有的PICTURE
    134 
    135 ENDFORM.                    "FRM_TOP_OF_PAGE
    136 *&---------------------------------------------------------------------*
    137 *&      Form  FRM_COMMENT_BUILD
    138 *&---------------------------------------------------------------------*
    139 *       text
    140 *----------------------------------------------------------------------*
    141 *  -->  p1        text
    142 *  <--  p2        text
    143 *----------------------------------------------------------------------*
    144 FORM FRM_COMMENT_BUILD .
    145   DATA LW_LISTHEADER TYPE SLIS_LISTHEADER.
    146 
    147   CLEAR: IT_LISTHEADER, LW_LISTHEADER.
    148 
    149   LW_LISTHEADER-TYP  = 'H'.
    150   LW_LISTHEADER-INFO = 'ALV DEMO'.
    151   APPEND LW_LISTHEADER TO IT_LISTHEADER.
    152 
    153   CLEAR LW_LISTHEADER.
    154   LW_LISTHEADER-TYP  = 'S'.
    155   LW_LISTHEADER-KEY  = '用户:'.
    156   LW_LISTHEADER-INFO = SY-UNAME.
    157   APPEND LW_LISTHEADER TO IT_LISTHEADER.
    158 
    159   CLEAR LW_LISTHEADER.
    160   LW_LISTHEADER-TYP  = 'S'.
    161   LW_LISTHEADER-KEY  = '日期:'.
    162   LW_LISTHEADER-INFO = SY-DATUM.
    163   APPEND LW_LISTHEADER TO IT_LISTHEADER.
    164 
    165 ENDFORM.                    " FRM_COMMENT_BUILD
    166 *&---------------------------------------------------------------------*
    167 *&      Form  FRM_LAYOUT
    168 *&---------------------------------------------------------------------*
    169 *       text
    170 *----------------------------------------------------------------------*
    171 *  -->  p1        text
    172 *  <--  p2        text
    173 *----------------------------------------------------------------------*
    174 FORM FRM_LAYOUT .
    175 
    176   IW_LAYOUT-COLWIDTH_OPTIMIZE = 'X'."自适应字段宽度
    177   IW_LAYOUT-ZEBRA = 'X'.              "斑马线显示
    178   "ALV单元格中列的颜色在 IT_FIELDCAT 中设置,
    179               "行的颜色,以及单元格颜色在 IS_LAYOUT中设置。
    180   IW_LAYOUT-INFO_FIELDNAME = 'CLR'.  "行颜色代码的字段
    181   IW_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'. "单元格颜色内表字段
    182 * IW_LAYOUT-EDIT = 'X'. "可以修改所有ALV列的数据,
    183 * 左边也会出来选择行的按钮","保存"按钮也会出来
    184   IW_LAYOUT-F2CODE = 'PICK'."双击触发的FUNCTION CODE
    185 
    186 ENDFORM.                    " FRM_LAYOUT
    187 *&---------------------------------------------------------------------*
    188 *&      Form  FRM_ALV_COLOR
    189 *&---------------------------------------------------------------------*
    190 *       text
    191 *----------------------------------------------------------------------*
    192 *  -->  p1        text
    193 *  <--  p2        text
    194 *----------------------------------------------------------------------*
    195 FORM FRM_ALV_COLOR .
    196   LOOP AT IT_ZEMP INTO IW_ZEMP.
    197 
    198      "员工编号为‘3’的行,颜色为红色
    199      IF IW_ZEMP-EMPID = '3'.
    200        IW_ZEMP-CLR = 'C610'.
    201 
    202        MODIFY IT_ZEMP FROM IW_ZEMP.
    203        CLEAR IW_ZEMP.
    204 
    205      ENDIF.
    206 
    207      IF IW_ZEMP-EMPID = '2'.
    208        IW_CELLCOLOR-FNAME = 'ENAME'.
    209        "员工编号为‘2’的行的‘ENAME’字段颜色为 黄色
    210        IW_CELLCOLOR-COLOR-COL = 3.
    211        IW_CELLCOLOR-COLOR-INT = 1.
    212        IW_CELLCOLOR-COLOR-INV = 0.
    213 
    214        APPEND IW_CELLCOLOR TO IW_ZEMP-CELLCOLOR.
    215        MODIFY IT_ZEMP FROM IW_ZEMP.
    216        CLEAR IW_ZEMP.
    217 
    218      ENDIF.
    219   ENDLOOP.
    220 * Syntax of color        value in    col    color
    221 *{ COL_BACKGROUND }        0            GUI-specific
    222 *{ 1 | COL_HEADING }    1         Gray-blue
    223 *{ 2 | COL_NORMAL }        2            Light gray
    224 *{ 3 | COL_TOTAL }      3         Yellow
    225 *{ 4 | COL_KEY }        4         Blue-green
    226 *{ 5 | COL_POSITIVE }      5            Green
    227 *{ 6 | COL_NEGATIVE }      6            Red
    228 *{ 7 | COL_GROUP }      7         Violet
    229 
    230 ENDFORM.                    " FRM_ALV_COLOR
    231 *&---------------------------------------------------------------------*
    232 *&      Form  FRM_FIELDCAT
    233 *&---------------------------------------------------------------------*
    234 *       text
    235 *----------------------------------------------------------------------*
    236 *  -->  p1        text
    237 *  <--  p2        text
    238 *----------------------------------------------------------------------*
    239 FORM FRM_FIELDCAT .
    240 
    241   CLEAR IT_FIELDCAT.
    242 
    243 * 函数调用获得标准字段,构成FCAT
    244   PERFORM FRM_GET_ALL_FIELD.
    245 * RFE自定义字段,字段颜色,求和
    246   PERFORM FRM_REDEFINE_FIELD.
    247 
    248 * 颜色和HOTSPOT和对齐
    249   "PERFORM FRM_COLOR_HOTSPOT USING LW_FCAT.
    250 * 格式调整
    251  " PERFORM FRM_FORMAT_FIELD USING LW_FCAT.
    252 
    253 ENDFORM.                    " FRM_FIELDCAT
    254 *&---------------------------------------------------------------------*
    255 *&      Form  FRM_GET_ALL_FIELD
    256 *&---------------------------------------------------------------------*
    257 *       text
    258 *----------------------------------------------------------------------*
    259 *       text
    260 *----------------------------------------------------------------------*
    261 FORM FRM_GET_ALL_FIELD .
    262 
    263   DATA W_REPID TYPE SY-REPID.
    264   W_REPID = SY-REPID.
    265 
    266   CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    267     EXPORTING
    268       I_PROGRAM_NAME         = W_REPID
    269 *     I_INTERNAL_TABNAME     =
    270       I_STRUCTURE_NAME       = 'ZEMP_TEST'
    271 *     I_CLIENT_NEVER_DISPLAY = 'X'
    272 *     I_INCLNAME             =
    273 *     I_BYPASSING_BUFFER     =
    274 *     I_BUFFER_ACTIVE        =
    275     CHANGING
    276       CT_FIELDCAT            = IT_FIELDCAT
    277     EXCEPTIONS
    278       INCONSISTENT_INTERFACE = 1
    279       PROGRAM_ERROR          = 2
    280       OTHERS                 = 3.
    281   IF SY-SUBRC <> 0.
    282     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    283            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    284   ENDIF.
    285 
    286 ENDFORM.                    " FRM_GET_ALL_FIELD
    287 *&---------------------------------------------------------------------*
    288 *&      Form  FRM_REDEFINE_FIELD
    289 *&---------------------------------------------------------------------*
    290 *       text
    291 *----------------------------------------------------------------------*
    292 *  -->  p1        text
    293 *  <--  p2        text
    294 *----------------------------------------------------------------------*
    295 FORM FRM_REDEFINE_FIELD .
    296   DATA LW_FCAT TYPE SLIS_FIELDCAT_ALV.
    297   CLEAR LW_FCAT.
    298 **  DEFINE INITIAL_FIELD.
    299 **    ADD 1 TO col_pos .
    300 **    CLEAR LW_FCAT.
    301 **    LW_FCAT-COL_POS = col_pos.
    302 **    LW_FCAT-TABNAME = TABNAME.
    303 **    LW_FCAT-SELTEXT_L = &1.
    304 **    LW_FCAT-SELTEXT_M = &1.
    305 **    LW_FCAT-SELTEXT_S = &1.
    306 **    LW_FCAT-FIELDNAME = &2.
    307 **  APPEND P_LW_FCAT TO IT_FIELDCAT.
    308 **  END-OF-DEFINITION.
    309 *
    310     LW_FCAT-COL_POS = '4'.
    311     LW_FCAT-SELTEXT_L = 'SALARY'.
    312     LW_FCAT-SELTEXT_M = 'SALARY'.
    313     LW_FCAT-SELTEXT_S = 'SALARY'.
    314     LW_FCAT-EMPHASIZE = 'C710'. "设置字段的颜色
    315     LW_FCAT-DO_SUM = 'X'.  "立即求和,只有I,F,P类型的列可以求和
    316 
    317     MODIFY IT_FIELDCAT FROM LW_FCAT
    318     TRANSPORTING EMPHASIZE SELTEXT_L SELTEXT_M SELTEXT_S EMPHASIZE DO_SUM
    319     WHERE FIELDNAME = 'ESLRY'.
    320 
    321     CLEAR LW_FCAT.
    322     LW_FCAT-HOTSPOT = 'X'.
    323     LW_FCAT-KEY = 'X'.
    324     MODIFY IT_FIELDCAT FROM LW_FCAT
    325     TRANSPORTING REF_TABNAME HOTSPOT KEY
    326     WHERE FIELDNAME = 'EMPID'.
    327 
    328 
    329 
    330 ENDFORM.                    " FRM_REDEFINE_FIELD
    331 *&---------------------------------------------------------------------*
    332 *&      Form  FRM_STATUS_EX
    333 *&---------------------------------------------------------------------*
    334 *       text
    335 *----------------------------------------------------------------------*
    336 *  -->  p1        text
    337 *  <--  p2        text
    338 *----------------------------------------------------------------------*
    339 FORM FRM_STATUS_EX USING EXTAB TYPE SLIS_T_EXTAB.
    340   DATA:BEGIN OF TAB OCCURS 0,
    341          FCODE LIKE RSMPE-FUNC,
    342        END OF TAB.
    343 
    344   TAB-FCODE = '&OL0'.APPEND TAB.
    345   TAB-FCODE = '&OAD'.APPEND TAB.
    346   TAB-FCODE = '&AVE'.APPEND TAB.
    347 
    348   SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'
    349   EXCLUDING TAB IMMEDIATELY.
    350 
    351 ENDFORM.                    " FRM_STATUS_EX
    352 
    353 *&---------------------------------------------------------------------*
    354 *&      Form  FRM_ALV_USER_COMMD
    355 *&---------------------------------------------------------------------*
    356 *       text
    357 *----------------------------------------------------------------------*
    358 *  -->  p1        text
    359 *  <--  p2        text
    360 *----------------------------------------------------------------------*
    361 FORM FRM_ALV_USER_COMMD USING R_UCOMM TYPE SY-UCOMM
    362                                  RS_SELFIELD TYPE SLIS_SELFIELD.
    363 
    364 DATA LW_EMPTEST TYPE CHAR10 VALUE 'ZEMP_TEST'.
    365 
    366   CASE R_UCOMM.
    367     WHEN 'PICK'.
    368 *    READ TABLE IT_ASSET INTO IW_ASSET INDEX RS_SELFIELD-TABINDEX.
    369     SET PARAMETER ID: 'DTB' FIELD LW_EMPTEST.
    370 
    371     CALL TRANSACTION 'SE11' ."AND SKIP FIRST SCREEN.
    372   ENDCASE.
    373 
    374 ENDFORM.                    " FRM_ALV_USER_COMMAND
    375 
    376 
    377 *&---------------------------------------------------------------------*
    378 *&      Form  FRM_ALV_DISPLAY
    379 *&---------------------------------------------------------------------*
    380 *       text
    381 *----------------------------------------------------------------------*
    382 *  -->  p1        text
    383 *  <--  p2        text
    384 *----------------------------------------------------------------------*
    385 FORM FRM_ALV_DISPLAY .
    386   DATA LW_REPID TYPE SY-REPID.
    387   LW_REPID = SY-REPID.
    388 
    389   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    390    EXPORTING
    391 *     I_INTERFACE_CHECK                 = ' '
    392 *     I_BYPASSING_BUFFER                = ' '
    393 *     I_BUFFER_ACTIVE                   = ' '
    394      I_CALLBACK_PROGRAM                = LW_REPID
    395      I_CALLBACK_PF_STATUS_SET          = 'FRM_STATUS_EX'
    396      I_CALLBACK_USER_COMMAND           = 'FRM_ALV_USER_COMMD'
    397 *     I_CALLBACK_TOP_OF_PAGE            = ' '
    398 *     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    399 *     I_CALLBACK_HTML_END_OF_LIST       = ' '
    400 *     I_STRUCTURE_NAME                  = 'ZEMP_TEST'
    401 *     I_BACKGROUND_ID                   = ' '
    402      I_GRID_TITLE                      = 'ALV DEMO'
    403 *     I_GRID_SETTINGS                   =
    404      IS_LAYOUT                         = IW_LAYOUT
    405      IT_FIELDCAT                       = IT_FIELDCAT
    406 *     IT_EXCLUDING                      =
    407 *     IT_SPECIAL_GROUPS                 =
    408 *     IT_SORT                           =
    409 *     IT_FILTER                         =
    410 *     IS_SEL_HIDE                       =
    411 *     I_DEFAULT                         = 'X'
    412 *     I_SAVE                            = ' '
    413 *     IS_VARIANT                        =
    414 *     IT_EVENTS                         = IT_EVENT
    415 *     IT_EVENT_EXIT                     =
    416 *     IS_PRINT                          =
    417 *     IS_REPREP_ID                      =
    418 *     I_SCREEN_START_COLUMN             = 0
    419 *     I_SCREEN_START_LINE               = 0
    420 *     I_SCREEN_END_COLUMN               = 0
    421 *     I_SCREEN_END_LINE                 = 0
    422 *     I_HTML_HEIGHT_TOP                 = 0
    423 *     I_HTML_HEIGHT_END                 = 0
    424 *     IT_ALV_GRAPHICS                   =
    425 *     IT_HYPERLINK                      =
    426 *     IT_ADD_FIELDCAT                   =
    427 *     IT_EXCEPT_QINFO                   =
    428 *     IR_SALV_FULLSCREEN_ADAPTER        =
    429 *   IMPORTING
    430 *     E_EXIT_CAUSED_BY_CALLER           =
    431 *     ES_EXIT_CAUSED_BY_USER            =
    432     TABLES
    433       T_OUTTAB                          = IT_ZEMP
    434 *   EXCEPTIONS
    435 *     PROGRAM_ERROR                     = 1
    436 *     OTHERS                            = 2
    437             .
    438   IF SY-SUBRC <> 0.
    439 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    440 *           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    441   ENDIF.
    442 
    443 ENDFORM.                    " FRM_ALV_DISPLAY
    • 列颜色

    列的颜色很简单,在构成ALV字段的FIELDCAT内表中有一个字段是EMPHASIZE,将一个char型4位的颜色代码分配到FIELDCAT内表这个字段即可。

    1 LW_FCAT-EMPHASIZE = 'C710'. "设置字段的颜色
    2 
    3 MODIFY IT_FIELDCAT FROM LW_FCAT
    4 TRANSPORTING EMPHASIZE
    5 WHERE FIELDNAME = 'ESLRY'.
    • 行颜色

    1. 在构成ALV数据的内表中,添加一个char型4位的字段(CLR),用来记录颜色代码

    1 TABLES ZEMP_TEST.
    2 
    3 TYPES: BEGIN OF TY_ZEMP.
    4            INCLUDE STRUCTURE ZEMP_TEST.
    5 TYPES: CLR TYPE CHAR4,"可以控制行颜色
    6         END OF TY_ZEMP.
    7 
    8 DATA: IT_ZEMP TYPE STANDARD TABLE OF TY_ZEMP,
    9       IW_ZEMP TYPE TY_ZEMP.

    2. 循环内表,设置颜色代码

    1   LOOP AT IT_ZEMP INTO IW_ZEMP.
    2      "员工编号为‘3的行,颜色为红色
    3    IF IW_ZEMP-EMPID = '3'.
    4         IW_ZEMP-CLR = 'C610'.
    5         MODIFY IT_ZEMP FROM IW_ZEMP.
    6         CLEAR IW_ZEMP.
    7      ENDIF.
    8   ENDLOOP.

    3. LAYOUT结构中INFO_FIELDNAME的值指定为 CLR

      IW_LAYOUT-INFO_FIELDNAME = 'CLR'.  "行颜色代码的字段
    • 单元格颜色

    单元格颜色的设置与行颜色设计基本一致

    1. 在构成ALV数据的内表中,添加一个内表 CellColor,用来记录颜色代码,需要设置颜色的字段名

    1 TYPES: BEGIN OF TY_ZEMP.
    2        INCLUDE STRUCTURE ZEMP_TEST.
    3 TYPES: CLR TYPE CHAR4,
    4        CELLCOLOR TYPE LVC_T_SCOL, "单元格颜色
    5        END OF TY_ZEMP.

    CellColor的结构:FNAME        ALV 控制: 内部表字段的字段名称
             COLOR        ALV 控制: 颜色代码     COLOR是一个结构:COL      ALV 控制: 颜色
                                        INT      ALV 控制: 强化    1/0
                                        INV      ALV 控制: 相反    1/0    设置颜色是前景,或者是背景
             NOKEYCOL  ALV 控制: 覆盖码颜色
    2. 循环内表,设置颜色代码

    3. LAYOUT结构中COLTAB_FIELDNAME的值指定为CELLCOLOR

      IW_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'. "单元格颜色内表字段


    最后在调用ALV函数时,设置layout,fieldcat参数

         IS_LAYOUT                         = IW_LAYOUT
         IT_FIELDCAT                       = IT_FIELDCAT
    • ALV工具栏

    可以自定义工具栏,或者添加标准ALV工具栏,然后去除一些不需要的功能,这样可以保留标准工具栏的功能

     1   DATA:BEGIN OF TAB OCCURS 0,
     2          FCODE LIKE RSMPE-FUNC,
     3        END OF TAB.
     4 
     5   TAB-FCODE = '&OL0'.APPEND TAB.
     6   TAB-FCODE = '&OAD'.APPEND TAB.
     7   TAB-FCODE = '&AVE'.APPEND TAB.
     8 
     9   SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'
    10   EXCLUDING TAB IMMEDIATELY.
    • 求和
    LW_FCAT-DO_SUM = 'X'.  "立即求和,只有I,F,P类型的列可以求和

    ----------------------------------------------------------

    附:ALV的颜色代码:http://blog.csdn.net/wren2004/article/details/3941551

       

    DATA:
    
      ok_code LIKE sy-ucomm,
    
      save_ok LIKE sy-ucomm,
    
      g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
    
      grid1 TYPE REF TO cl_gui_alv_grid,
    
      g_custom_container TYPE REF TO cl_gui_custom_container,
    
      gs_layout TYPE lvc_s_layo,
    
      g_max TYPE i VALUE 100.
    
    *§1.Extend your output table for a field, e.g., CELLTAB, that holds
    
    * information about the edit status of each cell for the
    
    * corresponding row (the table type is SORTED!).
    
    DATA: BEGIN OF gt_outtab OCCURS 0. "with header line
    
            INCLUDE STRUCTURE sflight.
    
    DATA: celltab TYPE lvc_t_styl.
    
    DATA: END OF gt_outtab.
    
    *---------------------------------------------------------------------*
    
    * MAIN *
    
    *---------------------------------------------------------------------*
    
    CALL SCREEN 100.
    
    *---------------------------------------------------------------------*
    
    * MODULE PBO OUTPUT *
    
    *---------------------------------------------------------------------*
    
    MODULE pbo OUTPUT.
    
      SET PF-STATUS 'MAIN100'.
    
      SET TITLEBAR 'MAIN100'.
    
      IF g_custom_container IS INITIAL.
    
        CREATE OBJECT g_custom_container
    
          EXPORTING
    
            container_name = g_container.
    
        CREATE OBJECT grid1
    
          EXPORTING
    
            i_parent = g_custom_container.
    
        PERFORM select_data_and_init_style.
    
    *§3.Provide the fieldname of the celltab field by using field
    
    * STYLEFNAME of the layout structure.
    
        gs_layout-stylefname = 'CELLTAB'.
    
        CALL METHOD grid1->set_table_for_first_display
    
          EXPORTING
    
            i_structure_name = 'SFLIGHT'
    
            is_layout        = gs_layout
    
          CHANGING
    
            it_outtab        = gt_outtab[].
    
      ENDIF.
    
    ENDMODULE.                    "pbo OUTPUT
    
    *---------------------------------------------------------------------*
    
    * MODULE PAI INPUT *
    
    *---------------------------------------------------------------------*
    
    MODULE pai INPUT.
    
      save_ok = ok_code.
    
      CLEAR ok_code.
    
      CASE save_ok.
    
        WHEN 'EXIT'.
    
          PERFORM exit_program.
    
        WHEN 'SWITCH'.
    
          PERFORM switch_edit_mode.
    
        WHEN OTHERS.
    
    * do nothing
    
      ENDCASE.
    
    ENDMODULE.                    "pai INPUT
    
    *---------------------------------------------------------------------*
    
    * FORM EXIT_PROGRAM *
    
    *---------------------------------------------------------------------*
    
    FORM exit_program.
    
      LEAVE PROGRAM.
    
    ENDFORM.                    "exit_program
    
    *&amp;---------------------------------------------------------------------*
    
    *&amp; Form SELECT_DATA_AND_INIT_STYLE
    
    *&amp;---------------------------------------------------------------------*
    
    FORM select_data_and_init_style.
    
      DATA: lt_sflight TYPE TABLE OF sflight WITH HEADER LINE,
    
      lt_celltab TYPE lvc_t_styl,
    
      l_index TYPE i.
    
      SELECT * FROM sflight INTO TABLE lt_sflight UP TO g_max ROWS.
    
    * move corresponding fields from lt_sflight to gt_outtab
    
      LOOP AT lt_sflight.
    
        MOVE-CORRESPONDING lt_sflight TO gt_outtab.
    
        APPEND gt_outtab.
    
      ENDLOOP.
    
    *§2.After selecting data, set edit status for each row in a loop
    
    * according to field SEATSMAX.
    
      LOOP AT gt_outtab.
    
        l_index = sy-tabix.
    
        REFRESH lt_celltab.
    
        IF gt_outtab-seatsmax GE 300.
    
          PERFORM fill_celltab USING 'RW'
    
          CHANGING lt_celltab.
    
        ELSE.
    
          PERFORM fill_celltab USING 'RO'
    
          CHANGING lt_celltab.
    
        ENDIF.
    
    *§2c.Copy your celltab to the celltab of the current row of gt_outtab.
    
        INSERT LINES OF lt_celltab INTO TABLE gt_outtab-celltab.
    
        MODIFY gt_outtab INDEX l_index.
    
      ENDLOOP.
    
    ENDFORM. " SELECT_DATA_AND_INIT_STYLE
    
    *&---------------------------------------------------------------------*
    
    *& Form FILL_CELLTAB
    
    *&---------------------------------------------------------------------*
    
    FORM fill_celltab USING value(p_mode)
    
    CHANGING pt_celltab TYPE lvc_t_styl.
    
      DATA: ls_celltab TYPE lvc_s_styl,
    
      l_mode TYPE raw4.
    
    * This forms sets the style of column 'PRICE' editable
    
    * according to 'p_mode' and the rest to read only either way.
    
      IF p_mode EQ 'RW'.
    
    *§2a.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_ENABLED to set a cell
    
    * to status "editable".
    
        l_mode = cl_gui_alv_grid=>mc_style_enabled.
    
      ELSE. "p_mode eq 'RO'
    
    *§2b.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_DISABLED to set a cell
    
    * to status "non-editable".
    
        l_mode = cl_gui_alv_grid=>mc_style_disabled.
    
      ENDIF.
    
      ls_celltab-fieldname = 'CARRID'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'CONNID'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'FLDATE'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'PRICE'.
    
      ls_celltab-style = l_mode.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'CURRENCY'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'PLANETYPE'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'SEATSMAX'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'SEATSOCC'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
      ls_celltab-fieldname = 'PAYMENTSUM'.
    
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    
      INSERT ls_celltab INTO TABLE pt_celltab.
    
    ENDFORM. " FILL_CELLTAB
    
    *&---------------------------------------------------------------------*
    
    *& Form SWITCH_EDIT_MODE
    
    *&---------------------------------------------------------------------*
    
    FORM switch_edit_mode.
    
      IF grid1->is_ready_for_input( ) EQ 0.
    
    * set edit enabled cells ready for input
    
        CALL METHOD grid1->set_ready_for_input
    
          EXPORTING
    
            i_ready_for_input = 1.
    
      ELSE.
    
    * lock edit enabled cells against input
    
        CALL METHOD grid1->set_ready_for_input
    
          EXPORTING
    
            i_ready_for_input = 0.
    
      ENDIF.
    
    ENDFORM. " SWITCH_EDIT_MODE

    -------------------------------------------------

    REPORT  zmmr_perf_eval_vend. 
    
    
    “Types Declaration 
    TYPES:BEGIN OF t_disp,
       lifnr TYPE lifnr, 
       name1 TYPE name1_gp, 
       bedat TYPE bedat, 
       rfq   TYPE I ,
       quot  TYPE I ,
       po    TYPE I ,
       cont  TYPE I ,
       sch   TYPE I ,
    END OF t_disp, 
    BEGIN OF t_temp, 
       lifnr TYPE lifnr, 
       CNT   TYPE I ,
    END OF t_temp, 
    BEGIN OF t_lfa1, 
       lifnr TYPE lifnr, 
       name1 TYPE name1_gp, 
    END OF t_lfa1. 
    
    “For ALV {
    DATA: “it_layout   TYPE lvc_s_layo, 
           gr_table TYPE REF TO cl_salv_table,
           gr_functions TYPE REF TO cl_salv_functions,
           gr_columns TYPE REF TO cl_salv_columns_table,
           gr_column TYPE REF TO cl_salv_column_table,
           gr_display TYPE REF TO cl_salv_display_settings,
           lr_grid  TYPE REF TO cl_salv_form_layout_grid,
           lr_gridx TYPE REF TO cl_salv_form_layout_grid,
           lr_logo  TYPE REF TO cl_salv_form_layout_logo,
           lr_label TYPE REF TO cl_salv_form_label,
           lr_text  TYPE REF TO cl_salv_form_text,
           lr_footer  TYPE REF TO cl_salv_form_layout_grid,
           ls_color TYPE lvc_s_colo
           . 
    ” For ALV } 
    
    DATA: it_disp TYPE TABLE OF t_disp, 
           wa_disp LIKE LINE OF it_disp,
           it_temp TYPE TABLE OF t_temp,
           wa_temp LIKE LINE OF it_temp,
           it_lfa1 TYPE TABLE OF t_lfa1,
           wa_lfa1 LIKE LINE OF it_lfa1.
    
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT001.
       SELECT-OPTIONS :  s_lifnr FOR wa_disp– lifnr,
       s_bedat FOR wa_disp– bedat.
    SELECTION-SCREEN END OF BLOCK b1.
    
    *———————————————————————-* 
    *       CLASS lcl_Perf_Eval DEFINITION 
    *———————————————————————-* 
    *
    *———————————————————————-* 
    CLASS lcl_perf_eval DEFINITION .
       PUBLIC SECTION.
       METHODS:  constructor ,
       fill_disp.
       METHODS build_fc. 
       METHODS disp_alv. 
       METHODS set_tol. 
       METHODS end_of_page. 
    
    ENDCLASS.                    “lcl_perf_eval DEFINITION 
    
    
    *———————————————————————-* 
    *       CLASS lcl_perf_eval IMPLEMENTATION 
    *———————————————————————-* 
    *
    *———————————————————————-* 
    CLASS lcl_perf_eval IMPLEMENTATION .
       METHOD constructor. 
         TRY.
           cl_salv_table=> factory( IMPORTING r_salv_table = gr_table CHANGING t_table = it_disp ). “Calling Factory Obj of Cl_ALV_TABLE
         CATCH cx_salv_msg.
         ENDTRY .
    
         IF gr_table IS INITIAL .
           MESSAGE TEXT002 TYPE ‘I’ DISPLAY LIKE ‘E’.
           EXIT .
         ENDIF .
       ENDMETHOD.                    “constructor
    
       METHOD fill_disp. 
         “RFQ 
         SELECT a~lifnr COUNT(  DISTINCT a~ebeln ) AS rfq FROM ekko AS a
         JOIN ekpo AS b ON a~ ebeln = b ~ebeln
         INTO CORRESPONDING FIELDS OF TABLE it_disp
         WHERE a~lifnr IN s_lifnr AND bedat IN s_bedat
         AND b~loekz NE ‘X’
         AND a~bstyp = ‘A’
         GROUP BY a~lifnr .
    
         “WRITE sy-dbcnt. 
         “Quot 
         SELECT lifnr COUNT( DISTINCT ebeln ) AS CNT FROM ekko
         APPENDING CORRESPONDING FIELDS OF TABLE it_temp
         WHERE lifnr IN s_lifnr AND bedat IN s_bedat
         AND loekz EQ space
         AND ( bstyp = ‘A’ AND statu = ‘A’ ) 
         GROUP BY lifnr.
    
         LOOP AT it_temp INTO wa_temp .
           wa_disp– lifnr = wa_temp –lifnr. 
           wa_disp– quot = wa_temp –CNT. 
           MODIFY it_disp FROM wa_disp TRANSPORTING lifnr quot WHERE lifnr = wa_temp–lifnr .
           CLEAR : wa_disp, wa_temp.
         ENDLOOP .
    
         ” PO 
         REFRESH it_temp.
         SELECT lifnr COUNT( DISTINCT a~ ebeln ) AS CNT FROM ekko AS a JOIN ekpo AS b ON a~ ebeln = b ~ebeln
         APPENDING CORRESPONDING FIELDS OF TABLE it_temp
         WHERE lifnr IN s_lifnr AND bedat IN s_bedat
         AND b~loekz EQ space
         AND bsart NE ‘UB’ 
         AND ( a~ bstyp = ‘F’ )
         GROUP BY lifnr.
    
         LOOP AT it_temp INTO wa_temp .
           wa_disp– lifnr = wa_temp –lifnr. 
           wa_disp– po = wa_temp –CNT. 
           MODIFY it_disp FROM wa_disp TRANSPORTING lifnr po WHERE lifnr = wa_temp–lifnr .
           IF sy–subrc NE 0. 
             APPEND wa_disp TO it_disp .
           ENDIF .
           CLEAR : wa_disp, wa_temp.
         ENDLOOP .
    
         “Cont. Created 
         REFRESH it_temp.
         SELECT lifnr COUNT( DISTINCT a~ ebeln ) AS CNT FROM ekko AS a JOIN ekpo AS b ON a~ ebeln = b ~ebeln
         APPENDING CORRESPONDING FIELDS OF TABLE it_temp
         WHERE lifnr IN s_lifnr AND bedat IN s_bedat
         AND b~loekz EQ space
         AND ( a~ bstyp = ‘K’ )
         GROUP BY lifnr.
    
         LOOP AT it_temp INTO wa_temp .
           wa_disp– lifnr = wa_temp –lifnr. 
           wa_disp– cont = wa_temp –CNT. 
           MODIFY it_disp FROM wa_disp TRANSPORTING lifnr cont WHERE lifnr = wa_temp–lifnr .
           IF sy–subrc NE 0. 
             APPEND wa_disp TO it_disp .
           ENDIF .
           CLEAR : wa_disp, wa_temp.
         ENDLOOP .
    
         “Sch Aggre 
         REFRESH it_temp.
         SELECT lifnr COUNT( DISTINCT a~ ebeln ) AS CNT FROM ekko AS a JOIN ekpo AS b ON a~ ebeln = b ~ebeln
         APPENDING CORRESPONDING FIELDS OF TABLE it_temp
         WHERE lifnr IN s_lifnr AND bedat IN s_bedat
         AND b~loekz EQ space
         AND ( a~ bstyp = ‘L’ )
         GROUP BY lifnr.
    
         LOOP AT it_temp INTO wa_temp .
           wa_disp– lifnr = wa_temp –lifnr. 
           wa_disp– sch = wa_temp –CNT. 
           MODIFY it_disp FROM wa_disp TRANSPORTING lifnr sch WHERE lifnr = wa_temp–lifnr .
           IF sy–subrc NE 0. 
             APPEND wa_disp TO it_disp .
           ENDIF .
           CLEAR : wa_disp, wa_temp.
         ENDLOOP .
    
         SELECT lifnr name1 FROM lfa1
         INTO CORRESPONDING FIELDS OF TABLE it_lfa1
         FOR ALL ENTRIES IN it_disp
         WHERE lifnr = it_disp –lifnr. 
    
         LOOP AT it_disp INTO wa_disp .
           READ TABLE it_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_disp–lifnr .
           IF sy–subrc EQ 0. 
             wa_disp– name1 = wa_lfa1 –name1. 
             MODIFY it_disp FROM wa_disp TRANSPORTING lifnr name1 WHERE lifnr = wa_disp– lifnr .
           ENDIF .
         ENDLOOP .
    
    
         SORT it_disp BY lifnr .
    
       ENDMETHOD.                    “fill_disp
       METHOD build_fc. 
    
         INCLUDE <color>.
         TRY.
           gr_columns = gr_table->get_columns ( ).
           gr_columns-> set_optimize( abap_true ).
           gr_column ?= gr_columns-> get_column( ‘LIFNR’ ).
           ls_color– col = 3 .
           gr_column-> set_color( ls_color ).
    
         CATCH cx_salv_not_found.
         ENDTRY .
    
         TRY.
           gr_column ?= gr_columns-> get_column( ‘NAME1’ ).
           gr_column-> set_long_text(‘Vendor Name’ ).
           gr_column-> set_short_text( ‘V.Name’ ).
           gr_column-> set_medium_text(‘Vendor Name’ ).
           ls_color– col = 3 .
           gr_column-> set_color( ls_color ).
         CATCH cx_salv_not_found.
         ENDTRY .
    
         TRY.
           gr_column ?= gr_columns-> get_column( ‘BEDAT’ ).
           gr_column-> set_visible( abap_false ).
           gr_column-> set_technical( VALUE = if_salv_c_bool_sap=> true ).
         CATCH cx_salv_not_found.
         ENDTRY .
    
         TRY.
           gr_column ?= gr_columns-> get_column( ‘RFQ’ ).
           gr_column-> set_short_text( ‘RFQ’ ).
           gr_column-> set_medium_text( ‘RFQ Created’ ).
         CATCH cx_salv_not_found.
         ENDTRY .
    
         TRY.
           gr_column ?= gr_columns-> get_column( ‘QUOT’ ).
           gr_column-> set_short_text( ‘Quot.’ ).
           gr_column-> set_medium_text( ‘Quotation Maintained’ ).
         CATCH cx_salv_not_found.
         ENDTRY .
         TRY.
           gr_column ?= gr_columns-> get_column( ‘PO’ ).
           gr_column-> set_short_text( ‘PO Created’ ).
         CATCH cx_salv_not_found.
         ENDTRY .
    
         TRY.
           gr_column ?= gr_columns-> get_column( ‘CONT’ ).
           gr_column-> set_short_text( ‘Cont.’ ).
           gr_column-> set_medium_text( ‘Contract Created’ ).
         CATCH cx_salv_not_found.
         ENDTRY .
         TRY.
           gr_column ?= gr_columns-> get_column( ‘SCH’ ).
           gr_column-> set_short_text( ‘Sch. Crea.’ ).
           gr_column-> set_medium_text( ‘Sch. Agr. Created’ ).
           gr_column-> set_long_text( ‘Schedule Agreement Created’ ).
         CATCH cx_salv_not_found.
         ENDTRY .
    
       ENDMETHOD.                    “build_fc
    
       METHOD disp_alv. 
    
         set_tol( ). 
         build_fc( ). 
         end_of_page( ). 
    
         gr_functions = gr_table->get_functions ( ).
         gr_functions-> set_all( abap_true ).
         gr_table-> set_top_of_list( lr_logo ).
         gr_table-> set_end_of_list( lr_footer ).
         gr_display = gr_table->get_display_settings ( ).
         gr_display-> set_striped_pattern( cl_salv_display_settings =>true ). 
    
    
         gr_table-> display( ).
    
       ENDMETHOD.                    “disp_alv
       METHOD set_tol. 
         DATA : lv_text( 30) TYPE C ,
               lv_date TYPE C LENGTH 10. 
    
         CREATE OBJECT lr_grid.
    
         lr_grid-> create_header_information( row = 1  column = 1
         TEXT = ‘MM: Vendor Evaluation’
         tooltip = ‘MM: Vendor Evaluation’ ).
    
         lr_gridx = lr_grid->create_grid ( row = 2  column = 1  ).
         lr_label = lr_gridx->create_label ( row = 2 column = 1
         TEXT = ‘Vendor No # :’ tooltip = ‘Vendor #.’ ). 
    
         IF s_lifnr IS NOT INITIAL .
           lv_text = s_lifnr–low .
           IF s_lifnr–high IS NOT INITIAL.
             CONCATENATE lv_text ‘ to ‘ s_lifnr –high INTO lv_text SEPARATED BY space.
           ENDIF .
         ELSE .
           lv_text = ‘Not Provided’.
         ENDIF .
         lr_text  = lr_gridx->create_text (  row = 2 column = 2
         TEXT = lv_text tooltip = lv_text ).
         “Vendor 
         lr_label = lr_gridx->create_label ( row = 3 column = 1
         TEXT = ‘Posting Date:’ tooltip = ‘Posting Date’ ). 
         IF s_bedat IS NOT INITIAL .
           WRITE s_bedat–low DD/MM/YYYY TO lv_text  . 
           IF s_bedat–high IS NOT INITIAL.
             WRITE s_bedat–high DD/MM/YYYY TO lv_date. 
             CONCATENATE lv_text ‘ to ‘ lv_date INTO lv_text SEPARATED BY space.
           ENDIF .
         ELSE .
           lv_text = ‘Not Provided’.
         ENDIF .
    
         lr_text  = lr_gridx->create_text (  row = 3 column = 2
         TEXT = lv_text  tooltip = lv_text ).
    
         lr_label = lr_gridx->create_label ( row = 4 column = 1
         TEXT = ‘Run Date:’ tooltip = ‘Run Date’ ). 
         lr_text  = lr_gridx->create_text (  row = 4 column = 2
         TEXT = sy– datum tooltip = sy –datum ). 
    
         lr_label = lr_gridx->create_label ( row = 5 column = 1 ).
         lr_label = lr_gridx->create_label ( row = 6 column = 1 ).
         lr_label = lr_gridx->create_label ( row = 7 column = 1 ).
         lr_label = lr_gridx->create_label ( row = 8 column = 1 ).
    
    
    * Create logo layout, set grid content on left and logo image on right 
         CREATE OBJECT lr_logo.
         lr_logo-> set_left_content( lr_grid ).
         lr_logo-> set_right_logo( ‘ZCHEM_N_LOGO_SMALL’ ). ” Image From OAER T.code
    
       ENDMETHOD.                    “set_Tol
    
       METHOD end_of_page. 
    
         DATA :lf_lines TYPE sy–tfill .
    
         DATA : “lr_label TYPE REF TO cl_salv_form_label,
               lf_flow  TYPE REF TO cl_salv_form_layout_flow .
    
         CREATE OBJECT lr_footer.
    *–get total lines in internal table 
         lf_lines = LINES( it_disp ).
         lr_label = lr_footer->create_label ( row = 1 column = 1 ).
         lr_label-> set_text( ‘Information:’ ).
         lf_flow = lr_footer->create_flow ( row = 2  column = 1 ).
         lf_flow-> create_text( TEXT = ‘Total Number of Entries’ ). 
         lf_flow = lr_footer->create_flow ( row = 2  column = 2 ).
         lf_flow-> create_text( TEXT = lf_lines ). 
    
       ENDMETHOD.                    “end_of_page
    
    ENDCLASS.                    “lcl_perf_eval IMPLEMENTATION 
    
    
    START-OF-SELECTION.
    DATA : obj_rep TYPE REF TO lcl_perf_eval. ” Declaring Object for Class 
    
    CREATE OBJECT : obj_rep. ” Creating Object 
    
     obj_rep->fill_disp( ). ” Calling class Methods
     obj_rep->disp_alv( ).
  • 相关阅读:
    STM32 ~ 查看系统时钟
    Allegro从.brd文件中导出器件封装
    Cadence原理图与Allegro交互
    Cadence关闭StartPage的方法
    emWin 移植
    python闭包
    python多线程之threading
    3.1决策树算法应用
    3.1决策树算法
    MyEclipse10 配置python的pyDev
  • 原文地址:https://www.cnblogs.com/mingdashu/p/alv_color.html
Copyright © 2011-2022 走看看