用户通过屏幕操作来实现与SAP的数据交互,而SAP的屏幕开发一般分为两种,一种是通过SAP ABAP语法创建屏幕元素,称之为选择屏幕,选择屏幕主要是用来输入查询参数;第二种是通过SAP的屏幕编辑器开发,通过屏幕编辑器可以实现数据多种展现模式。

1.1、屏幕基本输入域对象的创建及相关属性

SAP中可以通过ABAP来创建屏幕元素,共分为两种模式,一种是通过SELECT-OPTIONS语法来建立数据输入域,另一种则是通过PARAMETERS语法来创建数据输入域。

1.1.1、屏幕元素创建的基本语法

SELECT-OPTIONS与PARAMETERS的属性有很多相似之处,但是SELECT-OPTIONS创建的是一个输入的区间,其定义时必须制定参考表及参考字段,SELECT-OPTIONS<对象名>FOR<参考对象>

PARAMETERS通常用于建立一个单一的屏幕输入对象,其参考对象相对比较灵活,可以参考数据表的字段,也可以参考具体的数据元素,PARAMETERS<对象名>LIKE/TYPE<参考对象>


1.1.2、动态定义输入域的参考对象

SAP允许动态定义屏幕输入域的对象,这样可以对一些需要动态变更屏幕元素的程序带来莫大的方便(例如SAP的表对象查询程序,则可以通过动态字段来变更查询输入条件)。动态对象的定义实际上是通过修改参考对象的地址来实现类型的变换,当参考对象的值与数据对象中的字段一致时,则会参考该数据字段类型建立屏幕对象,如下图所示:



1.1.3、屏幕输入域显示参数控制

SELECT-OPTIONS和PARAMETERS的显示参数控制机制基本类似。

1.OBLIGATORY必输项控制
        控制该屏幕元素是否为必输项,SELECT-OPTIONS一般只对下限值字段(LOW字段)有效。
     2.NO-DISPLAY显示控制
        程序运行后不显示该对象,SELECT-OPTIONS与PARAMETERS属性一致。
     3.VISIBLE LENGTH vlen显示长队控制
        
控制对象的显示长度,其取值范围为1-18.
     4.NO-EXTENSION多行输入控制
       
SELECT-OPTIONS和PARAMETERS所定义的对象都可以输入多行数值,加上该参数后,限制只能输入单一行,在屏幕对象后面的多行输入控制按钮将隐藏。
     5.NO-INTERVALS输入范围值控制
         
该属性针对于SELECTION-OPTIONS所定义的对象是输入范围值,上限值到下限值,在内表中分别为“LOW”和“HIGH”两个字段,加上该参数后,在屏幕上只会显示上限值输入字段。
     6.MODIFY ID modid 编辑组控制
         
该参数可以将定义的屏幕对象进行分组,以方便在程序运行中对分组的对象属性进行统一修改及控制,例如控制某组对象为不可输入,如下代码中将G2分钟的对象在屏幕输出时设置为不可输入。该属性 在SELECT-OPTIONS和PARAMETERS中的操作基本一致。

1.1.4、输入值的控制

SAP提供数据输入控制参数来控制屏幕对象的输入值,包括如下。

1.控制输入默认值
      ● DEFAULT vall [ TO val2 ] [ OPTION opt ] [ SIGN sgn]控制输入默认值范围
        
该参数针对SELECT-OPTIONS所定义对象屏幕加载后所显示的默认值,其中vall [ TO val2 ]为输入值的上下限,OPTION代表数据关系,SIGN代表输入类型,具体如下表:

栏目名

参考值

                                          描述

SIGN

I或者E

输入类型,I表示包括,E表示排除

OPTION

NB或者BT

表示前后输入栏关系,NB(不包括)、BT(包括)

输入默认值范围也可以在程序加载时进行更改,代码如下:



    ● DEFAULT vall
       
控制PARAMETERS所对应对象输入默认值范围:该参数定义对象在屏幕加载后所显示的默认值,输入默认值范围也可以在程序加载时进行更改。
    2. LOWER CASD允许输入小写字母
        
SAP所有屏幕字段输入后都会将字母默认转换为大写,加上该参数允许输入小写字母。
    3. MATCHCODE OBJECT search help 屏幕对象F4帮助
       
为屏幕对象加上指定的F4帮助,F4帮助功能会在数据字典章节做具体介绍,系统也提供了很多已经定义好的F4帮助对象,如下图所示。


    4. MEMORY ID pid 定义SELECT-OPTIONS内存参数
       
