Abap 使用结构构建Fieldcat的例外情况
我试图通过给函数“REUSE\u ALV\u FIELDCATALOG\u MERGE”一个结构来构建一个fieldcat目录 因为我的headerline有问题,所以我必须创建不同的内部表和结构。 通过一个循环,程序用带有表头的表格中的信息填充没有表头的表格 这是可行的,但如果我给我的fieldcat函数结构, 当程序尝试构建ALV(重用ALV网格显示)时,会出现运行时错误,因为函数“重用ALV网格目录合并”不会填充fieldcat 有人能告诉我为什么吗? 谢谢你的帮助。 这是我的密码:Abap 使用结构构建Fieldcat的例外情况,abap,Abap,我试图通过给函数“REUSE\u ALV\u FIELDCATALOG\u MERGE”一个结构来构建一个fieldcat目录 因为我的headerline有问题,所以我必须创建不同的内部表和结构。 通过一个循环,程序用带有表头的表格中的信息填充没有表头的表格 这是可行的,但如果我给我的fieldcat函数结构, 当程序尝试构建ALV(重用ALV网格显示)时,会出现运行时错误,因为函数“重用ALV网格目录合并”不会填充fieldcat 有人能告诉我为什么吗? 谢谢你的帮助。 这是我的密码: *D
*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.
*数据声明
类型:以“是”开头。
包括结构zsd_austab_lief。
包括结构ws_ausg1。
类型:is_ausg的末尾。
数据:is_ausg1类型为_ausg,
ws_ausg1类型为_ausg,
它的类型为带标题行的0,
wa_ausg01 is_ausg的类型表,
gt\U fieldcat型slis\U t\U fieldcat\U alv*在程序中,fieldcat在另一个位置声明
*建筑现场目录
将其从ausg01循环到is ausg1。
MOVE-correcated是_ausg1到ws_ausg1。
将ws_ausg1附加到wa_ausg01。
结束循环。
调用函数“重用\u ALV\u字段目录\u合并”
出口
i_结构_名称='WS_AUSG1'
i\u客户端\u从不\u显示='X'
i_绕过_缓冲区='X'
改变
ct\U fieldcat=gt\U fieldcat“>>
例外情况
接口不一致=1
程序错误=2
其他=3。
*阿尔夫
调用函数“重用\u ALV\u网格\u显示”
出口
i_callback_program=z_repid
is_布局=ps_布局
it_fieldcat=gt_fieldcat
i_save=gs_save
is_variant=gs_variant
i_callback_user_command='ALV_user_command'
i_回调_pf_status_set='status_set'
桌子
t_outtab=wa_ausg01。
您必须将字典结构的名称传递给重用\u ALV\u FIELDCATALOG\u MERGE
和类似的功能模块。他们不能处理任意的本地类型,因为他们严重依赖字典中保存的信息来构建字段目录。对于字典结构,我也有同样的问题。请您将修订后的代码添加到问题中好吗?