有的时候写好代码调用 REUSE_ALV_FIELDCATALOG_MERGE 出错提示为 READ_REPORT_LINE_TOO_SAP刘梦_新浪博客...

有的时候写好代码调用 REUSE_ALV_FIELDCATALOG_MERGE 时会莫名的出错提示为 READ_REPORT_LINE_TOO_LONG 下面列出的错误信息有这么一句.
  The internal table "/FUNCTION=K_KKB_FIELDCAT_MERGE/DATA=L_ABAP_SOURCE[]" is 72
characters wide. The program line is 99 characters wide.
该FM会把整个程序代码拷贝至其内表中,如果程序的行超过72个字符,即报如上错误。可以做以下设置。
有的时候写好代码调用 <wbr>REUSE_ALV_FIELDCATALOG_MERGE <wbr>出错提示为 <wbr>READ_REPORT_LINE_TOO

有的时候写好代码调用 <wbr>REUSE_ALV_FIELDCATALOG_MERGE <wbr>出错提示为 <wbr>READ_REPORT_LINE_TOO



调用REUSE_ALV_FIELDCATALOG_MERGE函数来获取FIELDCAT


  REUSE_ALV_FIELDCATALOG_MERGE函数可根据内表结构返回FIELDCAT字段结构信息,具体的参数等信息请查看ALV调用的几个标准函数里相关的介绍,好的,那么让我们开始学习如何使用此函数。
 
  REPORT  ZZWEI_ALV_DEMO.

 
  *ALV START
   TYPE-POOLS:SLIS. "调用该类型池
 
  *定义FIELDCAT与LAYOUT
   DATA:fieldCat TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
         layout TYPE SLIS_LAYOUT_ALV,
         w_repid LIKE SY-REPID.

 
  TABLES:SPFLI.
   DATA:LSPFLI LIKE STANDARD TABLE OF SPFLI WITH HEADER LINE.

 
  *屏幕开始事件
   START-OF-SELECTION.
     PERFORM GETDATA.
     PERFORM CATALOG.
     PERFORM ALVSHOW.
  
 
  *The Function Of GETDATA
   FORM GETDATA.
     SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE LSPFLI.
   ENDFORM.
  
 
  *FORM CATALOG 根据结构体获取FIELDCAT
   FORM CATALOG.
     w_repid = SY-REPID.
     CLEAR fieldCat.
     CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
        I_PROGRAM_NAME               = w_repid
       *I_INTERNAL_TABNAME           =
        I_STRUCTURE_NAME             = 'SPFLI'
      *I_CLIENT_NEVER_DISPLAY       = 'X'
      *I_INCLNAME                   =
      *I_BYPASSING_BUFFER           =
      *I_BUFFER_ACTIVE              =
      CHANGING

 
        CT_FIELDCAT                  = fieldCat[] "导出FIELDCAT内表数据
       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.
 
    "对fieldcat属性的修改
     *READ TABLE fieldCat INDEX 2. "将第二列设为热点显示
     *fieldCat-HOTSPOT = 'X'.
     *MODIFY fieldCat INDEX 2.
     *
     *READ TABLE fieldCat INDEX 4. "将第四列设为KEY值字段
     *fieldCat-KEY = 'X'.
     *MODIFY fieldCat INDEX 4.
     *
     *READ TABLE fieldCat INDEX 5. "将第五列设为CHECKBOX
     *fieldCat-CHECKBOX = 'X'.
     *MODIFY fieldCat INDEX 5.
     layout-COLWIDTH_OPTIMIZE = 'X'. "设置LAYOUT输出格式最优化
   ENDFORM.

 
  
 
  *The Function Of Show ALV
   FORM ALVSHOW.
     CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
         I_CALLBACK_PROGRAM                = w_repid
         I_GRID_TITLE                      = 'ALV REPORT TEST' "ALV显示标题
 
        IS_LAYOUT                         = layout
         IT_FIELDCAT                       = fieldCat[]
       TABLES
         T_OUTTAB                          = LSPFLI
       EXCEPTIONS
         PROGRAM_ERROR                     = 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.
   ENDFORM.


引自:http://www.cnblogs.com/foxting/archive/2012/07/25/2607687.html

欢迎关注订阅号:SAP学习记录 (SAPlearning )

PO <wbr><wbr>text <wbr><wbr>copy <wbr><wbr>rules <wbr><wbr>:copy <wbr><wbr>PR <wbr><wbr>item <wbr><wbr>text <wbr><wbr>to <wbr><wbr>PO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值