可以将屏幕对象输入的值保存到制定的内存参数,通过GET PARAMETERS方法可以直接从内从读取该对象的值,如以下代码,将内存值取到制定字段并输出。
        

1.1.5屏幕对象的F1/F4输入帮助功能
     1. HELP-REQUEST [ FOR {LOW | HIGH} ]字段的F1帮助
         
当选中SAP屏幕中的指定字段并按键盘上的F1时,可以调用自定义的程序或者系统帮助文件,该功能通常被称为F1帮助。F1帮助可以通过ABAP事件AT SELECTION-SCREEN来控制,在自定义程序中,可以通过调用系统标准函数HELP_OBJECT_SHOW(或者HELP_OBJECT_SHOW_FOR_FIELD)来实现。


     2.VALUE-REQUEST [ { LOW | HIGH } ] 字段的F4帮助
        当在指定的字段F4键时,可以调用自定义的程序或者系统帮助数据,该过程是通过但是F4事件来触发的,所以也可以通过ABAP语法事件控住语法AT SELECTION-SCREEN来调用。
        当该参数主要是在定义帮助数据时使用,在参照数据表建立的屏幕对象一般会取用默认帮助对象,与F1不同的是,F1是进行信息提示,而F4是显示填充值的列表,所以取得值将返回给所操作的屏幕对象,可以调用系统函数F4IF_FIELD_VALUE_REQUEST参照某一具体字段来维护F4帮助,如下所示:

     3.NO DATABASE SELECTION不选取逻辑数据库约束
        在调用逻辑数据库的程序中,往往会对用户输入的数据按权限来进行筛选,倘若在定义的对象后面加上NO DATABASE SELECTION参数,该对象所输入的对象则不会收到逻辑数据库的约束。
        目前ABAP中需要运用NO DATABASE SELECTION定义的逻辑数据库比较少,例如HR模块关联的PNP逻辑数据库中,其所有的帮助条件都采用Search Help的方式进行定义。而在引用逻辑数据库FIS开发的程序中,通过按F4键只能看到用户权限所限制的数据,以连接编号CONNID字段为例,通过按F4键只能看到用户被分配的CONNID的取值范围。在引用逻辑库的程序中,通过NO DATABASE SELECTION参数可以读取非限制条件的数据。逻辑数据库可以在ABAP编辑器的属性页面进行定义。执行逻辑数据库需要引用定义NODES或TABLES,使用NO DATABASE SELECTION定义如下:


    1.1.6、PARAMETERS屏幕元素的特性功能开发
                 PARAMETERS所创建的对象除了数据输入域外,还可以创建其他比较特殊的屏幕对象。
    1.定义复选框
       相关语法:PARAMETERS < 对象名 > AS CHECKBOX  [ USER-COMMAND fcode]。
     
 在屏幕上产生一个复选框,当复选框对象被选中时,其值为“X”,否则为空。在所对应的对象后面加上命令[USER-COMMAND fcode ],可以定义该复选框的单击事件代码,在ABAP代码中,通过事件控制语句AT SELECTION-SCREEN和START-OF-SELECTION过程可以捕捉该单击事件。
        所操作的事务代码被保存在系统变量SY-UCOMM中,如下图:


     2.定义单选按钮
        相关语法:PARAMETERS < 对象名 > RADIOBUTTON GROUP group [ USER-COMMAND fcode ]
        在屏幕上产生一个单选按钮,当单选按钮被选中时,其值为“X”,否则为空。定义多个单选按钮,需要加上GROUP参数来定义分组,每组按钮数量不能小于两个。同一分组的单选按钮选择值之间会相互约束,每次只能有一个被选中。
        加上[ USER-COMMAND fcode ]可以定义该单选按钮的单价事件代码,ABAP中的AT SELECTION-SCREEN和START-OF-SELECTION过程中可以出发该事件,所操作的事件代码被保存到系统变量SY-UCOMM中。如下图:

       3.创建下拉列表
     
  相关语法:PARAMETERS < 对象名 > AS LISTBOX VISIBLE LENGTH vlen [ USER-COMMAND fcode ]

