SAP应用界面开发:2)PARAMETERS对象
2012-06-12 09:46
330 查看
1.PARAMETERS对象的基本语法及定义
PARAMETERS可以参照数据字典具体字段或者自定义数据类型创建文本输入域以及单选/复选框等。与SELECT-OPTIONS不同的是,PARAMETERS只能创建一个单一的输入域且最多只能输入一行,其对象的命名长度不能超过8位。显示长度参照数据对象变化。PARAMETERS定义后不会产生内表,可作为变量在程序中运用,基本语法如下:
PARAMETERS PNAME(不能超过8位)....
[For Example]
DATA AGE TYPE I.
PARAMETERS USER_AGE LIKE AGE.
DATA NICKNAME TYPE C LENGTH 60. "长度为60 表单域会相对于这个长度
PARAMETERS NAMEA LIKE NICKNAME.
*运行界面如下:
![](http://pic002.cnblogs.com/images/2012/107821/2012061210124025.png)
PARAMETERS:MATNRR LIKE MARA-MATNR. "文本域
PARAMETERS:TYPE AS CHECKBOX. "多选框
PARAMETERS:P1 RADIOBUTTON GROUP GRP1,"单选域
P2 RADIOBUTTON GROUP GRP1 DEFAULT 'X', "默认选中 ”X“
P3 RADIOBUTTON GROUP GRP1.
*运行界面如下:
![](http://pic002.cnblogs.com/images/2012/107821/2012061211014849.png)
2.PARAMETERS常用的扩展语法
...DEFAULT f:定义默认值。
...TYPE type:参照某一类型对象定义PARAMETERS。
...DECIMALS dec:定义小数位,对输入参数自动格式化,该语法只对P类型有效(参数某一类型定义关键字TYPE)。
...LIKE g:參照某一字典对象定义PARAMETERS。
...MEMORY ID pi:将PARAMETERS存储在SAP内存,参数名长度不能超过三位。
...NO-DISPLAY:将PARAMETERS设置为隐藏,不会的屏幕上输出。
...LOWER CASE:输入值中不允许输入小写字符,否则会自动转换为大写。
...OBLIGATORY:限制该PARAMETERS为必填,否则会提示输入。
...AS CHECKBOX:创建CHECKBOX对象。
...RADIO BUTTON GROUP radi:创建(RADIO)单选框。
...VISIBLE LENGTH vlen:定义显示长度。
...USER-COMMAND ucom:为创建对象分配对象名,该值保存在内表中可供其它对象操作。
...AS LISTBOX VISIBLE LENGTH vlen:创建一个下拉框,并指定长度。
以下示例展示如何对下拉框填充数据。
[For Example]
*定义一个下拉框对象,其可视数据长度一般比输出数据长度大2用于放置下拉图标
PARAMETERS:P_LANG(20) AS LISTBOX VISIBLE LENGTH 22.
*该变量用于记录下拉列表数值是否初始化,否则每次屏幕初始化都会重新加载重复数据
DATA:INIT.
AT SELECTION-SCREEN OUTPUT.
PERFORM SETLIST.
*子程序用于加载下拉框的数据
FORM SETLIST.
TYPE-POOLS VRM.
DATA MYVALUE TYPE VRM_VALUES WITH HEADER LINE.
*对内表加载值
MYVALUE-KEY = 'CHINESE'. MYVALUE-TEXT = '中国'. APPEND MYVALUE.
MYVALUE-KEY = 'AMERICAN'. MYVALUE-TEXT = '美国'. APPEND MYVALUE.
MYVALUE-KEY = 'ENGLISH'. MYVALUE-TEXT = '英国'. APPEND MYVALUE.
MYVALUE-KEY = 'FRENCH'. MYVALUE-TEXT = '法国'. APPEND MYVALUE.
IF INIT IS INITIAL.
CALL FUNCTION 'VRM_SET_VALUES' "调用函数对下拉框对象传递数据
EXPORTING
ID = 'P_LANG' "下拉框对象名
VALUES = MYVALUE[] "下拉框中加载的数据
EXCEPTIONS
ID_ILLEGAL_NAME = 1
OTHERS = 2.
ENDIF.
INIT = 'X'. "记录初始化状态
ENDFORM.
代码执行结果界面如下:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANcAAACACAIAAAAXlGutAAAHNUlEQVR4nO2c6W/TdhyH87/sn+Dd+go2tEkT0zTUsUNDlGmrqAAxjq7iGNcGLYfECqW0tMA6jrG0NIQyGAUhRKGsgrSQHknTJE5zX45TO4nTvchURWnsoC3O1/Xv8+h5kTguTZ1HX8eOgymYSCt502zmfCFJyi6yhyRlOV/optmssn1gtTSpPGbuH/D5w1KGyQozWZ8/bO4fIH+FWFCtwv5bg/5gOL0gUidBQHpBDATD/bcGyV8hFlSr0GK1jr+2x+J8ShBZM5bgJ95MDt62kr9CLGi6c/dPJYeHh2/fGRqw3B6wWBj09p2hB8PD5K8QC5afhW6TqUTyJwr1Y9XzUKyQ/E+FK0VtK7Rarec6Os780g7hcs91dFitVs0r7Oq+ODx06tXImYnRs5AFrYNnTrefaj58otj6xuMFixfuOdR2pK312IkOzSvs6LxgG2n3TbXHPZAJu3tPuFxzb3kyy+Gc29ZyWvMKO7u634yd57mzmXAnZMFDra05efHt3bi1TcMKC3Z1X5y2dYnB8/l4F2TBQ63HxWy+oJRTdGmdr5ta/2d/lSvs7ulFhUx54NjPvJjnxXxKyqekvJApY+GhwmpfbjmmeYU9ly6jQqbcf/RITJDjaTmxkE+K/8pL/7q0JLGQj6flmCB/2fiT5hVeunJlZrwbFbJjy+FDIV6OCLInkJzxBO2znH2Wm3Rxky7O7uImXT6nL+wLp6JCPiLIIV7e8N1RzSu80tfnnECFDNn84/5AMhfk5Rt3XqzdcOC9+v1r6vetrt+7un7vmvp9azccaPj+rDcshFJykJcDydxn3xzUvMK+q9dm3/SIwU7yrQNr4659e33xrD+Zi6blkxcs76xqKPbdj5ud3khCzAf4nD+Z88Wz6xt+RIWwyu5o+cEdzXjj2YggJyX5VFGIdeuaHVwkKeXn+ZwvkfPGs+5o5pON+1AhrLLb9uyeDUtz0Ywnno2m5aQon+qyvrOqoe7jZgcXSYp5XzLHJXKeeHYumpkNS+u+atG8wqvXrs/Ze1EhOzbt2jkTEJ0hyRXJuGOZaFrmJfny749mfZGkKHsTWU88645lXJGMMyTNBMSPvvhB8wqv3fjdPXlZDKFCVmzcsd3mTr3mBPv8wlRAnA6JQT4bSeeCqawjIs2EpemQOBUQ7fMLrznB5k59uGGX5hXeuPmHZ/pXVMiO327b+mw6OuqIjbkSL938K2/KxgnjPmFiXpiYF2yc8Mqbeunmx1yJUUfs2XT0g/qdmld402z2OvpQITtubtrycNz/aML/2B58MhV+OhMdccSeOWPPZ+PPZ+MjjtjTmeiTqfBje/DRhP/huH/t+h0aVlj4fNrcP+BzXkWF7LhpS+PQqGdo1HP3hffeGHf/5fwDm394PFDwgc1//+X8vTHu7gtvYbX3P90e1Pqamv5bg/POPiHQS751YG1sO7m788b9gSfOJQefuiwjLsvInGVkbvCpq/ihjut/bWo6qHmFFqvV9vflKPcbHzRDFnz88PyR4/s/39xU0c8aGne27Dnd3lOdCst++85tMuE7eFDdpe8oajsL6+rq/ue/Do1toRANKywx5zgAYcEafRN0qfTCNwzI/2yoT6u1t/wvFZrKjUZTJcg3Gay6eqxQ5emiQkOq0wqVpiAqNKS1rrDirrakM/W70BgSVLj0u8veRoUMqtMKsUdmSp1WWLJc6VFoDFfM+0LMQgOrx1moDvkmg1VXp2dqlESFhlSPFWIWsqYeK1R5uqjQkFJWCGFBVAjprWmFAJQFFQJ6CCo0mUwlT6J4ScVj5FpsFVBbaGZhSXZKDy0HFRqSWldYccgVbiitgAoNCeX7wrJJqY9GVGhIdDoLi9dXuQuMgU5nIfbITFHTClUGoVJnJQtRoSHR6Sxcfhez0MDocRZWXAcYDLJZqDTb1DtDhYaE5rOT4pjK3sUsZAqCPXLZ56F0dLJ8tapvAkAOrmYA9KBCQA8qBPSgQkCPHq/swjEya+jxrLXK00WFhkSPs3ARVzMwxor5HFnlR8BKB9cXAnoIKlS/jT0yg+i0wpLlSo8CY7AyKlxcliMwEno8U1NxHWAwcH0hoAfXFwJ6cH0hoAdXMwB6UCGgBxUCelAhoIfyrPXyu4s4RmYS4v9FE+cLwSL5HlmpQqUpiAoNCdlVrkq7WvVdNio0JLU+a13y6ysuQYUsoMejk0XskRmD7HPkt+ysZCEqNCQr5nsnmIUGhvJMTdkJpzIpiw9igJEge1+oPvOUQIWGhOYYWf19IWYha+joc+S3eeeHCg2JjioEzIIKAT2oENCDCgE9qBDQgwoBPagQ0IMKAT2oENCDCgE9qBDQgwoBPagQ0IMKAT2oENCDCgE9qBDQgwoBPTWqEAB1NK8QwtqICiG9qBDSiwohvagQ0osKIb2oENKLCiG9qBDSiwohvagQ0osKIb2oENKLCiG9qBDSiwohvagQ0osKIb2oENL7D6YOoN8epJlbAAAAAElFTkSuQmCC)
引用字典对象 TYPE-POOLS VRM 用于保存列表对象,也可自定义一内表,如
DATA:BEGIN OF VALUES OCCURS 0,
KEY(40) TYPE C,
TEXT(40) TYPE C,
END OF VALUES.
PARAMETERS可以参照数据字典具体字段或者自定义数据类型创建文本输入域以及单选/复选框等。与SELECT-OPTIONS不同的是,PARAMETERS只能创建一个单一的输入域且最多只能输入一行,其对象的命名长度不能超过8位。显示长度参照数据对象变化。PARAMETERS定义后不会产生内表,可作为变量在程序中运用,基本语法如下:
PARAMETERS PNAME(不能超过8位)....
[For Example]
DATA AGE TYPE I.
PARAMETERS USER_AGE LIKE AGE.
DATA NICKNAME TYPE C LENGTH 60. "长度为60 表单域会相对于这个长度
PARAMETERS NAMEA LIKE NICKNAME.
*运行界面如下:
![](http://pic002.cnblogs.com/images/2012/107821/2012061210124025.png)
PARAMETERS:MATNRR LIKE MARA-MATNR. "文本域
PARAMETERS:TYPE AS CHECKBOX. "多选框
PARAMETERS:P1 RADIOBUTTON GROUP GRP1,"单选域
P2 RADIOBUTTON GROUP GRP1 DEFAULT 'X', "默认选中 ”X“
P3 RADIOBUTTON GROUP GRP1.
*运行界面如下:
![](http://pic002.cnblogs.com/images/2012/107821/2012061211014849.png)
2.PARAMETERS常用的扩展语法
...DEFAULT f:定义默认值。
...TYPE type:参照某一类型对象定义PARAMETERS。
...DECIMALS dec:定义小数位,对输入参数自动格式化,该语法只对P类型有效(参数某一类型定义关键字TYPE)。
...LIKE g:參照某一字典对象定义PARAMETERS。
...MEMORY ID pi:将PARAMETERS存储在SAP内存,参数名长度不能超过三位。
...NO-DISPLAY:将PARAMETERS设置为隐藏,不会的屏幕上输出。
...LOWER CASE:输入值中不允许输入小写字符,否则会自动转换为大写。
...OBLIGATORY:限制该PARAMETERS为必填,否则会提示输入。
...AS CHECKBOX:创建CHECKBOX对象。
...RADIO BUTTON GROUP radi:创建(RADIO)单选框。
...VISIBLE LENGTH vlen:定义显示长度。
...USER-COMMAND ucom:为创建对象分配对象名,该值保存在内表中可供其它对象操作。
...AS LISTBOX VISIBLE LENGTH vlen:创建一个下拉框,并指定长度。
以下示例展示如何对下拉框填充数据。
[For Example]
*定义一个下拉框对象,其可视数据长度一般比输出数据长度大2用于放置下拉图标
PARAMETERS:P_LANG(20) AS LISTBOX VISIBLE LENGTH 22.
*该变量用于记录下拉列表数值是否初始化,否则每次屏幕初始化都会重新加载重复数据
DATA:INIT.
AT SELECTION-SCREEN OUTPUT.
PERFORM SETLIST.
*子程序用于加载下拉框的数据
FORM SETLIST.
TYPE-POOLS VRM.
DATA MYVALUE TYPE VRM_VALUES WITH HEADER LINE.
*对内表加载值
MYVALUE-KEY = 'CHINESE'. MYVALUE-TEXT = '中国'. APPEND MYVALUE.
MYVALUE-KEY = 'AMERICAN'. MYVALUE-TEXT = '美国'. APPEND MYVALUE.
MYVALUE-KEY = 'ENGLISH'. MYVALUE-TEXT = '英国'. APPEND MYVALUE.
MYVALUE-KEY = 'FRENCH'. MYVALUE-TEXT = '法国'. APPEND MYVALUE.
IF INIT IS INITIAL.
CALL FUNCTION 'VRM_SET_VALUES' "调用函数对下拉框对象传递数据
EXPORTING
ID = 'P_LANG' "下拉框对象名
VALUES = MYVALUE[] "下拉框中加载的数据
EXCEPTIONS
ID_ILLEGAL_NAME = 1
OTHERS = 2.
ENDIF.
INIT = 'X'. "记录初始化状态
ENDFORM.
代码执行结果界面如下:
引用字典对象 TYPE-POOLS VRM 用于保存列表对象,也可自定义一内表,如
DATA:BEGIN OF VALUES OCCURS 0,
KEY(40) TYPE C,
TEXT(40) TYPE C,
END OF VALUES.
相关文章推荐
- SAP应用界面开发:3)SELECTION-SCREEN 对象(2)
- SAP应用界面开发:1)SELECT-OPTIONS对象
- SAP应用界面开发:3)SELECTION-SCREEN之PUSHBUTTON对象(3)
- SAP应用界面开发:5)Report List报表开发(2)
- SAP应用界面开发:4)SAP屏幕事件控制
- SAP应用界面开发:5)Report List报表开发-实现Report的格式分页输出(6)
- SAP应用界面开发:5)Report List报表开发(1)
- SAP应用界面开发:5)Report List报表开发-输入列表颜色的设定(5)
- SAP应用界面开发:5)Report List报表开发-列表程序中的系统参数(4)
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。
- 总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型
- iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面