SAP-ABAP开发-ONLINE 程序、DIALOG屏幕开发

news2024/11/28 8:48:18

目录

一、Online 程序概览

1、程序类型

2、Online程序的主要对象

二、界面

1、SAP的屏幕开发

2、屏幕功能实现

3、界面中的事件块(Event Block)

4、界面的创建

三、简单界面元素

1、文本/输入框控件

2、数据检查

3、一些常用的关键字

四、复合型界面元素

1、Tabstrip控件

2、Table Control控件

五、界面切换

六、F4帮助

1、静态实现Search Help

2、动态实现Search Help


一、Online 程序概览

1、程序类型

Report程序:1类型程序 制作报表,数据列表(Data List)输出
Online程序:M类型程序 查询数据,录入、修改、删除等
                     Module Pool 程序:以Module Pool形态进行业务流程的逻辑处理
                     Online 程序,强调用Online Transaction来处理业务流程进行过程
                     Screen 程序,主要使用Screen(及屏幕对象),并实现界面间Flow Logic(流逻辑)

2、Online程序的主要对象

界面(Screen)
模块池(Module Pool):全局字段(Global Data声明模块池中所有模块都可使用的数据 – TOP)                                          PBO模块(PBO Modules):屏幕输出前调用的模块 – O01
                                         PAI模块(PAI Modules):相应用户输入而调用的模块 – I01
                                         子程序(Subroutines):可以在模块中任何位置调用的子程序 – F01 
菜单(GUI Status) 、标题(GUI TITLE)、 事务代码(Transaction Code)。
        用户可以访问的部分是Screen,用户对界面进行操作,相应的操作是通过Screen中的逻辑流控制,而数据声明和界面逻辑代码实现部分是在ABAP程序中。

MODULE POOL 是自上而下执行的。

二、界面

1、SAP的屏幕开发

ABAP List代码实现(例:选择界面的创建)->Report程序直接执行即可以显示查询或结果界面

Dialog Screen绘制:较复杂,界面丰富 ->Online程序想要显示查询或结果界面必须建立Screen
                                或者事件驱动程序(Event-Driven)

2、屏幕功能实现

ABAP程序不能直接定义Screen,要通过Screen Painter这个工具来实现。界面元素的设定通过Screen Layout Designer来实现

界面的设定:属性/大小/模式
面中的元素:描述或帮助。可以进行有效性检查
界面中可以设置独立的Menu Bar或Title,点选按钮或回车可以触发相应功能
功能实现位置:逻辑流中设定

Online程序不能被直接执行,必须通过事务代码,指定界面执行

3、界面中的事件块(Event Block)

        用户访问界面,对界面进行操作,相应的操作是通过逻辑流控制的。也就是Screen Painter中定义逻辑流的位置 4个事件块:
                  PROCESS BEFORE OUTPUT.
                      PBO中的处理逻辑控制界面输出前处理,如更改一些元素的值或属性
                  PROCESS AFTER INPUT.
                      PAI中的处理逻辑控制用户对界面操作后的处理,如按回车键对输入数据进行检查                   PROCESS ON HELP-REQUEST.
                       Field Help的实现(F1帮助)
                  PROCESS ON VALUE-REQUEST.
                       输入帮助Search Help的实现(F4帮助)
界面定义的步骤: 创建界面,在Screen Attributes中定义Screen的属性;在Screen Layout Designer和Element List中定义界面中的元素(位置及属性);在Screen Flow Logic中设定在Screen显示的逻辑处理和显示后对界面进行相应操作的逻辑处理。

4、界面的创建




注意这里的传值,一定要变量的类型相同
参照创建如下:

三、简单界面元素

1、文本/输入框控件

        在很多界面上可以看到一个输入框及它的描述文本,这是通过Text控件及Input/Output控件实现的。Text控件 在适宜的位置定义,定义名称、描述、显示长度 As label on left Input/Output控件 显示效果是否可输入/必输项设置 2D/3D显示,下拉框设置/可接受负数值设置。

2、数据检查

        在一些程序中,当我们设置了输入框后,需要根据用户的输入,进行有效性的检查等,DIALOG界面中提供了针对字段的检查方式:
针对某个字段 FIELD f1 MODULE m1 [ON REQUEST] .
针对多个字段同时检查 CHAIN.  
                                     FIELD f1.   FIELD f2.   FIELD f3.  
                                     MODULE m1 [ON CHAIN-REQUEST].  
                                     ENDCHAIN.

3、一些常用的关键字

四、复合型界面元素

1、Tabstrip控件

Tabstrip可以实现在某个界面中,通过tab页的形式来显示多个界面。
使用向导创建Tabstrip Control:输入需要创建的各个tab页的描述,设定各tab页的名称,及相应的子界面编号 设定各部分代码进入的Include程序,激活程序后,可以查看到程序中增加了子界面的编号,可以依次进入界面,修改界面格式设置方式与主界面相同,但不能设置GUI Status和GUI TITLE。

