Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3149236
  • 博文数量: 238
  • 博客积分: 864
  • 博客等级: 军士长
  • 技术积分: 2940
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-08 23:01
个人简介

Mobile: 135 8576 5961 / WeChat: IM_WILLIAM_C / Mail: william.chen.cn@outlook.com /

文章分类

全部博文(238)

文章存档

2018年(2)

2016年(35)

2015年(47)

2014年(104)

2013年(38)

2012年(12)

分类: 其他平台

2013-01-28 18:55:03

ListBox -- 下拉列表框 //

 

实现方法:自己写了个小例子,方便以后直接拿来用了。 

 

 REPORT  ZJOI_TEST.

TYPE-POOLS: VRM .  "存放combobox内容的type pool

DATA: NAME TYPE VRM_ID ,        " list box的名称
      LIST TYPE VRM_VALUES ,    " list box的值
      VALUE LIKE LINE OF LIST . " list box的结构

*定义checkbox,指定command,为了能够响应选择屏幕中值的改变
PARAMETERS: P_CB TYPE C AS CHECKBOX DEFAULT 'X' USER-COMMAND CHECK.

*定义listbox,必须指定visible length
PARAMETERS: P_LIST(4) TYPE C AS LISTBOX VISIBLE LENGTH 10.

*开始执行
AT SELECTION-SCREEN OUTPUT .

  CLEAR P_LIST.
  REFRESH LIST.
* 选中checkbox
  IF P_CB = 'X'.

*   向listbox里面添加值
    VALUE-KEY = 'key1' .      "这个就是变量P_LIST的值
    VALUE-TEXT = 'text1' .    "这个是text
    APPEND VALUE TO LIST .

    VALUE-KEY = 'key2' .
    VALUE-TEXT = 'text2' .
    APPEND VALUE TO LIST .

    VALUE-KEY = 'key3' .
    VALUE-TEXT = 'text3' .
    APPEND VALUE TO LIST .

*   调用函数显示listbox里面的值
    CALL FUNCTION 'VRM_SET_VALUES'
      EXPORTING
        ID     = 'P_LIST'
        VALUES = LIST.

    LOOP AT SCREEN .
      IF SCREEN-NAME = 'P_LIST'.
        SCREEN-REQUIRED = 1.
        MODIFY SCREEN .
      ENDIF .
    ENDLOOP .

  ELSE.
*    CLEAR LIST.
    LOOP AT SCREEN .
      IF SCREEN-NAME = 'P_LIST'.
        SCREEN-INPUT = 0.
        MODIFY SCREEN .
      ENDIF .
    ENDLOOP .

  ENDIF .

START-OF-SELECTION .

*--〉输出到第二屏幕看看
  WRITE / P_LIST.

  WRITE: / , '附加screen结构中各个参数的含义:' ,/.

  WRITE:/
    'name:控件或者字段的名称;', / ,
    'group:组别,用于对控件的管理;', / ,
    'active:是否可见,并可输入', / ,
    'required:必须输入字段', / ,
    'input:输入字段(能够输入)', / ,
    'output:输出字段(能够输出)', / ,
    'intensified:高亮显示(就是颜色变深)', / ,
    'invisible:禁用字段(是否可见)', / ,
    'length :长度display_3d:3d显示(就是有立体感)', / ,
    'value_help:有查询帮助。'.

 

注:此程序有个小现象,即在Listbox为空时候就不能去掉checkBox的对勾了,因为此时系统首先Check的ListBox的必输项规则,此处着重ListBox,有兴趣的可以研究Selection-screen的互动控制,之前也作过一些,但具体情况太多了,只能具体情况具体对待了。

附加:好了,下拉列表可以显示,也能回执到程序Key值了,但显示的情况却有两种,一种是key + 空格+ text 的形式,另一种就是只显示text 描述信息,如果你遇到这种情况不要怀疑是代码哪里写错,其实是有配置得来,具体配置如下:首先进入SAP GUI Option的配置窗体下(从SAP Logon窗口Alt + 空格键 + O进入,或者从登陆后的业务编辑界面Alt + F12 --> p 进入都可以),打开第二个根节点Interaction Design 下面的第二个配置文本,在右面的配置详细Controls区域内将“Show keys within dropdown lists”打上对勾,有必要也可以吧下面的List排序也选上。

  
阅读(5557) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~