ABAP开发中常用弹窗的应用详解

在ABAP程序设计中为提示和交互的需要会经常用到弹窗, 所谓弹窗就是弹出一个框,告诉用户什么事情、需要确认什么、或者让用户输入什么内容等等,它价值在于通过提示、提醒、警告,帮助用户顺利完成业务流程中的必要操作或给用户提供实时反馈的结果。

ABAP开发中常用弹窗的功能代码

1.POPUP_TO_CONFIRM(确认弹窗)

以下是一个简单的示例代码:

它创建了一个带有“是”和“否”按钮的确认弹窗,并在用户作出选择后给出一个消息提示结果。

DATA: lv_answer TYPE c.
START-OF-SELECTION." 创建弹窗CALL FUNCTION 'POPUP_TO_CONFIRM'EXPORTINGtitlebar              = '确认弹窗'text_question         = '你确定要继续吗?'text_button_1         = '是'text_button_2         = '否'default_button        = '2'display_cancel_button = abap_falseIMPORTINGanswer                = lv_answerEXCEPTIONStext_not_found        = 1OTHERS                = 2." 处理用户的响应IF sy-subrc = 0.IF lv_answer = '1'." 用户点击了“是”WRITE: / '用户选择了是。' COLOR COL_GROUP.ELSE." 用户点击了“否”WRITE: / '用户选择了否。' COLOR COL_NEGATIVE.ENDIF.ELSE." 异常处理WRITE: / '弹窗创建失败。' COLOR COL_NEGATIVE.ENDIF.

titlebar参数设置弹窗的标题,text_question设置弹窗的问题文本,text_button_1和text_button_2定义按钮的标签,default_button设置默认选中的按钮,而display_cancel_button决定是否显示取消按钮。函数执行后,answer变量将包含用户的选择('1'表示按钮1,'2'表示按钮2)。根据用户的选择,系统给出相应的消息提示。

执行效果

图片

程序可以捕捉到用户的选择,然后可以做不同处理。

图片

  

图片

2.POPUP_GET_VALUES(输入参数式弹窗)

这种弹窗允许用户输入一组值,这通常用于收集用户的输入,如参数或过滤条件等。

以下是一个简单的示例代码:


DATA: lt_values TYPE TABLE OF sval,wa_values LIKE  LINE  OF  lt_values.
DATA: return_code TYPE string ."物料号
CLEAR wa_values.
wa_values-tabname = 'MARA' .    "物料主数据的表名
wa_values-fieldname = 'MATNR' . "物料号
wa_values-field_obl = 'X' .     "是否为必填
APPEND wa_values TO lt_values."物料组
CLEAR wa_values.
wa_values-tabname = 'MARA' .    ""物料主数据的表名
wa_values-fieldname = 'MATKL' . "物料组
wa_values-field_obl = 'X' .     "是否为必填
APPEND wa_values TO lt_values.CALL FUNCTION 'POPUP_GET_VALUES'EXPORTING
*   NO_VALUE_CHECK  = ' 'popup_title     = '请输入参数'
*   START_COLUMN    = '5'
*   START_ROW       = '5'IMPORTINGreturncode      = return_codeTABLESfields          = lt_valuesEXCEPTIONSerror_in_fields = 1OTHERS          = 2.IF sy-subrc = 0.LOOP AT lt_values INTO wa_values.WRITE:/ wa_values-fieldname, wa_values-value.ENDLOOP.
ENDIF.

popup_title :弹窗的标题

start_column/start_row  :是弹窗位置

fields :表中存储要和用户交互的字段,要求字段名称必须是参考表中的数据,会自动带出搜索帮助。

注意:sval 是一个结构,包含字段 tabname (参考表),fieldname (字段名称),value (默认值)等。

图片

函数执行后,我们可以检查返回码和用户输入的值,然后进行相应的处理。

图片

图片

上面介绍的2个标准弹窗FUNCTION,基本可以满足大部分这方面的开发需求。

ABAP中还有其它的弹窗函数如下(列举部分供参考)

1.POPUP_TO_CONFIRM_LOSS_OF_DATA 

显示有YES/NO的弹出窗口,提示用户未保存的数据将丢失

DATA:ANSWER(1) TYPE C.  "接收选择结果CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'EXPORTINGTEXTLINE1 = '提示信息1'
TEXTLINE2 = '提示信息2'
TITEL = '弹窗标题'
*   START_COLUMN = 25
*   START_ROW = 6
*   DEFAULTOPTION = 'N'
IMPORTING
ANSWER           = ANSWER." 选择是,返回 J  ,选择否 返回 N

