通过使用结构来构建Fieldcat异常



我尝试通过给函数"REUSE_ALV_FIELDCATALOG_MERGE"一个结构来构建一个fieldcat-catalog。

因为我的标题有问题,我必须创建不同的内部表和结构。对于Loop,程序用带有Header的表中的信息填充没有Headerline的表。

这个可以工作,但是如果我给我的fieldcat-function这个结构,当程序试图构建ALV (REUSE_ALV_GRID_DISPLAY)时出现运行时错误,因为函数"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.

必须将字典结构的名称传递给REUSE_ALV_FIELDCATALOG_MERGE和类似的功能模块。它们不能在任意的局部类型上工作,因为它们严重依赖于字典中保存的信息来构建字段编目。

相关内容

  • 没有找到相关文章

最新更新