ABAP开发:屏幕输入中,在多个选项卡中如何确定选择了哪个Tab Strips?

 在ABAP开发中,使用了SELECTION-SCREEN来创建了一个带有多个选项卡(Tab Strips)的屏幕。每个选项卡对应一个不同的屏幕编号(SCREEN 101, 102, 103),如下图:

      屏幕中有Name、Age、City三个标签选择,那么,在程序中如何确定选择了哪个标签呢?

     一般来说,需要给每个选项卡分配一个功能码(function code),并在AT SELECTION-SCREEN事件中检查sy-ucomm字段的值:

AT SELECTION-SCREEN.CASE sy-ucomm.  "根据系统变量判断用户选择WHEN 'TAB1'.WRITE: / 'You selected the Name tab'.WHEN 'TAB2'.WRITE: / 'You selected the Age tab'.WHEN 'TAB3'.WRITE: / 'You selected the City tab'.WHEN OTHERS.WRITE: / 'You did not select any tab'.ENDCASE.

但这样存在一个问题,就是当程序运行时,屏幕上显示的是默认的第一个标签即上图中的Name标签,若用户不选择其他标签就执行程序时,此时的sy-ucomm值为‘ONLI’ (代表点击了执行按钮),若根据上面的代码来判断,用户未对标签作出任何选择,这不符合我们的预期。为此,可以设置一个变量Choice 来记录用户的选择,并在屏幕的INITIALIZATION事件中设置Choice = 1 来作为用户默认选择了第一个标签,之后再在AT SELECTION-SCREEN事件中检查sy-ucomm字段的值来判断用户选择了哪个标签。完整代码如下:


REPORT ztabstrip.
DATA :CHOICE. "选择
* Define tabstrip area and tab titles
SELECTION-SCREEN BEGIN OF TABBED BLOCK tab_area FOR 10 LINES.
SELECTION-SCREEN TAB (10) tab1 USER-COMMAND tab1 DEFAULT SCREEN 100.
SELECTION-SCREEN TAB (10) tab2 USER-COMMAND tab2 DEFAULT SCREEN 200.
SELECTION-SCREEN TAB (10) tab3 USER-COMMAND tab3 DEFAULT SCREEN 300.
SELECTION-SCREEN END OF BLOCK tab_area.* Define subscreen areas for each tab title
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
PARAMETERS: p_name TYPE char10.
SELECTION-SCREEN END OF SCREEN 100.SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS: p_age TYPE i.
SELECTION-SCREEN END OF SCREEN 200.SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
PARAMETERS: p_city TYPE char10.
SELECTION-SCREEN END OF SCREEN 300.* Assign texts to tab titles
INITIALIZATION.tab1 = 'Name'.tab2 = 'Age'.tab3 = 'City'.CHOICE = 1 . "屏幕默认的选项为第一个标签也作为用户的默认选择
* Check which tab title is selected
AT SELECTION-SCREEN.CASE sy-ucomm.WHEN 'TAB1'.CHOICE = 1 . " 用户选择了 Tab Strips 1WHEN 'TAB2'.CHOICE = 2 . " 用户选择了 Tab Strips 2WHEN 'TAB3'.CHOICE = 3 . " 用户选择了 Tab Strips 3ENDCASE.START-OF-SELECTION.WRITE :/0 '你选择的标签是:',   CHOICE.

当用户执行程序而不做任何选择时,程序默认用户选择第一个标签,执行结果如下:

当用户选择第二个或第三个标签后执行程序的结果如下:

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

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

相关文章

39、基于深度学习的(拼音)字符识别(matlab)

1、原理及流程 深度学习中常用的字符识别方法包括卷积神经网络(CNN)和循环神经网络(RNN)。 数据准备:首先需要准备包含字符的数据集,通常是手写字符、印刷字符或者印刷字体数据集。 数据预处理&#xff1…

【网络安全】网络安全威胁及途径

1、网络安全威胁的种类及途径 (1)网络安全威胁的主要类型 网络安全面临的威胁和隐患种类繁多,主要包括人为因素、网络系统及数据资源和运行环境等影响。网络安全威胁主要表现为:黑客入侵、非授权访问、窃听、假冒合法用户、病毒…

18. 第十八章 继承

18. 继承 和面向对象编程最常相关的语言特性就是继承(inheritance). 继承值得是根据一个现有的类型, 定义一个修改版本的新类的能力. 本章中我会使用几个类来表达扑克牌, 牌组以及扑克牌性, 用于展示继承特性.如果你不玩扑克, 可以在http://wikipedia.org/wiki/Poker里阅读相关…

概率论拾遗

条件期望的性质 1.看成f(Y)即可 条件期望仅限于形式化公式,用于解决多个随机变量存在时的期望问题求解,即 E(?)E(E(?|Y))#直接应用此公式条件住一个随机变量,进行接下来的计算即可 定义随机变量之间的距离为,即均方距离 随机…