图片

备注:目前不推荐使用,这种提示信息的直接使用POPUP_TO_CONFIRM就够了。

2.POPUP_TO_CONFIRM_STEP 

提示是否确认操作的弹出窗口

DATA:answer(1) TYPE c.CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'EXPORTINGdefaultoption        = 'Y'"显示两行文本textline1            = '第一行文本信息'textline2            = '第二行文本信息'titel                = '弹窗标题'   "弹窗标题start_column         = 25start_row            = 6cancel_display       = '' "是否显示cancel按钮IMPORTINGanswer               = answer.   "返回值J:yes;N:no;A:cancel

图片

3.POPUP_TO_CONFIRM_WITH_MESSAGE 

可以显示定制的提示信息的确认窗口 类似POPUP_TO_CONFIRM_STEP,只是多三行的文本错误诊断提示。

DATA:l_answer TYPE char1.
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'EXPORTINGdiagnosetext1 = '对话提示信息1'diagnosetext2 = '对话提示信息2'diagnosetext3 = '对话提示信息3'textline1     = '文本信息1'textline2     = '文本信息2'titel         = '弹窗标题'IMPORTINGanswer        = l_answer.    "是为J;否为N;取消为A

图片

备注:目前不推荐使用,这种提示信息的直接使用POPUP_TO_CONFIRM就够了。

4.POPUP_TO_CONFIRM_WITH_VALUE

显示确认用户对某个特定对象的操作的弹出窗口


DATA:answer TYPE c LENGTH 1.CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_VALUE'EXPORTINGdefaultoption  = 'Y'objectvalue    = 'objectvalue'text_after     = 'text after objectvalue'text_before    = 'text before objectvalue !!!!!'titel          = 'title'start_column   = 25start_row      = 6cancel_display = 'X'IMPORTINGanswer         = answerEXCEPTIONStext_too_long  = 1OTHERS         = 2.
IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.CASE answer.WHEN 'A'.WHEN 'J'.WHEN 'N'.
ENDCASE.

图片

5.POPUP_TO_DECIDE 

将待确认选项以单选按钮的方式显示的弹出窗口

DATA:ANSWER(1) TYPE C.  "接收选择结果  "显示弹窗  CALL FUNCTION 'POPUP_TO_DECIDE'    EXPORTING      "默认按钮      DEFAULTOPTION     = '1'      "显示三行文本弹窗      TEXTLINE1         = '第一行文本信息'      TEXTLINE2         = '第二行文本信息'      TEXTLINE3         = '第三行文本信息'      "按钮1,2的文本      TEXT_OPTION1      = '是'      TEXT_OPTION2      = '否'      "按钮1,2的图标     *ICON_TEXT_OPTION1 = ' '*ICON_TEXT_OPTION2 = ' '      TITEL             = 'title'  "弹窗标题      "开始行列      START_COLUMN      = 25      START_ROW         = 6      CANCEL_DISPLAY    = 'X' "是否显示cancel按钮    IMPORTING      ANSWER            = ANSWER."选择返回1:按钮1;2:按钮2;A:cancel按钮

图片

6.POPUP_TO_DECIDE_WITH_MESSAGE 

带消息的确认窗口

DATA: LV_ANSWER TYPE STRING.              "用于存储用户选择CALL FUNCTION 'POPUP_TO_DECIDE_WITH_MESSAGE'EXPORTINGDIAGNOSETEXT1 = '推送成功'  "诊断文本的第一行TEXTLINE1     = '第一行文本信息'  "弹出窗口的第一行,设置文本行内容1TEXT_OPTION1  = '确认'      "选项 1 的文本。TEXT_OPTION2  = '重新推送'  "选项 2 的文本。TITEL         = '推送结果'  "设置标题IMPORTINGANSWER        = LV_ANSWER.  "获得用户选择,这里返回的值对应是当前列表NO,比如第一个就返回1,第二个返回2

图片

7.POPUP_TO_DISPLAY_TEXT 

显示多行信息的窗口


CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'EXPORTINGtitel        = '提示'textline1    = '第一行文本信息'textline2    = '第二行文本信息'start_column = 25start_row    = 6.

图片

8.POPUP_TO_SELECT_MONTH 

月份选择窗口


