首页 > 编程语言 >ABAP DIALOG屏幕编程3

ABAP DIALOG屏幕编程3

时间:2024-12-11 16:58:55浏览次数:6  
标签:控件 创建 编程 点击 ABAP DIALOG 标签 屏幕 跳转

DIALOG屏幕编程1中阐述了DIALOG、PBO、PAI的概念并且对常用页面元素怎么用进行了演示。在DIALOG屏幕编程2中演示了响应用户指令、怎么添加下拉框、搜索帮助,实现屏幕跳转等。在这篇文章中会演示怎么创建表控件和标签条。


一、创建新屏幕

在同一个MODULE模块池中可以创建多块屏幕。

1、创建一块新的屏幕

在程序名处右键创建屏幕;或者屏幕文件夹处右键点击创建,填写屏幕编号。

2、输入屏幕的简短描述,可以修改下一个屏幕的编号,这在上一篇文章里有提到。

 3、文件清单处填写获取用户操作的变量名。

4、保存。

若获取用户操作的变量名和其他屏幕一致,在保存之后可能会又自动定义这个变量,去变量定义的地方删掉就可以了。 

5、增加屏幕跳转按钮。

a、为了后面演示方便,这里在0100里增加一个跳转按钮,点击后跳转至0200屏幕。

b、在0100用户操作处理的地方加入跳转语句。 

6、为了后续方便操作,将0200的菜单栏设置出来。 

DIALOG屏幕编程2中有演示。

二、创建表控件

Dialog表控件是与SAP GUI交互的组件,用于在用户界面中展示表格数据。通过这些控件,可以在SAP应用程序的屏幕中展示和处理表格数据。表控件通常用于显示和编辑多行数据。

在屏幕开发时,我们可以使用含向导的表控件,轻松的创建一个用于演示的表格出来。

1、创建新屏幕

我们可以在当前屏幕或者再创建一个屏幕用于显示表格,这里演示的时候创建一个新的屏幕0200。

2、 在布局选择表控件,拖出显示范围

3、按向导完成创建

a、启动页面点击继续。
b、填写表控制名称,建议以TAB_XXXX的形式。

c、表名称处选择显示用的表。
1)字典表:存于系统中的底表。
2)内部程序表:程序中所定义的内表,表工作区需要填对应的结构体。所以如果需要显示内表需要先定义已经对应的结构体类型也要定义出来。

d、 列定义处选择需要显示的列。

e、表控制属性处可以选择表的输入/输出属性。
1)只输出:只可以读数据,不可以进行修改数据。
2)输入控制:可以修改表数据,可以在创建后对单个列进行只读设置。

f、选择附加表维护功能处可以设置表是否可以滚动查看,可不可以插入/删除行,能不能全选。

g、创建时会产生一些文件,选择文件保存位置。建议按照模块摆。

h、继续,点击完成,创建成功。
i、完成之后跳转至布局页面,可以看到创建出来的表格,都是可编辑状态,点击列标题,可以更改文字描述。点击空白的地方悬停到边界处可以修改列宽。

j、 修改字段的只读属性。双击列的除了列标题的任意单元格,将Input改成not possible就行了。

k、可以看到在包含程序中生成了很多代码段。可以自己去阅读进行修改。主要是功能实现和用户指令相应。

4、结合一和二的操作最终实现效果

在0100点击查看学生信息跳转至0200。

在屏幕0200点击返回跳转至屏幕0100。

更复杂的功能实现可以自己添加,在空余的地方可以添加其他信息。

三、创建标签条

标签条(也叫做Tabstrip 或 Tab Control)是用户界面中常见的控件,用于在多个选项卡(Tab)之间切换。这种控件通常用于将多个信息或功能模块分组到一个屏幕中,以提高界面的组织性和可用性。

1、在布局中选择标签条(含向导),拖选出标签条范围。

2、启动页点击继续。

3、标签条控制名称页填写标签条名称。

4、标签标题定义处填写标签页的页签名。

5、标签页上的分配,子屏幕和功能代码是自动分配的,没有额外要求不需要进行更改。

6、每个标签页都有自己的PBO和PAI,这里给它的文件选择位置。

7、点击完成,完成创建。

8、标签页的类型是子屏幕。逻辑流中也有自己的PBO和PAI,也可以在布局中添加页面元素,也可以创建表控件和标签页。

 四、一些DIALOG开发补充内容 

1、FIELD与CHAIN&ENDCHAIN。

FIELD 字段名 MODULE 模块名."对字段进行处理

对一个字段进行处理的时候,我们使用关键字FIELD。FIELD关键字用于定义用户界面元素的输入字段。通过该字段,开发人员可以在屏幕(Dynpro)中显示、输入或修改数据。每个FIELD对应一个屏幕字段,它在ABAP代码中通常和数据表或结构中的字段绑定,通过这种方式与程序逻辑交互。