Redis分布式锁的实现、优化与Redlock算法探讨

Redis分布式锁最简单的实现 要实现分布式锁,首先需要Redis具备“互斥”能力,这可以通过SETNX命令实现。SETNX表示SET if Not Exists,即如果key不存在,才会设置它的值,否则什么也不做。利用这一点,不同客户端就能实现互斥,从而实现一个分布式锁。 举例: 客户端1申请加…

(科学:某天是星期几)泽勒一致性是由克里斯汀·泽勒开发的用于计算某天是星期几的算法。

(科学:某天是星期几)泽勒一致性是由克里斯汀泽勒开发的用于计算某天是星期几的算法。这个公式是: 其中: h是一个星期中的某一天(0 为星期六;1 为星期天;2 为星期一;3 为星期二;4 为 星期三;5 为星期四;6为星期五)。 q 是某月的第几天。 m 是月份(3 为三月,4 为四月,…

朴素贝叶斯分类器 #数据挖掘 #Python

朴素贝叶斯分类器是一种基于概率统计的简单但强大的机器学习算法。它假设特征之间是相互独立的(“朴素”),尽管在现实世界中这通常不成立,但在许多情况下这种简化假设仍能提供良好的性能。 基本原理:朴素贝叶斯分类器…

笔记本开机原理

从按下开机键开始,机器是如何开到OS的呢?今天这篇文章和大家极少EC-BIOS-OS的整个开机流程。首先大家要对笔记本的基本架构有所了解,基本架构如下图所示(主要组成部分为大写黑体内容)。 一、按下PowerButton按钮&#…

人工智能发展历程了解和Tensorflow基础开发环境构建

目录 人工智能的三次浪潮 开发环境介绍 Anaconda Anaconda的下载和安装 下载说明 安装指导 模块介绍 使用Anaconda Navigator Home界面介绍 Environment界面介绍 使用Jupter Notebook 打开Jupter Notebook 配置默认目录 新建文件 两种输入模式 Conda 虚拟环境 添…

酷开会员丨酷开系统K歌模式,父亲节的家庭欢聚时光

K歌以其独特的魅力,为家庭娱乐带来了无限乐趣。想象一下,父亲节这天,打开电视进入K歌频道,与家人一起嗨唱,客厅里充满了欢声笑语,酷开系统的K歌应用也就成为了连接亲情的桥梁,让爸爸们都能在这个…

Nvidia芯片Jetson系列 系统烧录环境 搭建

一、序言 Jetson 系列产品烧录系统的方法一般有两种: 一种为使用 NVIDIA 官方提供 的 SDK manager 软件给 Jetson 设备烧录系统(请查看说明文档《Jetson 产品使用 SDKmanager 烧录系统》)。 另一种即为当前文档所描述的,在安装 Ub…

基于SSM+Jsp的旅游景点线路网站

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

开源新纪元:ChatTTS——引领对话式文本转语音的新潮流

✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点赞、关注、收藏、评论,是对我最大…

好用的库函数,qsort函数大详解(干货满满!)(进阶)

前言: 小编在上一篇文章说了这一篇将要写qsort函数的模拟实现,那么废话不多说,现在开始进入今天的代码之旅喽! 目录: 1.qsort函数的模拟实现的逻辑和思路 2.qsort函数模拟实现的代码实现 3.代码展示 1.qsort函数的模…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第41课-动态添加3D对象

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第41课-动态添加3D对象 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

2.华为配置静态路由

通过配置静态路由让PC1和PC2互通 AR1 [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]ip add 1.1.1.1 24 [Huawei]ip route-static 192.168.2.0 24 1.1.1.2AR2 [Huawei]int g0/0/0 [Huawei-Gig…

盘点有趣的人工智能开源项目一

字幕导出 zh_recogn是一个专注于中文语音识别的字幕生成工具,基于魔塔社区Paraformer模型。它不仅支持音频文件,还能处理视频文件,输出标准的SRT字幕格式。这个项目提供了API接口和简单的用户界面,使得用户可以根据自己的需求灵活…

GitLab、jenkins

Gitlab服务器:192.168.10.20 jenkins服务器:192.168.10.30 web应用服务器:192.168.10.100 通过容器部署gitlab: 安装容器管理软件podman 修改主机的22端口,该gitlab软件包中会使用到该端口 gitlab容器需要使用/etc/res…

一二三应用开发平台应用开发示例(3)——生成库表及后端代码

生成库表 前端页面的配置,也就是视图功能,我们先放一放,来看看生成库表和后端代码。 关闭实体配置界面,回到实体列表,勾选“文件夹”实体,点击“生成库表”,并确定。 系统提示成功后&#xff…

【每天学会一个渗透测试工具】dirsearch安装及使用指南

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 ✨dirsearch介绍 dirsearch安装包百度网盘 disearch是基于Python开发的,因此需要确保你的系统中已经安装了pyth…