DATA:lv_month LIKE isellist-month,lv_code  LIKE sy-subrc.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'EXPORTINGactual_month   = sy-datum+0(6)
*   factory_calendar = '01'
*   holiday_calendar = '01'language       = sy-langu
*   START_COLUMN   = 8
*   START_ROW      = 5IMPORTINGselected_month = lv_monthreturn_code    = lv_code
* EXCEPTIONS
*   FACTORY_CALENDAR_NOT_FOUND       = 1
*   HOLIDAY_CALENDAR_NOT_FOUND       = 2
*   MONTH_NOT_FOUND  = 3
*   OTHERS         = 4.

图片

9.POPUP_WITH_TABLE_DISPLAY 

有表格对象的确认窗

DATA: BEGIN OF itab_nba OCCURS 0,        
a TYPE c LENGTH 10,        
b TYPE c LENGTH 10,      
END OF itab_nba.
DATA: counts LIKE  sy-tabix.  
itab_nba-a = '01'.  
itab_nba-b = '111111'.  
APPEND itab_nba.  
itab_nba-a = '02'.  
itab_nba-b = '222222'.  
APPEND itab_nba.  
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'       
EXPORTING            
endpos_col   = 50    "右下角X            
endpos_row   = 10    "右下角Y            
startpos_col = 10    "左上角X            
startpos_row = 5     "左上角Y            
titletext    = 'Please Choose Your Entry'       
IMPORTING            
choise       = counts   "返回選中行       
TABLES            
valuetab     = itab_nba  "可選擇的表       
EXCEPTIONS            
break_off    = 1            
OTHERS       = 2.  
IF counts NE 0.     
READ TABLE itab_nba INDEX counts.     
WRITE: itab_nba-a.  
ENDIF.  
CLEAR :itab_nba,counts.  
REFRESH:itab_nba.

图片

图片

往期相关文章荐读:

ABAP SUBMIT如何使用详解

ABAP RANGE的用法详解

SAP内存和ABAP内存应用详解

ABAP语言的FIELD-SYMBOLS的应用详解

ABAP自定义数据库表操作详解

SAP/ERP系统如何根据报错信息快速定位到报错的代码行

SAP/ERP系统长文本对象的创建及应用介绍

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

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

相关文章

【JS】打乱数组顺序,用作领域:随机播放音乐

思路 循环数组随机获取数组下标取值&#xff1a; 取当前随机下标数组取当前循环的下标数组 相互替换步骤3的数组 /*** 随机数组顺序* param {Array} arr 数组* returns Array*/ const shufArr arr > {for (let i arr.length - 1; i > 0; i--) {const j Math.floor(M…

中国智慧城管哪家做的好?

智慧城市管理综合执法系统建立全市统一的法律法规、裁量基准、执法事项、执法文书和基础信息库&#xff0c;实现从获取线索、立案、调查、处理到结案全过程的信息化和文书制作的智能化。全面支持移动执法办案&#xff0c;提高执法效率。 技术架构&#xff1a; 微服务javasprin…

中颖51芯片学习1. 系统时钟及IO口输出操作

中颖51芯片学习1. 系统时钟及IO口输出操作 一、芯片介绍1. 规格2. 资源3. 中断源&#xff1a;4. 方框图5. 封装&#xff08;1&#xff09;32脚LQFP封装&#xff08;2&#xff09;28脚SOP封装&#xff08;3&#xff09;20脚SOP封装 二、开发环境搭建1. 安装keil2. 安装中颖keil插…

安全测试重点思考(中)--如何防止漏洞XSS和CSRF漏洞

如何防止漏洞XSS和CSRF漏洞 XSS漏洞的预防springsecurity框架来预防xss漏洞的步骤将特殊字符进行实体转义使用类库和修改cookie属性使用安全的HTTP Only Cookie使用安全的Cookie使用CSP&#xff08;内容安全策略&#xff09;使用专门的XSS防护库输入验证和过滤 XSS的面试题你对…

day18-分发糖果

问题描述&#xff1a; n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0…

4.2总结

了解了部分Api的使用并学习了接口的API API API包含了较多种类&#xff08;System,Runtime等&#xff09; System其实就是一个工具类&#xff0c;提供了一些与系统相关的方法 下面有一些常间的System方法 方法名说明public static void exit (int status)终止当前运行的ja…

深入浅出 -- 系统架构之微服务架构常见的六种设计模式

面向服务的架构&#xff08;SOA&#xff09; 面向服务的架构&#xff08;SOA&#xff09;是一种设计方法&#xff0c;也是一个组件模型&#xff0c;它将应用程序的不同功能单元&#xff08;称为服务&#xff09;通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的…

DLC原理解析及其优化思考