对于多个字段进行处理,比如联合查询时我们就需要使用到关键字CHAIN&ENDCHAIN

                                                              CHAIN.
                                                                    FIELD 字段名1.
                                                                    FIELD 字段名2.     .....
                                                                    MODULE 模块名.
                                                               ENDCHAIN.

2、关键字AT EXIT-COMMAND。

AT EXIT-COMMAND是一个特殊的事件,用于捕捉和处理用户在 SAP GUI 中触发的退出命令(如点击“取消”按钮、关闭窗口或按下“退出”按钮等)。这个事件通常在屏幕的 PAI 模块中使用,优先级最高,触发时会跳过前面的模块直接执行,用于在用户离开屏幕或退出当前程序时执行特定的逻辑。一般实现跳转屏幕操作。

a、方法一

AT EXIT-COMMAND.
  " 执行退出时的逻辑
ENDAT.

b、方法二 

MODULE 模块名 AT EXIT-COMMAND.

五、小结

DIALOG开发本身对于页面元素的处理并不麻烦,毕竟是可视化的,主要是要设计的合理,好用,并且注意其中的逻辑处理。

标签:控件,创建,编程,点击,ABAP,DIALOG,标签,屏幕,跳转
From: https://blog.csdn.net/qq_55411102/article/details/144400257

相关文章

  • 在CodeBolcks+wxWidgets下的C++编程教程——用向导创建一个Windows GUI项目
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”:学习编程......
  • 编程题-最长公共前缀
    题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。解题:依......
  • GitHub 正式收录 MoonBit 作为一门通用编程语言!核心用户突破三万!
    MoonBit 编程语言正式被Github收录!这对于一个仅有两年发展时间的编程语言来说是一种高度认可,期待未来由MoonBit编写的项目数量快速增长,早日成为首个由国人研发迈进10万➕用户的编程语言。最近用户数已经接近3万(数据统计来源综合VisualStudioMarketplac......
  • Python异步编程(上):协程和任务
    原文链接:https://mp.weixin.qq.com/s/dQOocc7wHaGv7_cf476Ivg介绍了解异步编程前先了解一些概念:协程(coroutine)、任务(task)和事件循环(eventloop),在3.7以前还需要关心Future这个东西,不过之后提供的高级API弱化了这个概念,你基本不需要关心Future是什么。协程协程等于一个......
  • 奇奇怪怪的编程语言:Malbolge
    Malbolge除了我们日常使用的Python、Java、C等主流编程语言外,还存在这么一类极为晦涩难懂的编程语言,被称为深奥的编程语言(Esotericprogramminglanguage,简称Esolang)。它们被设计用于测试计算机语言表达的极限,所以不会考虑它们的实用性。今天我们来看其中一个非常典型的例......
  • ChatGPT的“超能力“升级!AI写作、编程、审阅样样行
    点击访问chatTools免费体验GPT最新模型,包括o1推理模型、GPT4o和Claude等模型!在科技圈,OpenAI再次掀起了一阵惊涛骇浪。就在今天,他们推出了全新的Canvas功能,直接颠覆了我们与AI交互的传统方式。全新协作模式:不只是聊天Canvas不再是简单的对话工具,而是一个真正的协作......
  • AlertDialog组件的用法
    文章目录1概念介绍2使用方法3示例代码我们在上一章回中介绍了DismissibleWidget相关的内容,本章回中将介绍AlertDialogWidget.闲话休提,让我们一起TalkFlutter吧。1概念介绍我们介绍的AlertDialog是指程序中弹出的确认窗口,其实我们在上一章回中删除Lis......
  • ABAP开发-批量导入BAPI和BDC_1
    系列文章目录文章目录系列文章目录@[TOC](文章目录)前言一、概念二、BDC和BAPI数据导入1、BDC数据导入(录屏)2、BAPI数据导入三、实例1、BAPI2、BDC总结前言一、概念SAP中,对一个事务码反复操作并且达到批量处理数据的效果,即批量导入,重复操作一类数据,从而用程序模......
  • Python 网络编程
    Python提供了两个级别访问的网络服务:低级别的网络服务支持基本的Socket,它提供了标准的BSDSocketsAPI,可以访问底层操作系统Socket接口的全部方法。高级别的网络服务模块SocketServer,它提供了服务器中心类,可以简化网络服务器的开发。什么是Socket?Socket又称"套接......
  • shell编程9 重定向操作和不同脚本的互相调用 (泷羽sec)
    声明学习视频来自B站UP主泷羽sec,如涉及侵泷羽sec权马上删除文章。笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了解学习哪些知识对于我们渗透......