ALV GRID的LIST下拉表框

*数据声明:

TYPES:
       BEGIN OF t_data,
         matnr   TYPE makt-matnr,
         maktx   TYPE makt-maktx,
         spras   TYPE makt-spras,
       END   OF t_data,
       BEGIN OF t_alv,
         matnr     TYPE makt-matnr,
         maktx     TYPE makt-maktx,
         spras     TYPE makt-spras,
         dd_handle TYPE int4,
       END   OF t_alv.

 

DATA:
      gt_fieldcatalog       TYPE lvc_t_fcat, "清单观察器控制的字段目录
      gw_fieldcatalog      TYPE lvc_s_fcat, "ALV 控制: 字段目录

      gt_events               TYPE slis_t_event,
      gw_events             TYPE slis_alv_event,


      gt_data                  TYPE TABLE OF t_data,
      gw_data                 TYPE          t_data,
      gt_alv                     TYPE TABLE OF t_alv,
      gw_alv                    TYPE          t_alv,


      g_repid                   TYPE sy-repid VALUE sy-repid.

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

Data gt_ddval type lvc_t_drop.      "下拉列表框 Table Type

                                                  

Data gw_ddval type lvc_s_drop.    "下拉列表框 是lvc_s_drop是lvc_t_drop的结构

 

 

*在定义输出字段格式时,定义要生成下拉列表的字段

 CLEAR gw_fieldcatalog.
  gw_fieldcatalog-fieldname  = 'SPRAS'.           "在语言代码字段
  gw_fieldcatalog-OUTPUTLEN = '8'.                 "ALV 控制: 列的字符宽度
  gw_fieldcatalog-dd_outlen = '7'.                   "ALV 控制: 输出字符长度
  gw_fieldcatalog-intlen    = '2'.                       "以字节计的内部长度
  gw_fieldcatalog-inttype   = 'C'.                      "ABAP 数据类型(C,D,N,...)
  gw_fieldcatalog-coltext   = 'Language'.         "ALV 控制: 列标题
  gw_fieldcatalog-tooltip   = 'Language'.         "ALV 控制: 列抬头的工具提示
  gw_fieldcatalog-seltext   = 'Language'.        "ALV 控制: 对话功能的列标识符
  gw_fieldcatalog-drdn_field = 'DD_HANDLE'.  "ALV 控制: 内部表字段的字段名称
  gw_fieldcatalog-EDIT       = 'X'.                      "ALV 控制: 准备输入
  APPEND gw_fieldcatalog TO gt_fieldcatalog.

 

*---------------------------------------------------------------------*
*根据物料的所有的语言生成不同的生成下拉列表
*---------------------------------------------------------------------*
FORM creat_dropdown_values.
  DATA: l_spras TYPE makt-spras,
            l_count TYPE i.
  LOOP AT gt_alv INTO gw_alv.         
    ADD 1 TO l_count.
      SELECT spras INTO l_spras FROM makt  WHERE matnr = gw_alv-matnr.
          CLEAR gw_ddval.
          gw_ddval-handle = l_count.
          gw_ddval-value  = l_spras.
         APPEND gw_ddval TO gt_ddval.
      ENDSELECT.

    CLEAR gw_ddval.
    gw_ddval-handle = l_count.
    gw_ddval-value  = '                 '.
    APPEND gw_ddval TO gt_ddval.
*设置对应
    gw_alv-dd_handle = l_count.
    MODIFY gt_alv FROM gw_alv.
  ENDLOOP.
ENDFORM.     

 

*---------------------------------------------------------------------*
*设置下拉列表,使Grid和内表能链接上
*---------------------------------------------------------------------*
FORM caller_exit USING ls_data TYPE slis_data_caller_exit.

  DATA: l_ref_alv TYPE REF TO cl_gui_alv_grid.


  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
        e_grid = l_ref_alv.
  CALL METHOD l_ref_alv->set_drop_down_table
    EXPORTING
        it_drop_down = gt_ddval.
ENDFORM.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值