1. 引言 Discreet Log Contract (DLC) 是由麻省理工学院的Tadge Dryja在2018年提出的一套基于预言机的合约执行方案。DLC 允许两方根据预定义的条件进行有条件付款。各方确定可能的结果并进行预签名&#xff0c;并在预言机签署结果时使用这些预签名来执行支付。 因此&#xff…

国产数据库Oracle兼容性测试(一)

一个国产数据库Oracle兼容性测试用例&#xff1a; -- TestPoint : function return record type create table emp(empno number,sal number); insert into emp values(1234,3000);CREATE or replace PACKAGE emp_mgmt ASTYPE EmpRecTyp IS RECORD (empno NUMBER, sal NUMBER)…

HarmonyOS应用开发ArkUI(TS)电商项目实战

项目介绍 本项目基于 HarmonyOS 的ArkUI框架TS扩展的声明式开发范式&#xff0c;关于语法和概念直接看官网官方文档地址&#xff1a;基于TS扩展的声明式开发范式&#xff0c; 工具版本&#xff1a; DevEco Studio 3.1 Canary1 SDK版本&#xff1a; 3.1.9.7&#xff08;API V…

春招3月面试题的总结--南京,山东,西安,东莞四家公司总结。

1.南京某公司 1.Java的几种基本数据类型&#xff1f;分别是多少字节&#xff1f; byte&#xff0c;8bit 1字节 char&#xff0c;16bit 2字节 short&#xff0c;16bit 2字节 int&#xff0c;32bit 4字节 float&#xff0c;32bit 4字节 long&#xff0c;64bit 8字节 doubl…

睿尔曼-具身智能双臂主从手项目方案

具身智能双臂主从手项目方案 一、公司介绍 成立于2018年&#xff0c;是一家专注于超轻量仿人机械臂研发、生产及销售的国家级高新技术企业。总部位于北京石景山区首特产业园&#xff0c;工厂坐落于江苏省常州科教城智能数字产业园&#xff0c;团队的核心成员毕业于北京航空航…

前端验证码

一、基础验证码 gVerify.js&#xff1a; !(function (window, document) {function GVerify(options) { //创建一个图形验证码对象&#xff0c;接收options对象为参数this.options { //默认options参数值id: "", //容器IdcanvasId: "verifyCanvas", //ca…

springboot实现七牛云的文件上传下载

一&#xff1a;依赖包 <dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><qiniu-java-sdk.version>7.7.0</qiniu-java-sdk.version></dependency>二:具体实现 RestController RequestMapping…

c++11 标准模板(STL)本地化库 - 平面类别 - (std::ctype) 定义字符分类表(三)

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 定义字符分类表 std::ctype template< class CharT > clas…

【办公软件】开发常用网站

文章目录 一、开发社区二、开发学习三、视图工具四、开发工具五、前端web开发工具六、开发接口官网 备用产看。 https://www.webhub123.com https://www.webhub123.com/#/home/detail?projectHashid59183272&ownerUserid22053727 java全栈只是体系&#xff1a;https://www…

嵌入式软件面试---编程基础篇

嵌入式软件工程师面试中&#xff0c;编程基础部分通常涵盖以下几个核心主题&#xff1a; C/C基础知识 语法和语义&#xff1a;包括但不限于变量定义、数据类型、运算符、流程控制语句&#xff08;if-else、switch-case、for、while、do-while循环&#xff09;、函数定义及调用…

Java中常见的线程同步方式

在Java中&#xff0c;当多个线程同时访问共享资源时&#xff0c;为了防止数据不一致或损坏的问题&#xff0c;需要进行线程同步。Java提供了多种线程同步的方式&#xff0c;以下是一些常见的方法&#xff1a; 1. 使用synchronized关键字 synchronized关键字可以修饰方法或代码…

【nc工具信息传输】

nc&#xff0c;全名叫 netcat&#xff0c;它可以用来完成很多的网络功能&#xff0c;譬如端口扫描、建立TCP/UDP连接&#xff0c;数据传输、网络调试等等&#xff0c;因此&#xff0c;它也常被称为网络工具的 瑞士军刀 。 nc [-46DdhklnrStUuvzC] [-i interval] [-p source_po…

Linux系统Docker搭建Wiki.Js应用程序并结合cpolar实现公网访问内网知识库

文章目录 1. 安装Docker2. 获取Wiki.js镜像3. 本地服务器打开Wiki.js并添加知识库内容4. 实现公网访问Wiki.js5. 固定Wiki.js公网地址 不管是在企业中还是在自己的个人知识整理上&#xff0c;我们都需要通过某种方式来有条理的组织相应的知识架构&#xff0c;那么一个好的知识整…