利用REUSE_ALV_HIERSEQ_LIST_DISPLAY进行多层输出(输出表结构的又一例)

这篇博客演示了如何利用ABAP中的REUSE_ALV_HIERSEQ_LIST_DISPLAY函数来实现多层表结构的输出。通过定义全局结构,选择表字段并设置输出格式,最后调用函数进行显示。博客内容详细地展示了从选择屏幕到数据选择,再到字段布局的初始化和数据展示的完整过程。

1、在程序里包含SLIS
type-pools: slis.

2、声明主表和明细表

* Global structure of list
types:  begin of t_table,
                     tabname  like dd03l-tabname,
                     ddtext   like dd02t-ddtext,
                     as4user  like dd02l-as4user,
        end of t_table.

types:  begin of ud_struct,
                     position   like dd03l-position,
                     tabname    like dd03l-tabname,
                     fieldname  like dd03l-fieldname,
                     ddtext     like dd03t-ddtext,

                     keyflag    like dd03l-keyflag,
                     rollname   like dd03l-rollname,
                     domname    like  dd03l-domname,
                     datatype   like dd03l-datatype,
                     ddleng     like dd03l-leng,
                     checktable like dd03l-checktable,
                     decimals   like dd03l-decimals,
                     eddtext    like dd03t-ddtext,
                     dddtext    like dd03t-ddtext,
       end of ud_struct.
data:   gt_outtabt  type t_table occurs 0 with header line.
data:   gt_outtabf  type ud_struct occurs 0 with header line.

3、申明主表和明细表的名称变量
        g_tabname_header type slis_tabname,
        g_tabname_item   type slis_tabname.

4、声明主表和明细表连接关键字变量
data:   gs_keyinfo  type slis_keyinfo_alv

5 、设置输出格式

6、具体完整样例
*&---------------------------------------------------------------------
*& Report  ZGETTABLEFIELD                                              *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

report  zgettablefield                                              .
* Data declaration
type-pools: slis.

* Global structure of list
types:  begin of t_table,
                     tabname  like dd03l-tabname,
                     ddtext   like dd02t-ddtext,
                     as4user  like dd02l-as

### 使用 `REUSE_ALV_LIST_DISPLAY` 在 ABAP 中的示例 在 ABAP 中,`REUSE_ALV_LIST_DISPLAY` 是一个功能强大的函数模块,用于以列表形式显示数据。以下是关于如何使用该函数模块的详细说明和示例代码。 #### 函数模块概述 `REUSE_ALV_LIST_DISPLAY` 是 SAP 提供的一个标准函数模块,用于将内部表中的数据以表格形式显示给用户。它支持多种自定义选项,例如字段选择、排序、过滤等[^3]。 #### 示例代码 以下是一个完整的示例代码,展示如何使用 `REUSE_ALV_LIST_DISPLAY` 来显示一个简单的内部表数据: ```abap REPORT z_reuse_alv_list_display. DATA: itab TYPE TABLE OF spfli, wa TYPE spfli. START-OF-SELECTION. SELECT * FROM spfli INTO TABLE itab UP TO 100 ROWS. IF itab IS INITIAL. WRITE: / 'No data found'. EXIT. ENDIF. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = sy-repid i_structure_name = 'SPFLI' TABLES t_outtab = itab EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE 'Error calling ALV function' TYPE 'E'. ENDIF. ``` #### 参数说明 - **`i_callback_program`**: 指定当前程序名(`sy-repid`),以便 ALV 能够回调当前程序。 - **`i_structure_name`**: 指定内部表的结构名称。在此示例中,我们使用了标准表 `SPFLI` 的结构。 - **`t_outtab`**: 包含要显示的数据的内部表。 - **异常处理**: 如果函数调用失败,可以通过异常处理捕获错误信息[^3]。 #### 自定义布局 如果需要进一步自定义 ALV 显示的外观,可以使用 `get_frontend_layout` 和 `set_frontend_layout` 方法[^1]。这些方法允许调整 ALV 的布局设置,例如列宽、字体大小等。 #### 注意事项 尽管 `REUSE_ALV_LIST_DISPLAY` 是一种简单且快速的方法来显示数据列表,但在更复杂的应用场景下,推荐使用 `CL_GUI_ALV_GRID` 类[^2]。这提供了更多的灵活性和功能扩展。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值