您的位置:首页 > 其它

ALV中下拉框设置

2014-11-24 15:59 295 查看

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

*& Report  ZALV_DROPLIST

*&

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

*&

*&

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

REPORT  zalv_droplist.

TYPE-POOLS: slis.

TABLES mara.

TYPES: BEGIN OF typ_alv,

         matnr LIKE makt-matnr,

         maktx LIKE makt-maktx,

         spras LIKE makt-spras,

         dd_handle TYPE int4,

       END OF typ_alv.

DATA: it_fieldcatalog TYPE lvc_t_fcat.

DATA: wa_fieldcatalog TYPE lvc_s_fcat.

DATA:
**--定义存储下拉列表的数据

      it_ddval TYPE lvc_t_drop,

      wa_ddval TYPE lvc_s_drop.

DATA: it_events TYPE slis_t_event,

      wa_events TYPE slis_alv_event.

DATA: it_alv TYPE TABLE OF typ_alv WITH HEADER LINE.

SELECT-OPTIONS: s_matnr FOR mara-matnr.

START-OF-SELECTION.

  SELECT matnr

    maktx

    spras

  INTO CORRESPONDING FIELDS OF TABLE it_alv

  FROM makt

  WHERE matnr IN s_matnr

  AND spras = '1'.

END-OF-SELECTION.

  CLEAR wa_fieldcatalog.

  wa_fieldcatalog-fieldname = 'MATNR'.

  wa_fieldcatalog-ref_field = 'MATNR'.

  wa_fieldcatalog-ref_table = 'MAKT'.

*  wa_fieldcatalog-edit       = 'X'.

  APPEND wa_fieldcatalog TO it_fieldcatalog.

  CLEAR wa_fieldcatalog.

  CLEAR wa_fieldcatalog.

  wa_fieldcatalog-fieldname = 'MAKTX'.

  wa_fieldcatalog-ref_field = 'MAKTX'.

  wa_fieldcatalog-ref_table = 'MAKT'.

  APPEND wa_fieldcatalog TO it_fieldcatalog.

  CLEAR wa_fieldcatalog.

  CLEAR wa_fieldcatalog.

  wa_fieldcatalog-fieldname  = 'SPRAS'.

  wa_fieldcatalog-outputlen = '7'.

*  wa_fieldcatalog-dd_outlen = '7'.

*  wa_fieldcatalog-intlen    = '2'.

*  wa_fieldcatalog-inttype   = 'C'.

  wa_fieldcatalog-coltext   = 'Language'.

*  wa_fieldcatalog-tooltip   = 'Language'.

*  wa_fieldcatalog-seltext   = 'Language'.
  wa_fieldcatalog-drdn_field = 'DD_HANDLE'.

  wa_fieldcatalog-edit       = 'X'.

  APPEND wa_fieldcatalog TO it_fieldcatalog.

  CLEAR wa_fieldcatalog.

  DATA: l_spras TYPE makt-spras,

        l_count TYPE i.
  LOOP AT it_alv.

    l_count = l_count + 1.

    SELECT spras

      INTO l_spras

      FROM makt

      WHERE matnr = it_alv-matnr.

      wa_ddval-handle = l_count.

      wa_ddval-value  = l_spras.

      APPEND wa_ddval TO it_ddval.

      CLEAR wa_ddval.

    ENDSELECT.

    wa_ddval-handle = l_count.

    wa_ddval-value  = ''.

    APPEND wa_ddval TO it_ddval.

    CLEAR wa_ddval.

*设置对应

    it_alv-dd_handle = l_count.

    MODIFY it_alv.

  ENDLOOP.

  wa_events-name = 'CALLER_EXIT'.

  wa_events-form = 'CALLER_EXIT'.

  APPEND wa_events TO it_events.

  CLEAR wa_events.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

    EXPORTING

      i_callback_program = sy-repid

      it_fieldcat_lvc    = it_fieldcatalog

      it_events          = it_events

    TABLES

      t_outtab           = it_alv.

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

*设置下拉列表,使Grid和内表能链接上

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

FORM caller_exit USING ls_data TYPE slis_data_caller_exit.

  DATA: l_alv TYPE REF TO cl_gui_alv_grid.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

    IMPORTING

      e_grid = l_alv.
  CALL METHOD l_alv->set_drop_down_table

    EXPORTING

      it_drop_down = it_ddval.

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