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除了可以顯示列表在當前窗口,也可以用彈出窗口的形式顯示列表。設置彈出窗口顯示列表需要設置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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章