原文链接:https://blog.csdn.net/wtxhai/article/details/90632686

用户通过屏幕操作来实现与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 ]

————————————————
版权声明:本文为CSDN博主「wtxhai」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wtxhai/article/details/90632686

SAP选择屏幕开发(一)(转)的更多相关文章

  1. SAP选择屏幕开发(二)(转)

    原文链接:https://blog.csdn.net/wtxhai/article/details/90698683 1.2.SAP屏幕框架的创建        SAP页面设计中的框架不但可以保证SA ...

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

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

  3. SAP 选择屏幕的上方 (sscrfields) 按钮设置

    TABLES sscrfields. PARAMETERS: p_carrid TYPE s_carr_id, p_cityfr TYPE s_from_cit. , "激活按钮 . INI ...

  4. [SAP ABAP开发技术总结]动态修改选择屏幕

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. [SAP ABAP开发技术总结]选择屏幕——按钮、单选复选框

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

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

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. 【ABAP系列】SAP ABAP选择屏幕(SELECTION SCREEN)事件解析

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP选择屏幕(SEL ...

  8. 三十二、SAP中定义选择屏幕

    一.SAP中PARAMETERS表示选择屏幕,使用方法如下 二.运行代码 三.PA_CAR为我们选择的0017 四.点击执行之后,由于我们未在代码中触发相关的过滤功能,显示的表格为全部表格,效果如下

  9. 三十四、在SAP的屏幕选择中,将英文替换成我们想要的文本内容

    一.我们在代码中定义了一个选择屏幕,但是对应的显示界面为英文 界面如下 二.我们选择[转到]-[文本元素] 三.默认的文本内容是问号和三个点 四.我们修改成我们需要的,并激活这个文本,如果不激活会丢失 ...

随机推荐

  1. 浅谈使用canvas绘制多边形

    本文主要使用坐标轴的使用来绘制多边形,点位则都是在y轴上寻找,这种方法能够更好的理解图形与修改. //id为html里canvas标签的属性id: //x,y为坐标轴的起始位置,因为canvas默认坐 ...

  2. pg_dumpall - 抽出一个 PostgreSQL 数据库集群到脚本文件中

    SYNOPSIS pg_dumpall [ option...] DESCRIPTION 描述 pg_dumpall 是一个用于写出("转储")一个数据库集群里的所有 Postgr ...

  3. 07-求解Ax=0:主变量、特解

    一.定义转向算法 在第六节讲了空间,列空间,零空间的定义,这节主要讲解如何求出这些空间,即求解$Ax=0$的过程是怎么样的过程,以下面的矩阵$A$为例:(这里主要是长方阵) $A=\left[\beg ...

  4. 封装操作mysql、redis

    封装操作mysql: import pymysql class MyDb: def __init__(self,host,password,user,db,port=3306,charset='utf ...

  5. VPS 安装MySQL

    目前Centos下默认支持的数据库是MariaDB,MariaDB是mysql的增强版本,由于mysql被Oracle收购之后,mysql之父担心之后mysql会变成闭源的软件,就又开发了这个版本,支 ...

  6. MacOS系統Flutter打包apk

    一.打包前需要做一些基本设置的确认 1.应用名 2.权限设置 3.applicationId:应用唯一标识符 4.versionCode:版本号 5.versionName:版本名称 6.APP应用图 ...

  7. ThinkPhp view 路径用到的常量 __STATIC__ __JS__ __CSS__等

    https://www.edoou.com/articles/1556848583530922 ThinkPHP5.1 里面__PUBLIC__无法生效的问题 在用PHP模板的时候需要引用外部的样式文 ...

  8. git-win10下安装ubuntu,双系统,免U盘

    关键词:win10,ubuntu,双系统,免, U盘 1-6,8 参考:https://www.jianshu.com/p/417c1001a5597 参考: https://segmentfault ...

  9. element中的表格处理:循环出表格数据

    最近要做一个表格,但是为了方便维护,我们需要把表格数据循环出来,方便加减节点: <template> <el-table :data="tableData" st ...

  10. 帝国CMS编辑器粘贴Word图片

    图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...