您的位置:首页 > 其它

Function实现ALV Table 二:ALV的弹出窗口形式

2008-09-19 10:14 274 查看
ALV除了可以显示列表在当前窗口,也可以用弹出窗口的形式显示列表。设置弹出窗口显示列表需要设置REUSE_ALV_GRID_DISPLAY四个参数:

i_screen_start_column 弹出窗口的左边距

i_screen_start_line 弹出窗口的上边距

i_screen_end_column 到弹出窗口显示结束的左边距

i_screen_end_line 到弹出窗口显示结束的上边距

通过这四个参数可以设置弹出窗口的显示大小和位置。

下面是效果图





源代码:

TYPE-POOLS slis.

SELECTION-SCREEN PUSHBUTTON
2(20) btn USER-COMMAND push.

initialization.

btn = 'Open new window'.

AT SELECTION-SCREEN.

PERFORM f_main.

*&---------------------------------------------------------------------*

*& Form
f_main

*&---------------------------------------------------------------------*

* ALV display

*----------------------------------------------------------------------*

FORM f_main.

DATA: lt_spfli TYPE TABLE OF spfli,

lt_fieldcat TYPE slis_t_fieldcat_alv.

PERFORM get_data TABLES lt_spfli.

PERFORM set_catalog CHANGING lt_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = lt_fieldcat

i_screen_start_column = 10

i_screen_start_line = 1

i_screen_end_column = 100

i_screen_end_line = 25

TABLES

t_outtab = lt_spfli.

ENDFORM. "f_main

*&---------------------------------------------------------------------*

*& Form
get_data

*&---------------------------------------------------------------------*

* Get the data for output

*----------------------------------------------------------------------*

* -->PT_SPFLI data internal table

*----------------------------------------------------------------------*

FORM get_data TABLES pt_spfli.

SELECT * FROM spfli INTO TABLE pt_spfli.

ENDFORM. "get_data

*&---------------------------------------------------------------------*

*& Form
set_catalog

*&---------------------------------------------------------------------*

* set fieldcatalog for alv output

*----------------------------------------------------------------------*

FORM set_catalog CHANGING
pt_fieldcat TYPE slis_t_fieldcat_alv.

DATA lwa_fieldcat TYPE slis_fieldcat_alv.

"macro

DEFINE add_field.

clear lwa_fieldcat.

lwa_fieldcat-col_pos = &1.

lwa_fieldcat-fieldname = &2.

lwa_fieldcat-seltext_l = &3.

append lwa_fieldcat to pt_fieldcat.

END-OF-DEFINITION.

"add field catalog

add_field 1
'MANDT' 'Client'.

add_field 2
'CARRID' 'Airline Code'.

add_field 3
'CONNID' 'Fight Number'.

add_field 4
'COUNTRYFR' 'Country From'.

add_field 5
'CITYFROM' 'City From'.

add_field 6
'AIRPFROM' 'Airpart From'.

add_field 7
'COUNTRYTO' 'Country To'.

add_field 8
'CITYTO' 'City To'.

add_field 9
'AIRPTO' 'Airpart To'.

add_field 10 'FLTIME' 'Fly Time'.

add_field 11 'DEPTIME' 'Dept Time'.

add_field 12 'ARRTIME' 'Arrive Time'.

add_field 13 'DISTANCE' 'Distance'.

add_field 14 'DISTID' 'Mass unit of distance'.

add_field 15 'FLTYPE' 'Flight type'.

add_field 16 'PERIOD' 'Arrival n day(s) later'.

ENDFORM. "set_catalog
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: