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

来源:互联网 发布:centos php一键安装包 编辑:程序博客网 时间:2024/04/30 02:02

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 PUSHBUTTON2(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 CHANGINGpt_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


原文:http://blog.csdn.net/lhx20/article/details/2950243


原创粉丝点击