为啥这样使用REUSE_ALV_FIELDCATALOG_MERGE无效

调用REUSE_ALV_FIELDCATALOG_MERGE如下:CALLFUNCTION'REUSE_ALV_FIELDCATALOG_MERGE'EXPORTINGi... 调用REUSE_ALV_FIELDCATALOG_MERGE如下: CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = g_repid i_internal_tabname = 'IT_DATA' i_inclname = g_repid CHANGING ct_fieldcat = it_fieldcat_alv EXCEPTIONS INCONSISTENT_INTERFACE = 1 PROGRAM_ERROR = 2 OTHERS = 3.对于IT_DATA, 如果这样定义:DATA: BEGIN OF it_data OCCURS 0, name LIKE trdir-name, clas LIKE trdir-clas, subc LIKE trdir-subc, cnam LIKE trdir-cnam, cdat LIKE trdir-cdat, myfield(1) TYPE c, END OF it_data.则整个程序完全正常,可是如果如下定义IT_DATA则it_fieldcat_alv里得不到任何结果,函数也没有报错:TYPES: BEGIN OF ty_data, name LIKE trdir-name, clas LIKE trdir-clas, subc LIKE trdir-subc, cnam LIKE trdir-cnam, cdat LIKE trdir-cdat, myfield(1) TYPE c, END OF ty_data.DATA: it_data TYPE TABLE OF ty_data.请高手指教什么问题? 跪谢!!!!! 展开
 我来答
匿名用户
2013-04-17
展开全部
的确,以前我一般会预先在系统里面做一个相应的addon的构造,比如叫ZSTRUCxxxx,然后在程序里面直接DATA:TH_STRUC TYPE ZSTRUCxxxx.CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = g_repid i_internal_tabname = 'TH_STRUC' i_inclname = g_repid CHANGING ct_fieldcat = it_fieldcat_alv EXCEPTIONS INCONSISTENT_INTERFACE = 1 PROGRAM_ERROR = 2 OTHERS = 3.这样维护起来比较方便,也可以避免使用occurs语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-17
展开全部
i_internal_tabname 这个参数似乎只能传用DATA定义的,TYPES定义的是不行的。另外,向这个参数传结构体也行。感觉这个FM不是很好。在代码里修改过i_internal_tabname所指的对象后,很容易出现几个问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-17
展开全部
the function module 'Reuse_alv_fieldcatalog_merge' will not work if we don't use occurs or with header line when we declare the internal table.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式