二维码

在Dialog中实现下拉框效果并对下拉框赋自定义的值

Twilight发表于 2014-02-07 17:48君不见 最后回复于 2022-01-07 13:18 [复制链接] 10117 29

一般在Dialog中用下面一个函数,显示下拉列表,本例以f4函数来实现的
  1. CALL FUNCTION 'VRM_SET_VALUES'
  2.     EXPORTING
  3.       ID              = 'P_LGORT'   "对应屏幕的input框名称
  4.       VALUES          = I_VALUES[]
  5.     EXCEPTIONS
  6.       ID_ILLEGAL_NAME = 1
  7.       OTHERS          = 2.
复制代码

PS:绘制屏幕时,设置下拉参数有两种:listbox;listbox with key
listbox with key 表示即使你的gui状态中不设置在下拉列表中显示key关键字,但他任然显示key
参数VALUES,是一个内表结构,含2个字段(key,value),选择listbox with key 时,感觉好像key,value都进入input框了,但实际只有key传入了,可以debug验证

程序执行效果:
dialog_define_listbox.jpg

1.主程序代码
  1. DATA: OK_CODE TYPE SY-UCOMM.
  2. DATA: BEGIN OF ITAB OCCURS 0,
  3.          CARRNAME LIKE SCARR-CARRNAME,
  4.       END OF ITAB.
  5. CALL SCREEN 100.
  6. *&---------------------------------------------------------------------*
  7. *&      Module  CREATE_DROPDOWN_LIST  INPUT
  8. *&---------------------------------------------------------------------*
  9. *       text
  10. *----------------------------------------------------------------------*
  11. MODULE CREATE_DROPDOWN_LIST INPUT.
  12.   REFRESH ITAB.
  13.   CLEAR ITAB.
  14.   ITAB-CARRNAME = '合格'.
  15.   APPEND ITAB.
  16.   ITAB-CARRNAME = '不合格'.
  17.   APPEND ITAB.
  18.   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  19.     EXPORTING
  20. *     DDIC_STRUCTURE         = ' '
  21.       RETFIELD               = 'CARRNAME'
  22. *     PVALKEY                = ' '
  23. *     DYNPPROG               = ' '
  24. *     DYNPNR                 = ' '
  25. *     DYNPROFIELD            = ' '
  26. *     STEPL                  = 0
  27. *     WINDOW_TITLE           =
  28. *     VALUE                  = ' '
  29.      VALUE_ORG              = 'S'
  30. *     MULTIPLE_CHOICE        = ' '
  31. *     DISPLAY                = ' '
  32. *     CALLBACK_PROGRAM       = ' '
  33. *     CALLBACK_FORM          = ' '
  34. *     CALLBACK_METHOD        =
  35. *     MARK_TAB               =
  36. *   IMPORTING
  37. *     USER_RESET             =
  38.     TABLES
  39.       VALUE_TAB              = ITAB
  40. *     FIELD_TAB              =
  41. *     RETURN_TAB             =
  42. *     DYNPFLD_MAPPING        =
  43. *   EXCEPTIONS
  44. *     PARAMETER_ERROR        = 1
  45. *     NO_VALUES_FOUND        = 2
  46. *     OTHERS                 = 3
  47.             .
  48.   IF SY-SUBRC <> 0.
  49. * Implement suitable error handling here
  50.   ENDIF.

  51. ENDMODULE.                 " CREATE_DROPDOWN_LIST  INPUT
复制代码

2.自定义屏幕100
screen 100中的work flow:
  1. PROCESS BEFORE OUTPUT.
  2. * MODULE STATUS_0100.
  3. *
  4. PROCESS AFTER INPUT.
  5. * MODULE USER_COMMAND_0100.
  6. PROCESS ON VALUE-REQUEST.
  7.   FIELD LISTID MODULE CREATE_DROPDOWN_LIST.
复制代码
layout:
dialoglist_layout.jpg

PS:下拉框为什么含有空指?
游客,如果您要查看本帖隐藏内容请回复

回复

使用道具 举报

ratg0626
学习了,谢谢分享
回复 支持 反对

使用道具 举报

fayne
进来学习下
回复 支持 反对

使用道具 举报

songxin2000
学习,谢谢分享
回复 支持 反对

使用道具 举报

qshiou
楼主棒棒哒
回复 支持 反对

使用道具 举报

majiek
不错的 给个赞了
回复 支持 反对

使用道具 举报

mckz8888
谢谢分享 学习 学习
回复 支持 反对

使用道具 举报

xacwc
回复

使用道具 举报

teyun2222
感謝無私分享,學習了
回复 支持 反对

使用道具 举报

CK_Rocky
来学习一下,谢谢分享
回复 支持 反对

使用道具 举报

资明
非常好,想看看 学习下
回复 支持 反对

使用道具 举报

glb1197531
xuexiyixia
回复 支持 反对

使用道具 举报

bobo520
12345想看看 学习学习 厉害楼主
回复 支持 反对

使用道具 举报

BP小白

RE: 在Dialog中实现下拉框效果并对下拉框赋自定义的值

学习学习大神
回复

使用道具 举报

yigerendelu

RE: 在Dialog中实现下拉框效果并对下拉框赋自定义的值

谢谢大神分享!
回复

使用道具 举报

cheng333456
真是难得给力的好资源啊,SAP顾问圈真是给力。
回复 支持 反对

使用道具 举报

wyycomeon2013

RE: 在Dialog中实现下拉框效果并对下拉框赋自定义的值

进来学习的,谢谢楼主
回复

使用道具 举报

xwq
学习。。。。。。。
回复

使用道具 举报

狠狠简单

RE: 在Dialog中实现下拉框效果并对下拉框赋自定义的值

看看呢   谢谢分享
回复 支持 反对

使用道具 举报

zhongguomao
VRM_SET_VALUES
回复 支持 反对

使用道具 举报

12下一页

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表