使用结构构建Fieldcat的例外情况

时间:2014-07-03 15:08:03

标签: abap

我尝试通过提供函数" REUSE_ALV_FIELDCATALOG_MERGE"来构建一个fieldcat目录。结构。

因为我在标题行上有问题,所以必须创建不同的内部表和结构。 使用循环,程序用Headerline填充没有Headerline的表,带有Header的信息。

这有效,但如果我给我的fieldcat函数结构, 当程序尝试构建ALV(REUSE_ALV_GRID_DISPLAY)时出现Runtimeerror,因为函数" REUSE_ALV_FIELDCATALOG_MERGE"不要填写fieldcat。

有人可以告诉我为什么吗? 谢谢您的帮助。 这是我的代码:

*Data Declaration

TYPES: BEGIN OF is_ausg.
        INCLUDE STRUCTURE zsd_austab_lief.
        INCLUDE STRUCTURE ws_ausg1.
TYPES: END OF is_ausg.

DATA: is_ausg1  TYPE is_ausg,
      ws_ausg1  TYPE is_ausg,
      it_ausg01 TYPE is_ausg OCCURS 0 WITH HEADER LINE,
      wa_ausg01 TYPE TABLE OF is_ausg,
      gt_fieldcat  TYPE slis_t_fieldcat_alv.   *in the program fieldcat is declared at an other place

*building Fieldcatalog 

LOOP AT it_ausg01 INTO is_ausg1.
    MOVE-CORRESPONDING is_ausg1 TO ws_ausg1.
    APPEND ws_ausg1 TO wa_ausg01.
  ENDLOOP.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING    
          i_structure_name       = 'WS_AUSG1'
          i_client_never_display = 'X'
          i_bypassing_buffer     = 'X'
        CHANGING
          ct_fieldcat            = gt_fieldcat    "<<<<< won´t be filled >>>>>>
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.

* ALV
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'      "<<<< Runtimeerror because of empty gt_fieldcat >>>
    EXPORTING
      i_callback_program       = z_repid
      is_layout                = ps_layout
      it_fieldcat              = gt_fieldcat
      i_save                   = gs_save
      is_variant               = gs_variant
      i_callback_user_command  = 'ALV_USER_COMMAND'
      i_callback_pf_status_set = 'STATUS_SET'
    TABLES
      t_outtab                 = wa_ausg01.

1 个答案:

答案 0 :(得分:2)

您必须将字典结构的名称传递给REUSE_ALV_FIELDCATALOG_MERGE和类似的功能模块。它们无法处理任意本地类型,因为它们严重依赖字典中保存的信息来构建字段目录。