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

目录

一、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.mzph.cn/pingmian/59529.shtml

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

相关文章

java、excel表格合并、指定单元格查找、合并文件夹

#创作灵感# 公司需求 记录工作内容 后端&#xff1a;JAVA、Solon、easyExcel、FastJson2 前端&#xff1a;vue2.js、js、HTML 模式1&#xff1a;合并文件夹 * 现有很多文件夹 想合并全部全部的文件夹的文件到一个文件夹内 * 每个部门发布的表格 合并全部的表格为方便操作 模…

平替谷歌翻译--沉浸式翻译

这款插件真特么的猛啊&#xff01;&#xff01;&#xff01; 谷歌插件或者油猴插件都有。 沉浸式翻译 - 免费双语对照网页翻译插件

印尼市场潜力无限!用友司库直联助力中企印尼“掘金”

在经济全球化的浪潮下&#xff0c;东南亚市场正焕发出勃勃生机。而其中印度尼西亚作为东盟 大的经济体&#xff0c;被认为是东南亚重要、有活力的市场之一&#xff0c;成为中企出海竞相布局的热门目的地。然而&#xff0c;在积极进军印尼市场的过程中&#xff0c;中国企业普遍面…

【贪心算法】No.1---贪心算法(1)

文章目录 前言一、贪心算法&#xff1a;二、贪心算法示例&#xff1a;1.1 柠檬⽔找零1.2 将数组和减半的最少操作次数1.3 最⼤数1.4 摆动序列1.5 最⻓递增⼦序列1.6 递增的三元⼦序列 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到…

自动驾驶---“火热的”时空联合规划

1 背景 早期的不少规划算法都是横纵分离的&#xff08;比如Apollo&#xff09;&#xff0c;先求解path之后&#xff0c;依赖path的结果再进行speed的求解。这种横纵解耦的规划方式具有以下特点&#xff1a; 相对较为简单&#xff0c;计算量通常较小&#xff0c;容易实现实时性…

在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…

IDEA在编译时: java: 找不到符号符号: 变量 log

一、问题 IDEA在编译的时候报Error:(30, 17) java: 找不到符号符号: 变量 log Error:(30, 17) java: 找不到符号 符号: 变量 log 位置: 类 com.mokerson.rabbitmq.config.RabbitMqConfig 二、解决方案 背景&#xff1a;下载其他同事代码时&#xff0c;第一次运行&#xff0c…

简单又便宜的实现电脑远程开机唤醒方法

现有的远程开机方案 1&#xff09;使用向日葵开机棒 缺点是比较贵一点&#xff0c;开机棒要一百多&#xff0c;而且查了评论发现挺多差评说不稳定&#xff0c;会有断联和无法唤醒的情况&#xff0c;而且设置也麻烦&#xff0c;还需要网卡支持WOL 2&#xff09;使用远程开机卡 …

《SparkSQL--通过ThriftServer连接DataGrip》

ThriftServer 功能&#xff1a;类似于HiveServer2&#xff0c;负责解析客户端提交的SQL语句&#xff0c;转换成Spark的任务进行执行本质&#xff1a;Spark中的一个特殊的程序&#xff0c;利用程序的资源运行所有SQL&#xff0c;该程序除非手动关闭&#xff0c;否则一直运行 启…

为什么Python运行速度这么慢?有什么解决方法吗?

说起简单易学的编程语言&#xff0c;你一定会想到Python&#xff1b;然而&#xff0c;说起Python&#xff0c;许多人在说完它的优点后&#xff0c;会接一句“但是就是慢......” 与其他编程语言相比&#xff0c;Python的速度一直是它为人诟病的一点。但究竟是什么原因导致了它…

如何解决导入aioredis报错TypeError: duplicate base class TimeoutError的问题(轻松解决,亲测有效)

下面是根据你的要求撰写的文章: 文章目录 📖 介绍 📖🏡 演示环境 🏡📒 aioredis导包报错 📒📝 解决方案📝 小贴士⚓️ 相关链接 ⚓️📖 介绍 📖 最近在使用Python异步redis模块aioredis的时候遇到了一个错误,导包报错提示 TypeError: duplicate base cla…

泰鸿万立上会,业绩增速放缓,对吉利、长城依赖度较高

作者&#xff1a;Eric 来源&#xff1a;IPO魔女 2024年11月8日&#xff0c;深交所上市委将审议浙江泰鸿万立科技股份有限公司&#xff08;简称“鸿泰万立”&#xff09;主板IPO申请。公司保荐机构为东方证券。拟募集资金为11.50亿元。 鸿泰万立主营业务为汽车结构件、功能件的…

【笔记】扩散模型(九):Imagen 理论与实现

论文链接&#xff1a;Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding 非官方实现&#xff1a;lucidrains/imagen-pytorch Imagen 是 Google Research 的文生图工作&#xff0c;这个工作并没有沿用 Stable Diffusion 的架构&#xff0c;而是级…

VScode建立Java项目

学了半天&#xff0c;项目、包是咋创建的都不知道&#x1f62d;&#x1f62d;&#x1f62d;&#xff0c;补习一下✏️✏️✏️ 打开命令面板&#xff0c;“查看”里打开&#xff0c;或者CtrlShiftP。 选择创建Java项目&#xff0c;现在没有用框架&#xff0c;只是普通学习&…

C语言变量与强制类型转换深度解析

在上一篇文章中&#xff0c;小编对数据类型进行了详细的讲解与剖析&#xff0c;所以本篇文章小编要带大家理解变量和强制类型转。还是老规矩&#xff0c;来波鸡汤&#xff0c;学习一定不能着急&#xff0c;无法一下就学明白的知识我们需要给他时间&#xff0c;一定不要在一个知…

国内短剧源码短剧系统搭建小程序部署H5、APP打造短剧平台

​在当今的互联网时代&#xff0c;短剧作为一种新兴的娱乐形式&#xff0c;受到了越来越多用户的喜爱。为了提供更好的用户体验和满足用户需求&#xff0c;一个好的短剧系统需要具备多元化的功能和优质的界面设计。 本文将介绍国内短剧源码短剧系统搭建小程序部署H5、APP所需的…

Synchronized 的几种用法解析

背景介绍 说到并发编程&#xff0c;总绕不开线程安全的问题。 实际上&#xff0c;在多线程环境中&#xff0c;难免会出现多个线程对一个对象的实例变量进行同时访问和操作&#xff0c;如果编程处理不当&#xff0c;会产生脏读现象。 线程安全问题 我们先来看一个简单的线程…

rhce作业4

问题&#xff1a; 1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器&#xff0c;对主dns服务器进行数据备份。 配置&#xff1a; 主服务器配置 安装 关闭防火墙 主配置文件定义正反向解析域 正向解析资源记录文件 反向解析记录文件 重启…

在数据抓取的时候,短效IP比长效IP有哪些优势?

在数据抓取领域&#xff0c;代理IP的选择对于任务的成功率和效率至关重要。短效IP和长效IP各有其特点和适用场景&#xff0c;但在数据抓取过程中&#xff0c;短效IP因其独特的优势而受到青睐。本文将和大家一起探讨短效IP在数据抓取中相比长效IP的优势。 短效IP的定义与特点 …

B2C分销管理系统(源码+文档+部署+讲解)

本文将深入解析“B2C分销管理系统”的项目&#xff0c;探究其架构、功能以及技术栈&#xff0c;并分享获取完整源码的途径。 系统概述 "B2C分销管理系统"是一款集产品管理、客户服务、运营监控和财务管理于一体的综合性分销管理平台。系统功能全面覆盖套餐管理、SI…