了解 ALV 中的 field catalog (ABAP List Viewer)

在 ABAP 中,字段目录是使用 ALV (ABAP List Viewer) 定义内部表中的数据显示方式的关键元素。它提供对 ALV 中显示的字段的各种属性的控制,例如列标题、对齐方式、可见性、可编辑性等。关键概念:

Field Catelog 字段目录:这是一个表(对于现代 ALV 网格,通常为 lvc_t_fcat 类型,对于旧 ALV 网格,通常为 slis_t_fieldcat_alv),其中包含有关 ALV 中显示的内部表的每个字段的元数据。

它定义了每列的显示方式(例如,列标题、字段对齐方式、输出长度)。

创建字段目录:您可以手动定义字段目录,也可以使用 LVC_FIELDCATALOG_MERGE 等功能模块根据数据字典结构 (DDIC) 自动创建一个字段目录。生成目录后,您可以对其进行修改以调整字段属性。

Field catalog

全局结构类型的所有字段都以相同的名称出现在数据表中。现在需要对字典结构进行更改或显示额外的列。

在这种情况下,我们可以调用函数模块 ( LVC_FIELDCATALOG_MERGE ),该模块将字典结构的字段目录返回到 lvc_t_fcat 类型的表。

现在我们可以循环它并可以进行我们想要的任何更改。

  1. 不支持 REUSE_*ALV* 功能模块。我建议切换到 CL_SALV_* 类。文档更好,有更多的示例程序 (DEMO_SALV_*),您可以获得支持。
  2. 如果你想获得基于字典的字段描述 (duh),你需要一个字典结构。如果您使用 在 ABAP 级别组装结构类型 TYPE ... BEGIN OF ... END OF ... ,据我所知,各个字段的字典类型首先转换为 ABAP 类型,然后才组装成结构类型。无论如何,原始字段的字典引用会丢失。不要在代码中定义输出表的结构,而是使用字典结构。

结构 slis_fieldcat_alv 提供了几种不同的文本组件,这些组件用作列标签。选择的文本取决于当前列宽(这通常取决于显示的数据的长度)。确保你相应地更改它们!

通常的技术是:通过传递 I_STRUCTURE_NAME,您可以获得与此 DDIC 结构(更改参数 ct_fieldcat)对应的字段目录。然后,您可以根据需要修改此内部表,并将修改后的表传递给 REUSE_ALV_GRID_DISPLAY

在我不区分不同大小的文本版本的情况下,我使用以下宏将所有文本字段设置为相同的值。

  • define set_field
dat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值