ALV最简易用法--Fuction类

TYPE-POOLS SLIS.

ALV显示

FORM OUTPUT_ALV .
 DATA: GT_FIELDCAT        TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
         GT_FIELDGROUPS TYPE SLIS_T_SP_GROUP_ALV,
         GT_LAYOUT          TYPE SLIS_LAYOUT_ALV,
         GT_SORTFIELDS TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
         GT_EVENTS          TYPE SLIS_T_EVENT.
 DATA: NN TYPE I VALUE 0.
 DATA: TITLE TYPE LVC_TITLE.
 DEFINE HOUT.
    NN = NN + 1.
    GT_FIELDCAT -COL_POS       = NN.          列号
    GT_FIELDCAT -TABNAME       = 'GT_ITAB'.    
    GT_FIELDCAT -FIELDNAME     = &1.           字段名
    GT_FIELDCAT -SELTEXT_M     = &2.           显示的列名
    GT_FIELDCAT -CFIELDNAME    = &3.
    GT_FIELDCAT -DATATYPE      = &4.
    GT_FIELDCAT -REF_TABNAME   = &5.
    GT_FIELDCAT -REF_FIELDNAME = &6.
    GT_FIELDCAT -DO_SUM        = &7.
    GT_FIELDCAT -HOTSPOT       = &8.
    APPEND GT_FIELDCAT .
    CLEAR GT_FIELDCAT .
 END-OF-DEFINITION.
 
 HOUT 'col1'      ' 列名 1'            '' ''   '' '' '' ''.
 HOUT 'col2'      ' 列名 2'          '' ''   '' '' '' 'X'.
 HOUT 'col3'      ' 列名 3'          '' ''   '' '' '' ''.
 
**
 GT_LAYOUT-ZEBRA             = 'X'. ALV 控制: 可选行颜色 (带) , 隔行显示颜色.
 GT_LAYOUT-GET_SELINFOS      = 'X'.
 GT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. " 优化列宽选项是否设置
 GT_LAYOUT-DETAIL_POPUP      = 'X'. " 是否弹出详细信息窗口
 GT_LAYOUT-NO_KEYFIX         = 'X'.
 GT_LAYOUT-NO_TOTALLINE      = 'X'.
 
 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM      = SY-REPID
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
      IS_LAYOUT               = GT_LAYOUT
      IT_FIELDCAT             = GT_FIELDCAT []
      IT_SPECIAL_GROUPS       = GT_FIELDGROUPS[]
      IT_SORT                 = GT_SORTFIELDS[]
      IT_EVENTS               = GT_EVENTS[]
      I_GRID_TITLE            = TITLE
    TABLES
      T_OUTTAB                = GT_ITAB
    EXCEPTIONS
      PROGRAM_ERROR           = 1
      OTHERS                  = 2.
ENDFORM.                    " OUTPUT_ALV
*通过热点响应程式的单击事件和双击等事件*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
                  SELFIELD TYPE SLIS_SELFIELD.
 DATA: L_TA TYPE SY-TCODE VALUE 'SLIS_DUMMY'.
 CLEAR:L_MATNR.
 CHECK SY-SUBRC = 0.
 IF R_UCOMM EQ '&IC1'.
    CASE SELFIELD-SEL_TAB_FIELD.
      WHEN 'GT_ITAB-LABST'.
        READ TABLE GT_ITAB INDEX SELFIELD-TABINDEX.
    
    ENDCASE.
  ENDIF.
ENDFORM.                    "USER_COMMAND
 
为某列赋上颜色
DATA: begin of wa,
     NO(18) type c,
       STATUS TYPE P DECIMALS 0,
colour TYPE slis_t_specialcol_alv,
        end of wa.
DATA itab like TABLE OF wa.
DATA: color    TYPE slis_t_specialcol_alv WITH HEADER LINE.
loop at itab into wa.
 
* 循环指定满足列需求的列的颜色 *
          color-fieldname = 'STATUS'.  为某一列着色
          color-color-col = '5'. "1 蓝色 ,3 黄色 4 淡蓝色 5 绿色 6 红色 7 桔黄
          append color. .
          wa_ziebtmsg-colour = color[].
          modify itab from wa.
          clear wa.
endloop.
GT_LAYOUT-coltab_fieldname    = 'COLOUR'. " 控件颜色哪行哪列的控制列

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值