关于 REUSE_ALV_FIELDCATALOG_MERGE 用法

往往在ALV展示时候,想要对fcat属性设置修改。那这样的话,如何获取我想要的那列并对其设置属性呢?
在这里插入图片描述
实现上面的设置前,需要获取ALV的表头目录。两种方式如下;

1.定义好结构的
I_STRUCTURE_NAME 传入se11里定义好的结构名

 call function 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
     I_STRUCTURE_NAME             = '结构名'
     changing
       ct_fieldcat                  = lt_fieldcat
*    EXCEPTIONS
*      INCONSISTENT_INTERFACE       = 1
*      PROGRAM_ERROR                = 2
*      OTHERS                       = 3
             .
   if sy-subrc <> 0.
* Implement suitable error handling here
   endif.

2.未在SE11定义结构,而是使用内部定义表
先data定义内部表的类型(不是TYPES:BEGIN OF)
like参照字段名,
继续定义标准表lt_makt LIKE STANDARD TABLE OF str_makt.
i_program_name 和 i_inclname 参数都要写为本程序名 (sy-repid)

DATA: BEGIN OF str_makt,
   matnr like makt-matnr,
  maktx like makt-maktx,
  END OF str_makt.

  DATA: lt_makt LIKE STANDARD TABLE OF str_makt.
  DATA: lt_fieldcat TYPE slis_t_fieldcat_alv.

  select matnr maktx
    INTO TABLE lt_makt
    FROM makt
    WHERE spras = sy-langu.

   call function 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      I_PROGRAM_NAME               = sy-repid
      I_INTERNAL_TABNAME           = 'STR_MAKT'
*      I_STRUCTURE_NAME             =
*      I_CLIENT_NEVER_DISPLAY       = 'X'
      I_INCLNAME                   = sy-repid
      I_BYPASSING_BUFFER           = 'X'
*      I_BUFFER_ACTIVE              =
     changing
       ct_fieldcat                  = lt_fieldcat
*    EXCEPTIONS
*      INCONSISTENT_INTERFACE       = 1
*      PROGRAM_ERROR                = 2
*      OTHERS                       = 3
             .
   if sy-subrc <> 0.
* Implement suitable error handling here
   endif.


   call FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      IT_FIELDCAT = LT_FIELDCAT
      TABLES
        T_OUTTAB = LT_MAKT.

之前参考了一个博客只让用like,但是我用了type有时候也可以出来,有时候又找不到,比如下面方式。你要是知道为什么欢迎告诉我呀!
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值