Function实现ALV Table五:布局功能
2008-09-23 10:24
323 查看
ALV提供了强大的标准功能,通过这些标准的功能我们可以对ALV列表进行设置它的显示布局和显示内容,如果我们下次还想用选择的方式显示这次设置的布局的话,那就要用到ALV的布局(Layout)功能了。通过布局功能,我们只需设置一次,以后都可以通过选择布局来显示之前所设置的布局。
1. 选择屏幕选择之前设置好的布局
2. 显示ALV列表
3. 我们还可以设置多个布局(Layout)
下面是源代码
PARAMETERS p_layout LIKE
disvariant-variant.
TYPES ty_tab_spfli TYPE spfli
OCCURS 0.
AT SELECTION-SCREEN ON
VALUE-REQUEST FOR p_layout.
PERFORM f_f4_layout CHANGING p_layout.
START-OF-SELECTION.
PERFORM f_display.
*&---------------------------------------------------------------------*
*& Form
f_getdata
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_SPFLI text
*----------------------------------------------------------------------*
FORM f_getdata TABLES pt_spfli
TYPE ty_tab_spfli.
SELECT * FROM spfli INTO TABLE pt_spfli.
ENDFORM. "f_getdata
*&---------------------------------------------------------------------*
*& Form
f_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_display.
DATA: lt_spfli TYPE ty_tab_spfli,
ls_variant TYPE disvariant.
PERFORM f_getdata TABLES lt_spfli.
PERFORM f_variant_build CHANGING ls_variant.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'SPFLI'
i_save = 'U'
is_variant = ls_variant
TABLES
t_outtab = lt_spfli.
ENDFORM. "f_display
*&---------------------------------------------------------------------*
*& Form
f_variant_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_VARIANT text
*----------------------------------------------------------------------*
FORM f_variant_build CHANGING
p_variant TYPE disvariant.
p_variant-report = sy-repid.
p_variant-variant = p_layout.
ENDFORM. "f_variant_build
*&---------------------------------------------------------------------*
*& Form
f_f4_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_VARIANT text
*----------------------------------------------------------------------*
FORM f_f4_layout CHANGING
p_variant TYPE disvariant-variant.
DATA: ls_variant TYPE disvariant,
l_exit TYPE char1.
ls_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = ls_variant
i_save
= 'A'
IMPORTING
e_exit
= l_exit
es_variant = ls_variant
EXCEPTIONS
not_found
= 1.
IF sy-subrc = 1.
MESSAGE ID sy-msgid TYPE 'S' NUMBER
sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF l_exit IS INITIAL.
p_variant = ls_variant-variant.
ENDIF.
ENDIF.
ENDFORM. "f_f4_layout
1. 选择屏幕选择之前设置好的布局
2. 显示ALV列表
3. 我们还可以设置多个布局(Layout)
下面是源代码
PARAMETERS p_layout LIKE
disvariant-variant.
TYPES ty_tab_spfli TYPE spfli
OCCURS 0.
AT SELECTION-SCREEN ON
VALUE-REQUEST FOR p_layout.
PERFORM f_f4_layout CHANGING p_layout.
START-OF-SELECTION.
PERFORM f_display.
*&---------------------------------------------------------------------*
*& Form
f_getdata
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_SPFLI text
*----------------------------------------------------------------------*
FORM f_getdata TABLES pt_spfli
TYPE ty_tab_spfli.
SELECT * FROM spfli INTO TABLE pt_spfli.
ENDFORM. "f_getdata
*&---------------------------------------------------------------------*
*& Form
f_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_display.
DATA: lt_spfli TYPE ty_tab_spfli,
ls_variant TYPE disvariant.
PERFORM f_getdata TABLES lt_spfli.
PERFORM f_variant_build CHANGING ls_variant.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'SPFLI'
i_save = 'U'
is_variant = ls_variant
TABLES
t_outtab = lt_spfli.
ENDFORM. "f_display
*&---------------------------------------------------------------------*
*& Form
f_variant_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_VARIANT text
*----------------------------------------------------------------------*
FORM f_variant_build CHANGING
p_variant TYPE disvariant.
p_variant-report = sy-repid.
p_variant-variant = p_layout.
ENDFORM. "f_variant_build
*&---------------------------------------------------------------------*
*& Form
f_f4_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_VARIANT text
*----------------------------------------------------------------------*
FORM f_f4_layout CHANGING
p_variant TYPE disvariant-variant.
DATA: ls_variant TYPE disvariant,
l_exit TYPE char1.
ls_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = ls_variant
i_save
= 'A'
IMPORTING
e_exit
= l_exit
es_variant = ls_variant
EXCEPTIONS
not_found
= 1.
IF sy-subrc = 1.
MESSAGE ID sy-msgid TYPE 'S' NUMBER
sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF l_exit IS INITIAL.
p_variant = ls_variant-variant.
ENDIF.
ENDIF.
ENDFORM. "f_f4_layout
相关文章推荐
- Function实现ALV Table五:布局功能
- AndroidStudio制作登录和注册功能的实现,界面的布局介绍
- Android利用ViewPager+GridView,实现网格布局(功能列表)并能水平滑动
- Android ListView功能扩展,实现高性能的瀑布流布局
- Android ListView功能扩展,实现高性能的瀑布流布局
- 网页瀑布流布局实现方法及功能扩展(附完整代码)
- js应用-实现博客个性主页布局拖拽功能
- jquery应用-实现博客个性主页布局拖拽功能
- Android 系统 UI - SystemUI之功能介绍和UI布局实现
- Android ListView功能扩展,实现高性能的瀑布流布局
- Velocity 布局laytou功能(二)-结合SpringMVC实现Velocity Layout功能
- SystemUI之功能介绍和UI布局实现
- 利用C++11的function和bind功能,实现QStandardItemModel的通用遍历函数
- 底部菜单布局+PopupWindows实现弹出菜单功能(初级篇)
- 自定义流水布局(实现相册功能)
- Android ListView功能扩展,实现高性能的瀑布流布局
- 利用热门标签布局,实现单选列表(实现ViewGroup多行显示单选功能)
- js实现web套打功能,支持拖动布局,支持按键移动支持打印预览,结果可保存至数据库中
- Android ListView功能扩展,实现高性能的瀑布流布局
- jQuery应用-实现博客个性主页布局拖拽功能