zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ALV FIELDCAT添加属性 – REUSE_ALV_FIELDCATALOG_MERGE函数详解编程语言

属性编程语言 详解 函数 添加 Merge ALV reuse
2023-06-13 09:11:52 时间

 

上面的例子中,只给 fieldcat 中增加了一行记录,即 ALV 只输出一列数据;

如若我们需要输出的 ALV 字段非常多,比如50个字段(会有这种需求);

这时候,就会重复操作同样的赋值语句,这只会增加我们的开发量,没法提高效率;

如果开发中又需要对一些字段做属性修改,又需要对相应的 Fieldcat 字段添加属性,这又是一个烦躁的过程;

 

一般这种情况下,可以通过两种方法解决上面的问题。

一种是通过定义宏,来为Fieldcat 赋值;

一种是通过REUSE_ALV_FIENDCATALOG_MERGE函数为Fieldcat赋值。

或者是两种方法结合。

1. 宏定义

宏定义的操作较为简单,不做详细说明,这里直接给出示例:


 

2. REUSE_ALV_FIENDCATALOG_MERGE函数

REUSE_ALV_FIENDCATALOG_MERGE函数可以根据现有的内表结构返回FIELDCAT字段结构信息;

其中包括数据字典中的结构、透明表、视图,自定义的Add-On表、结构、视图;

也包括程序中定义的全局、局部结构、内表。

 

REUSE_ALV_FIENDCATALOG_MERGE 函数的输入输出参数:

1) Import参数:

I_PROGRAM_NAME:程序名称

I_INTERNAL_TABNAME:内表名称,必须为输出内表的自定义STRUCTURE

I_STRUCTURE_NAME:结构名称,直接参考数据字典中的透明表、视图或STRUCTURE

I_CLIENT_NEVER_DISPLAY:显示Client字段

I_INCLNAME:Include 名称

 

2) Changing参数:

CT_FIELDCAT:导出的Fieldcat结构信息

 

这里需要注意的是,I_INTERNAL_TABNAME 与 I_STRUCTURE_NAME 参数只需一项。


 

从上面的程序可以看出,在定义内表结构时,使用了 Data 关键字来定义内表结构;

有时候,也会习惯于用TYPES关键字定义内表结构;但在这里,如若用Types定义结构时,该函数则会取不到任何相关的信息:

reuse_alv_fieldcatalog_merge

reuse_alv_fieldcatalog_merge

 

然后,还要注意的一点是,由于REUSE_ALV_FIELDCATALOG_MERGE 函数中导出的Fieldcat结构为slis_t_fieldcat_alv;

故该函数只能和 REUSE_ALV_GRID_DISPLAY 函数一起使用,不能用于 REUSE_ALV_GRID_DISPLAY_LVC 函数。

必须需要使用REUSE_ALV_GRID_DISPLAY_LVC 函数的,则可以通过前面讲到的定义宏来为Fieldcat提交相关信息。

 

下面给出一个示例:


原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/20175.html

cmac