弹出ALV的几种方法(ALV POPUP)

来源:互联网 发布:手机系统更换软件 编辑:程序博客网 时间:2024/06/01 07:16

***方法1

DATA: go_alv    TYPE REF TO cl_salv_table,

      go_funlst TYPE REF TO cl_salv_functions_list.

DATA: itab TYPE STANDARD TABLE OF t001.

DATA: cxroot TYPE REF TO cx_root,

      excmsg TYPE        string.


SELECT * FROM t001 INTO TABLE itab .


TRY.

    cl_salv_table=>factory(

      IMPORTING

        r_salv_table = go_alv

      CHANGING

        t_table      = itab[] ).

  CATCH  cx_root INTO cxroot.

    excmsg = cxroot->get_text( ).

    MESSAGE e000(oo) WITH excmsg.

ENDTRY.


go_funlst = go_alv->get_functions( ).

go_funlst->set_all( 'X' ).


IF go_alv IS BOUND.

  go_alv->set_screen_popup(

    start_column = 10

    end_column  = 110

    start_line  = 5

    end_line    = 15 ).


  go_alv->display( ).

ENDIF.


***方法2

DATA: go_grid TYPE REF TO   cl_rs_alv_grid_popup,

      itab    TYPE TABLE OF t001  .


SELECT * FROM t001 INTO TABLE itab .

CALL SCREEN 100.


MODULE status_0100 OUTPUT.

  CREATE OBJECT go_grid

    EXPORTING

      i_structure_name = 'T001'

      i_repid          = sy-repid

      i_dynnr          = '0100'

      i_left           = 80

      i_top            = 80

      i_height         = 300

      i_width          = 800.


  CALL METHOD go_grid->show_data

    EXPORTING

      i_t_data = itab[].

ENDMODULE.                 " STATUS_0100  OUTPUT



***方法3
DATAitab   TYPE TABLE OF t001 ,
      result TYPE          c  .

SELECT FROM t001 INTO TABLE itab .

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
  EXPORTING
    i_title               'TEST'
    i_screen_start_column 15
    i_screen_start_line   1
    i_screen_end_column   128
    i_screen_end_line     20
    i_tabname             ''
    i_selection           ''
    i_structure_name      'T001'
  IMPORTING
    e_exit                result
  TABLES
    t_outtab              itab
  EXCEPTIONS
    program_error         1

    OTHERS                2.