REUSE_ALV_FIELDCATALOG_MERGE 自动创建格式(FIELDCAT)


1、alv需要显示的时候字段太多,或者有现成的结果表的时候可以用函数创建字段的文字描述  ( fieldcat样式)。

2、先用函数把结构或者表转换

  I_STRUCTURE_NAME    可以是表也可以结构,如果是定义的结构需要用 like 参考


DATA: BEGIN OF gs_out,
        matnr LIKE mara-matnr,
        maktx LIKE makt-maktx,
      END OF gs_out.
DATA gt_out LIKE TABLE OF gs_out .

​

DATA: GT_FIELDCATALOG        TYPE  LVC_T_FCAT . 

  DATA: IT_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

  CLEAR GT_FIELDCATALOG[].
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      I_PROGRAM_NAME         = SY-REPID
      I_STRUCTURE_NAME       = LW_STRUCTURE
    CHANGING
      CT_FIELDCAT            = IT_FIELDCATALOG[]
    EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR          = 2
      OTHERS                 = 3.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF. 

3、格式转换:用于 REUSE_ALV_GRID_DISPLAY_LVC 调用

 SLIS_T_FIELDCAT_ALV  >>>>   LVC_T_FCAT.

 UNASSIGN:<FS_FIELDCAT>.

  CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS'
    EXPORTING
      IT_FIELDCAT_ALV = IT_FIELDCATALOG[]
*     IT_SORT_ALV     =
*     IT_FILTER_ALV   =
*     IS_LAYOUT_ALV   =
    IMPORTING
      ET_FIELDCAT_LVC = GT_FIELDCATALOG[]
*     ET_SORT_LVC     =
*     ET_FILTER_LVC   =
*     ES_LAYOUT_LVC   =
    TABLES
      IT_DATA         = GT_OUT[]
    EXCEPTIONS
      IT_DATA_MISSING = 1
      OTHERS          = 2.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF. 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: reuse_alv_fieldcatalog_merge是一个ABAP函数模块,用于合并两个ALV字段目录。它可以将两个字段目录合并成一个,并且可以根据需要进行排序、删除重复项等操作。这个函数模块通常用于在ALV报表中显示数据时,对字段目录进行处理和优化。 ### 回答2: reuse_alv_fieldcatalog_merge是一个ABAP函数模块,用于合并两个ALV字段目录。 ALV字段目录是一个内部表,包含了对应于显示在ALV表格中的字段的元数据信息。它定义了字段的名称、类型、宽度、对齐方式、数据类型和编辑输出选项等。 这个函数模块的作用是将两个字段目录合并为一个字段目录。它将两个字段目录的内容逐行比较,并进行合并。如果字段名称相同,它将会合并其他属性,如类型、宽度等。如果字段名称不同,它将会将两个字段分别加到合并后的目录中。 使用这个函数模块可以方便地合并两个字段目录,并避免手动处理合并过程中的重复和冲突。 使用示例: DATA: lt_fieldcat1 TYPE TABLE OF lvc_s_fcat, lt_fieldcat2 TYPE TABLE OF lvc_s_fcat, lt_merged_fieldcat TYPE TABLE OF lvc_s_fcat. lt_fieldcat1 = ... "填充第一个字段目录 lt_fieldcat2 = ... "填充第二个字段目录 CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING it_fieldcatalog1 = lt_fieldcat1 it_fieldcatalog2 = lt_fieldcat2 IMPORTING et_fieldcatalog = lt_merged_fieldcat. 现在,lt_merged_fieldcat中包含了合并后的字段目录,可以用于创建或修改一个ALV表格的显示。 ### 回答3: reuse_alv_fieldcatalog_merge是一个在ABAP程序中用于合并两个ALV Field Catalog的函数模块。它的作用是将两个Field Catalog合并成一个,以便在ALV报表中使用。 要使用reuse_alv_fieldcatalog_merge,首先需要定义两个ALV Field Catalog,然后将它们作为输入参数传递给该函数模块。当函数模块被调用时,它会将两个Field Catalog合并成一个,并返回合并后的Field Catalog。 函数模块会将两个Field Catalog中的字段和属性进行合并。如果两个Field Catalog中存在相同的字段,则它们的属性会根据合并规则进行相应的处理。例如,如果两个Field Catalog中都定义了同一个字段的标题(field catalog的字段名称),则可以选择保留某一个Field Catalog的标题,或者合并两个标题。 使用reuse_alv_fieldcatalog_merge可以方便地将两个Field Catalog合并在一起,以便在ALV报表中显示所需的字段和属性。合并后的Field Catalog可以后续用于生成ALV报表的列设置和字段显示。这可以大大简化ABAP程序的开发工作,提高开发效率。 总之,通过reuse_alv_fieldcatalog_merge函数模块,我们可以在ABAP程序中快速、简便地合并两个ALV Field Catalog,以便在ALV报表中使用。这有助于更好地展示和处理数据,并提高ABAP程序的可读性和实用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值