2、Table Control控件

        表格控件:当界面中查询多条数据时,可以使用Table Control控件来进行表单输出 Table Control的行及列可以由以下元素构成: KeyWords、Input/Output Fields、Radio Button/Radio Button Group、 Checkbox 、Pushbutton。
        在程序中创建Table Control使用的内表,使用Internal Program Table创建,选择程序中的内表、选择显示列,设定属性:【 Output only:只显示,不可输入;Input Control:可输入; With column header:带标题 ;Line selection col.:行可选中 ;Single:只能选中一行 ;Multiple:可以选中多行】设定按钮:Scroll:设定滚动条 ;Insert/delete line:插入/删除行按钮; Select/ deselect all:选中所有/不选中按钮 】设定选中列的字段: 设定各部分代码进入的Include程序。

五、界面切换

界面切换的命令:SET SCREEN <screen num>.
                             CALL SCREEN <screen num>.
                             LEAVE SCREEN.
                             LEAVE TO SCREEN <screen num> .

六、F4帮助

1、静态实现Search Help

数据字典中创建Search Help,在Data Element中设置关联;在Input/Output Field中设置关联 Domain的固定值/数据库表的check table等也会实现F4帮助。

2、动态实现Search Help

定义内表实现 PROCESS ON VALUE-REQUEST部分定义 FIELD <field> MODULE <module> . 使用函数F4IF_INT_TABLE_VALUE_REQUEST 下拉菜单 Input/output field属性:是否含有Key显示 使用函数VRM_SET_VALUES,在PBO中给List赋值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于vue框架的的留守儿童帮扶系统143b5(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;留守儿童,帮扶活动,申请记录,帮扶机构,帮扶进度,帮扶人,申请加入记录,参与帮扶记录 开题报告内容 基于Vue框架的留守儿童帮扶系统开题报告 一、研究背景与意义 随着城乡经济差异的不断扩大&#xff0c;大量农村劳动力涌向城市寻求更好…

xftp连接中不成功 + sudo vim 修改sshd_config不成功的解决方法

我们使用sudo vim不成功&#xff0c;但是我们使用sudo su就可以 了&#xff01; root用户权利更大&#xff01; 喵的&#xff0c;终于成功了&#xff0c;一个xftp连接半天不成功。&#xff08;添加上面的内容就可以连接成功了↑&#xff09;

这款Chrome 插件,使浏览器页面快速滑动到最底部和最顶部,并且还能...

前言 前几日我在使用谷歌浏览器&#xff0c;也就是chrome的时候&#xff0c;浏览一个内容很长的页面&#xff0c;由于页面上的内容有前后关联&#xff0c;所以我必须不停地切换到上面和下面。这非常不方便。使我非常抓狂。后来&#xff0c;我灵机一动&#xff0c;去谷歌浏览器…

嵌入式linux中设备树控制硬件的方法

大家好,今天主要给大家分享一下,如何使用linux系统下的设备树进行硬件控制方法。 第一:linux系统中设备树驱动LED原理 在linux系统中可以使用设备树向Linux内核传递相关的寄存器地址,linux驱动中使用OF函数从设备树中获取所需的属性值,然后使用获取到的属性值来初始化相关…

2024年网鼎杯青龙组|MISC全解

转载或摘抄时请标明出处 MISC01 wdbflag{22226aba1d98c4302a6f508cad7da5d8} MISC02 一把梭工具没有任何结果&#xff0c;估计缺少符号表&#xff0c;直接strings flag > out.txt导出后慢慢找线索 在桌面上发现了png和txt文件&#xff0c;用文件名做一次筛选 第一行发现bas…

AI驱动无人驾驶:安全与效率能否兼得?

内容概要 如今&#xff0c;人工智能正以其神奇的魔力驱动着无人驾驶的浪潮&#xff0c;带来了无数令人兴奋的可能性。这一领域的最新动态显示&#xff0c;AI技术在车辆的决策过程和实时数据分析中发挥着重要作用&#xff0c;帮助车辆更聪明地应对复杂的交通环境。通过实时监测…

华为手机卸载系统应用的方法

摘要&#xff1a; 1.手机环境&#xff1a;手机需要开启开发者模式并使用usb连接电脑&#xff0c;并选择文件传输模式 2.电脑环境&#xff1a;使用鸿蒙工具箱进行傻瓜操作或安装adb工具进行命令卸载 3.鸿蒙工具箱和adb工具本质都是使用adb shell pm uninstall -k --user 0 xx…

一文看懂芯片算力TOPS

AI算力的发展与TOPS&#xff08;Tera Operations Per Second&#xff09;紧密相关。TOPS是衡量芯片每秒能执行的基本操作次数的单位&#xff0c;通常用于评估AI芯片性能&#xff0c;特别是在处理大量整数或定点运算任务时。随着AI技术进步&#xff0c;对算力的需求不断增加&…

在Linux系统中高效查找文件所在位置的方法

目录 引言 一、使用find命令查找文件 二、使用locate命令快速查找文件 三、利用which和whereis命令查找可执行文件 四、使用findmnt和mount命令查找挂载点 五、其他查找文件的方法 六、总结与最佳实践 引言 Linux操作系统以其强大的功能和灵活性而闻名&#xff0c;其文件…

连锁餐饮企业-凡塔斯,用千里聆RPA搭建用户评价管理系统,提升门店服务满意度

凡塔斯是大型连锁餐饮企业昊澜餐饮集团旗下餐饮品牌&#xff0c;是牛排自助餐头部品牌&#xff0c;旗下拥有凡塔斯、百分好、食物链KING自助烤肉及餐饮人才商学院等多个行业知名品牌。 创立至今&#xff0c;集团管理门店已发展到福建、广东、江西、浙江等十多个省市&#xff0c…

MES管理系统的生产绩效分析与资源可追踪性

在探讨MES管理系统的核心功能时&#xff0c;生产绩效分析与资源可追踪性是两个不可或缺的关键要素。它们共同构成了MES管理系统中对于生产效率、成本控制以及产品质量进行精细管理的基石。以下是对这两个关键领域的深入剖析与重新阐述。 MES管理系统中的生产绩效分析&#xff0…

远程控制项目第四天 功能实现

发送屏幕内容 代码详解 1. 创建 CImage 对象并获取屏幕内容 首先&#xff0c;我们创建一个 CImage 对象&#xff0c;用于接收屏幕上的内容。要获取屏幕内容&#xff0c;我们需要先获取当前设备上下文&#xff08;DC&#xff09;。调用 ::GetDC(NULL) 函数&#xff0c;参数 NU…

无线领夹麦克风哪个品牌音质最好?无线麦克风品牌排行榜前十名

​无线领夹麦克风哪个品牌音质最好&#xff1f;选择无线麦克风时&#xff0c;音质和耐用性至关重要。近年来&#xff0c;无线麦克风产品越来越智能化和多样化&#xff0c;但也存在着大量的劣质产品。作为测评师&#xff0c;我发现这些低质量无线麦克风由于缺乏专业调校&#xf…

【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】

在 Kubernetes 中&#xff0c;NodePort 类型的 Service 允许用户通过每个节点的 IP 地址和指定的端口访问应用程序。如果 NodePort 类型的 Service 无法通过节点的 IP 地址和指定端口进行访问&#xff0c;可能会导致用户无法访问应用。本文将详细分析该问题的常见原因及其解决方…

并发编程(8)—— std::async、std::future 源码解析

文章目录 八、day81. std::async2. std::future2.1 wait()2.2 get() 八、day8 之前说过&#xff0c;std::async内部的处理逻辑和std::thread相似&#xff0c;而且std::async和std::future有密不可分的联系。今天&#xff0c;通过对std::async和std::future源码进行解析&#x…

在VSCode中读取Markdown文件

在VSCode安装Markdown All in One或Markdown Preview Enhanced即可 插件Markdown All in One GitHub&#xff1a;https://github.com/yzhang-gh/vscode-markdown v3.6.2下载链接&#xff1a;https://marketplace.visualstudio.com/_apis/public/gallery/publishers/yzhang/vs…

成都睿明智科技有限公司共赴抖音电商蓝海

在这个短视频风起云涌的时代&#xff0c;抖音作为现象级的社交媒体平台&#xff0c;不仅改变了人们的娱乐方式&#xff0c;更悄然间重塑了电商行业的格局。在这片充满机遇与挑战的蓝海中&#xff0c;成都睿明智科技有限公司凭借其敏锐的市场洞察力和专业的服务能力&#xff0c;…

MySQL_聚合函数分组查询

上篇复习&#xff1a; 设计数据库时的三大范式1.第一范式&#xff0c;一行数据中每一列不可再分 关系型数据库必须要满足第一范式&#xff0c;设计表的时候&#xff0c;如果每一列都可以用SQL规定的数据类型描述&#xff0c;就天然满足第一范式. 2.第二范式&#xff0c;在第一…

深入了解逻辑回归:机器学习中的经典算法

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

TESSY学习笔记—project view界面的架构

1&#xff1a;project view界面能添加的元素 project view界面能添加的元素&#xff08;暂且称为元素&#xff09;&#xff0c;打开project view界面&#xff0c;下图中红框勾选出来的就是 2&#xff1a;一共存在5种可添加元素 **1&#xff09;Test collection 测试集合&…