SAP选择屏幕开发(一)相关推荐

  1. 史上接近最完整的选择屏幕开发知识(针对初学者)(还有下拉菜单的实现)

    选择屏幕的开发知识无非就是围绕这3个点:PARAMETERS        SELECT-OPTIONS               SELECTION-SCREEN (一)PARAMETERS:为变 ...

  2. SAP选择屏幕中实现三级联动下拉框效果

    TYPE-POOLS:VRM. DATA: NAME TYPE VRM_ID. DATA:NUM TYPE I. "根据PRODH字段长度判断 某行属于哪一级 DATA:LOADED TYP ...

  3. SAP 选择屏幕下拉框实现

    选择屏幕: DATA:vid TYPE vrm_id , "屏幕字段(可以是单个的I/O空间或者是Table Control中的一个单元格)list TYPE vrm_values,valu ...

  4. SAP 选择屏幕中定义按钮 pushbutton

    SELECTION-SCREEN PUSHBUTTON 1(22) BUT1 USER-COMMAND DOWNLOAD. " 定义搜索按钮 在选择屏幕定义按钮 INITIALIZATION ...

  5. 【测试】SAP选择屏幕界面配图实现

    需求:需要在生产实际查询报表选择界面中显示相应的流程图,如何实现. 准备工作:需要利用事务代码SMW0上传流程图图片,这里以某样图代替. 代码实现: *&------------------- ...

  6. SAP 选择屏幕的收起与展开(Collapse and Expand)

    今天做的一个项目中用到将SELECTION-SCREEN 展开和收起的功能,现总结如下: 首先 include <icon>.因为要用到 icon_data_area_expand 和ic ...

  7. sap 选择屏幕 设定动态标题

    转载自:https://blog.csdn.net/xiaoxiaoanhong/article/details/53640850 SET TITLEBAR 'TITLBAR' WITH 'TITLE ...

  8. 用户选择屏幕搜索帮助的代码实现

    很久不写程序了,最近接手一财务报表修改,对一用户选择屏幕开发搜索帮助:第一反应就是搜索帮助是与数据字典相关联,大凡系统表字段里的数据元素都会有默认的,但找遍了所有的表,此字段就是没有自带的搜索帮助,在 ...

  9. [SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS

    12.4.         SELECT-OPTIONS. 89 12.4.1.     输入ABAP程序默认值时,需要加上"=". 89 12.4.2.     选择条件内表多条 ...

最新文章

  1. boost::hana::second用法的测试程序
  2. 每天一道LeetCode-----使用最少的操作将一个字符串转换成另一个字符串,只有插入,删除,替换三种操作
  3. shiro的内部体系结构
  4. c++分治法求最大最小值实现_程序员:算法导论,分治法、归并排序,伪代码和Java实现...
  5. 【渝粤教育】国家开放大学2018年春季 7392-22FMatlab语言及其应用 参考试题
  6. 解决: Intellij IDEA 运行报错 Command line is too long
  7. python paramiko并发_python学习笔记9--paramiko模块、多线程、锁机制
  8. 三星Galaxy S22 Ultra真机首曝:颜值与实力并存堪称完美
  9. 湖北孝感学校计算机好吗,湖北省孝感市2018年上半年计算机等级考试注意事项...
  10. 阿里前 vs 来阿里后,阿里人的真实写照!
  11. Shell脚本编程知识点总结及范例
  12. 联想网络同传系统用户手册(联想EDU应用用户手册)[联想硬盘保护,联想网络控制工具]
  13. 仿小米商城html网页源码
  14. vim 配置快捷键映射
  15. 1KB文件夹快捷方式病毒清除(转)
  16. html banner 居中,关于CSS banner图响应式居中显示的方法
  17. cURL – POST请求示例
  18. python如何调整word表格宽度_怎么批量修改Word表格的宽度
  19. Visual Studio 2010 Win32 Usb HID 动态库创建
  20. 关于APP个人信息安全和隐私合规评估,你想知道的都在这!

热门文章

  1. OLED显示技术的发展趋势浅析
  2. 如何看待996现象,996工作模式是种什么样的体验?
  3. 996加班骗局被揭穿,背后真相值得深思!
  4. IDEA自动把数据库表映射为实体类
  5. 如何实现从CTO到CEO的跨越(红色标注是我关注的点)
  6. Vue 路由参数传递
  7. iOS 视频播放从零开始(二)
  8. 吻过你这三个地方的男人,定是对你动了真情,错不了
  9. JQuery插件——progressbar进度条
  10. bitmap.compress(图片压缩的两种方式)(1,质量压缩;2,采样率压缩)