ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ALV(2)

ALV(2)

原创 Linux操作系统 作者:kity534 时间:2010-03-26 20:06:37 0 删除 编辑

CN10行显示背景色为红色
列LAND1显示背景色为橙色
CURRANCY 为EUR的单元格显示为绿色
双击行项目显示详细信息
REPORT ztest_alv001.
TABLES:t001.
TYPE-POOLS:slis.

DATA:
t_fieldcat TYPE slis_t_fieldcat_alv,
fs_fieldcat LIKE LINE OF t_fieldcat,
fs_layout TYPE slis_layout_alv ,
w_fieldname(20),
w_prog TYPE sy-repid.


DATA: BEGIN OF t_t001 OCCURS 0,
      color(4),
      cell TYPE slis_t_specialcol_alv,
      bukrs LIKE t001-bukrs,
      land1 LIKE t001-land1,
      waers LIKE t001-waers,
      END OF t_t001.
DATA:
fs_cell LIKE LINE OF t_t001-cell.

DATA:BEGIN OF p_row OCCURS 0,
     index LIKE sy-tabix,
  END OF p_row.

START-OF-SELECTION.
  PERFORM. getdata.
  PERFORM. fieldcat.

  IF NOT t_t001[] IS INITIAL.
    w_prog = sy-repid.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program = w_prog
        is_layout          = fs_layout
        it_fieldcat        = t_fieldcat
      TABLES
        t_outtab           = t_t001
      EXCEPTIONS
        program_error      = 1
        OTHERS             = 2.
  ELSE.
    MESSAGE 'DATA WAS NOT FOUND' TYPE 'I' .
    STOP.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  GETDATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM. getdata .
  SELECT bukrs land1 waers
    INTO (t_t001-bukrs,t_t001-land1,t_t001-waers)
    FROM t001
    WHERE waers = 'RMB' OR waers = 'JPY' OR waers = 'EUR'.
    IF t_t001-bukrs EQ 'CN10'.
      t_t001-color = 'C610'.
    ENDIF.
    IF t_t001-waers EQ 'EUR'.
      p_row-index = sy-dbcnt.
      APPEND p_row.
      CLEAR p_row.
    ENDIF.
    APPEND t_t001.
    CLEAR t_t001.
  ENDSELECT.


ENDFORM.                    " GETDATA
*&---------------------------------------------------------------------*
*&      Form  FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM. fieldcat .
  CLEAR fs_fieldcat .
  fs_fieldcat-fieldname = 'BUKRS'.
  fs_fieldcat-seltext_l = 'COMPANY CODE'.
  fs_fieldcat-col_pos = 1.
  fs_fieldcat-key = 'X'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat .
  fs_fieldcat-fieldname = 'LAND1'.
  fs_fieldcat-seltext_l = 'LAND1'.
  fs_fieldcat-col_pos = 2.
  fs_fieldcat-key = ' '.
  fs_fieldcat-emphasize = 'C710'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat .
  fs_fieldcat-fieldname = 'WAERS'.
  fs_fieldcat-seltext_l = 'CURRANCY'.
  fs_fieldcat-col_pos = 3.
  fs_fieldcat-key = ' '.
  APPEND fs_fieldcat TO t_fieldcat.

  fs_cell-fieldname = 'WAERS' .
  fs_cell-color-col = 5.
  fs_cell-nokeycol = 'X'.
  fs_cell-color-int = 1.
  APPEND fs_cell TO t_t001-cell.
  LOOP AT p_row.
    MODIFY t_t001 INDEX p_row-index TRANSPORTING cell.
  ENDLOOP.

  fs_layout-info_fieldname = 'COLOR'.
  fs_layout-coltab_fieldname = 'CELL'.
  fs_layout-f2code = '&ETA'.
ENDFORM.                    " FIELDCAT

OUTPUT:

双击行项目:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13890288/viewspace-630511/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ALV(1)
请登录后发表评论 登录
全部评论

注册时间:2009-06-03

  • 博文量
    9
  • 访问量
    8448