Function实现ALV Table一:最简单的ALV显示

rel="File-List" href="file:///C:%5CWINDOWS%5CTEMP%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CWINDOWS%5CTEMP%5Cmsohtml1%5C01%5Cclip_editdata.mso">

ALV的实现方法有三种:一种是用类CL_SALV_TABLE,一种是用类CL_GUI_GRID_DISPLAY,还有另外一种,跟前面两种不同,是用Function来实现的,它们是REUSE_ALV_LIST_DISPLAYREUSE_ALV_GRID_DISPLAY。现在用得最多的也是用Functoin来实现ALV,其实这两个Function的底层也是基于类CL_GUI_GRID_DISPLAY的。

 

先看一下两个Functoin实现的ALV的效果有什么区别?

 

REUSE_ALV_GRID_DISPLAY实现的ALV效果

 

REUSE_ALV_LIST_DISPLAY实现的ALV效果


其实实现ALV相当简单,主要就是调用那两个Function。下面我们来讲一下它的实现步骤:

一、 声明要显示的内容的内表,并取得数据

DATA: it_spfli TYPE TABLE OF spfli.

SELECT * FROM spfli INTO TABLE it_spfli.

二、  调用ALVFunction

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  EXPORTING

    i_structure_name = 'SPFLI'

  TABLES

t_outtab         = it_spfli.

     注:这里调用的FunctionREUSE_ALV_LIST_DISPLAY,如果你想实现第一种效果,你应该调

         REUSE_ALV_GRID_DISPLAY,这两种显示效果不一样,操作方式基本上一样。

这个例子调用Function时候用到了两个参数:一个是i_structure_name,一个是

t_outtabi_structure_name是输出列表的结构,t_outtab是输出列表的内容。

 

下面是所有源代码

DATA: it_spfli TYPE TABLE OF spfli.

SELECT * FROM spfli INTO TABLE it_spfli.

 

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  EXPORTING

    i_structure_name = 'SPFLI'

  TABLES

    t_outtab         = it_spfli.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ALV 中添加状态栏下拉框按钮的实现步骤如下: 1. 在函数模块中使用 FM REUSE_ALV_GRID_DISPLAY 调用 ALV 控件。 2. 在该函数模块中使用 FM REUSE_ALV_COMMENTARY_WRITE 向状态栏添加注释。 3. 在注释中添加 DROPDOWN_LIST ,并设置其属性和选项。 4. 在用户选择下拉列表选项时,处理用户选项并更新 ALV 数据。 以下是示例 ABAP 代码: ``` FUNCTION z_alv_dropdown. DATA: lt_fieldcat TYPE lvc_t_fcat, lt_layout TYPE lvc_s_layo, lt_sflight TYPE TABLE OF sflight, lt_ddl TYPE ddshretval. FIELD-SYMBOLS: <fs_sflight> TYPE sflight. *-- 1. 调用 ALV CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid i_callback_top_of_page = 'TOP-OF-PAGE' it_fieldcat = lt_fieldcat i_save = 'A' TABLES t_outtab = lt_sflight CHANGING it_layout = lt_layout. *-- 2. 添加注释和下拉框 CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = VALUE #( ( comment = 'Select Status:' ) ) i_logo = ' ' i_logo2 = ' ' i_type = 'S' i_width = 20. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = VALUE #( ( comment = ' ' ) ) i_logo = ' ' i_logo2 = ' ' i_type = 'S' i_width = 20. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = VALUE #( ( comment = 'DROPDOWN_LIST' ) ) i_logo = ' ' i_logo2 = ' ' i_type = 'S' i_width = 20. *-- 3. 设置下拉框选项 CALL FUNCTION 'DD_DOMVALUES_GET' EXPORTING domname = 'STATUS' TABLES ddshretval = lt_ddl. *-- 4. 处理用户选项并更新数据 LOOP AT lt_sflight ASSIGNING <fs_sflight>. IF sy-tabix > lt_layout-top_lines. IF <fs_sflight>-carrid = 'LH'. <fs_sflight>-status = lt_ddl[ 1 ]-domvalue_l. ELSEIF <fs_sflight>-carrid = 'UA'. <fs_sflight>-status = lt_ddl[ 2 ]-domvalue_l. ELSE. <fs_sflight>-status = lt_ddl[ 3 ]-domvalue_l. ENDIF. ENDIF. ENDLOOP. ENDFUNCTION. ``` 在上述代码中,我们使用了 DD_DOMVALUES_GET 函数获取了一个名为 STATUS 的域的所有可能值,并将这些值添加到一个名为 lt_ddl 的内部表中。然后,我们在 ALV 状态栏中添加了一个下拉框,以显示这些选项。当用户选择下拉框中的选项时,我们处理用户选项并更新 ALV 数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值