首页 > 其他分享 >【ABAP——DAILOG_2】

【ABAP——DAILOG_2】

时间:2024-12-03 18:32:49浏览次数:11  
标签:Control 控件 DAILOG CTRL WHEN TS ABAP TAB

文章目录

在这里插入图片描述
用户通过界面输入数据,数据通过屏幕控件传递到ABAP/4程序中的变量,程序在PBO中准备数据并显示界面,用户回车后,PAI处理用户输入的数据,按顺序依次执行PAI中MODULE,并将结果反馈到界面。

使用Tabstrip控件实现分页签效果

Tabstrip可以实现在某个界面中,通过tab页的形式来显示多个界面
构成:按钮及子界面区域
1.创建Tabstrip Control
输入Tabstrip Name:Tabstrip Control控件名称(例:TS_TAB)
2.输入需要创建的各个tab页的描述
3.设定各tab页的名称,及相应的子界面编号
4.设定各部分代码进入的Include程序
激活程序后,可以查看到程序中增加了子界面的编号,可以依次进入界面
修改界面格式:设置方式与主界面相同,但不能设置GUl Status和GUI TITLE

标签页的修改

1.减少
选中标签页切换位置(Pushbutton),点击删除
在数据定义/PBO/PAI中做相应变更,也可不变更
2.增加
选择Pushbotton控件,在标签页旁边增加一个页面
设置按钮属性
在这里插入图片描述

增加数据定义/PBO/PAI处代码,可以直接参考复制
数据定义
在这里插入图片描述
PBO

MODULE TS_CTRL_ACTIVE_TAB_SET OUTPUT.
  TS_CTRL-ACTIVETAB = G_TS_CTRL-PRESSED_TAB."已激活的分页签:默认值是第一个分页签
  CASE G_TS_CTRL-PRESSED_TAB."点选了哪一个分页签
    WHEN C_TS_CTRL-TAB1.
      G_TS_CTRL-SUBSCREEN = '0110'."屏幕编号赋值
    WHEN C_TS_CTRL-TAB2.
      G_TS_CTRL-SUBSCREEN = '0120'.
    WHEN C_TS_CTRL-TAB3.
      G_TS_CTRL-SUBSCREEN = '0130'.
    WHEN C_TS_CTRL-TAB4.
      G_TS_CTRL-SUBSCREEN = '0140'.
    WHEN OTHERS.
*&SPWIZARD:      DO NOTHING
  ENDCASE.
ENDMODULE.

PAI

MODULE TS_CTRL_ACTIVE_TAB_GET INPUT.
  IF GV_UCOMM IS NOT INITIAL.
    G_TS_CTRL-PRESSED_TAB = C_TS_CTRL-TAB3.
    CLEAR GV_UCOMM.
  ELSE.
  OK_CODE = SY-UCOMM.
  CASE OK_CODE.  "根据点选按钮,给全局参数赋值
    WHEN C_TS_CTRL-TAB1.
      G_TS_CTRL-PRESSED_TAB = C_TS_CTRL-TAB1.
      CLEAR GT_STATUS[].
    WHEN C_TS_CTRL-TAB2.
      G_TS_CTRL-PRESSED_TAB = C_TS_CTRL-TAB2.
    WHEN C_TS_CTRL-TAB3.
      G_TS_CTRL-PRESSED_TAB = C_TS_CTRL-TAB3.
      CLEAR GT_STATUS[].
      GT_STATUS = 'SAVE'.
      APPEND GT_STATUS.
    WHEN C_TS_CTRL-TAB4.
      G_TS_CTRL-PRESSED_TAB = C_TS_CTRL-TAB4.
    WHEN OTHERS.
*&SPWIZARD:      DO NOTHING
  ENDCASE.
  ENDIF.
ENDMODULE.

使用Table Control控件实现表单输出

表格控件

  • 当界面中查询多条数据时,可以使用TableControl控件来进行表单输出
  • Table Control的行及列可以由以下元素构成:
    KeyWords
    Input/Output Fields
    Radio Button/Radio Button Group
    Checkbox
    Pushbutton

使用向导创建Table Control

在程序中创建Table control使用的内表(向导会自动创建相应执行代码)

DATA GT_SCHOOL TYPE TABLE OF ZSCHOOL_JSM_01.
DATA GS_SCHOOL TYPE ZSCHOOL_JSM_01.

创建Table Control

选择表控件在屏幕画出表单
在这里插入图片描述

进入向导界面,输入表控制名称后继续
Name of Table Control:TableControl的名称(例:TC TAB)
在这里插入图片描述

使用Internal Program Table创建,选择程序中的内表
在这里插入图片描述
选择显示列
在这里插入图片描述

设定属性
Outputonly:只显示,不可输入
Input Control:可输入
With column header:带标题
Line selection col.:行可选中
Single:只能选中一行
Multiple:可以选中多行
在这里插入图片描述

设定按钮
Scroll:设定滚动条
Insert/delete line:插入/删除行按钮
Select/deselect all:选中所有/不选中按钮
在这里插入图片描述
设定各部分代码进入的Include程序
在这里插入图片描述

Table Control列的修改

1.增加
在之前定义的内表中增加字段
在这里插入图片描述
在布局中使用Input/Output Field增加列
在这里插入图片描述
Text控件增加描述
在这里插入图片描述
在PAI的Chain部分,增加相应字段
在这里插入图片描述

  1. 减少
    在布局中选中input/output field,直接删除;
    退出布局激活程序会报错
    在这里插入图片描述
    需要将PAI中的Chain部分的相应字段进行注释
    在这里插入图片描述
    激活程序后运行表单显示没有ZADD字段
    在这里插入图片描述
    3.属性修改
    更改前
    在这里插入图片描述
    将Input/Output Field设成不可输入
    在这里插入图片描述
    激活后运行程序显示
    在这里插入图片描述

标签:Control,控件,DAILOG,CTRL,WHEN,TS,ABAP,TAB
From: https://blog.csdn.net/irisawy/article/details/144032268

相关文章

  • ABAP 关于INNER JION需要注意的一点
    INNERJOIN多取值的情况,举例如下比如A表一条数据FIELD1FIELD2A1A2 B表多条数据(假设三条)FIELDB1FIELD1FIELDB3B1A1B2B3A1B4B5B6B7 如果用AINNERJIONBATFIELD2WHEREFIELD2='A1',跑出来的结果将是两条数据FIELDB1FIELD1FIE......
  • ABAP 通过模板上传文件进行批导
    主要实现了以下步骤:1、让用户下载模板。2、根据模板填写数据选择文件进行上传。3、根据用户数据进行存在性判断,存在则可以改,不存在不可以修改。4、通过BAPI或者BDC实现程序自动批量修改。5、将修改结果显示给用户,失败给出失败信息,消息灯变红,成功显示成功,消息灯为绿。具体......
  • ABAP开发规范V1.0
    1.概要1.1目的该文档定义了在开发与维护ABAP程序过程中必须遵守的规范与标准。该文档应当被视为一个动态的文档,该文档会根据需要进行增补和修订。开发规范的重要作用在于保持整个开发团队的开发风格一致,提高程序质量,降低维护压力。1.2适用范围所有ABAP开发及系统配置人员。......
  • SAP-ABAP开发-第一代增强示例
             以SD用户出口为例(SD及MM较多的程序都是基于源码控制来实现增强的)基于销售订单,当选择ZUSS类型的销售订单时,PO编号必输。开发类:VMOD出口程序:include中需要申请accesskey才能更改的,相当于修改了SAP的标准程序T-code:spro进入后台配置目录,找到用户出口,找......
  • 【ABAP——批量导入】
    文章目录BAPI数据导入更改采购订单BDC数据导入更改采购订单程序中调用BAPI更改采购订单程序中使用BDC更改采购订单在SAP系统中,如果想对一个事物码(TCODE)进行反复操作,从而达到批量数据处理的目的,这就是批量导入。批量导入的目的是重复的操作一类数据,从而用程序模拟业......
  • ABAP开发学习——二分法查找问题记录
    在ABAP中使用二分法查找之前需要注意内表需要提前经过排序,尤其注意根据哪个字段使用BINARYSEARCH,就要针对哪个字段进行排序。使用两个及以上字段更要注意这一点,不可以用AB排序,再用BC去二分法查找,这样通常是读不到所需数据的。TYPES:BEGINOFty_data,field1TYP......
  • ABAP开发实战——SMARTFORMS输出字段长度问题
    再smartforms中需要给输出的字段分配所在单元格的长度和宽度,如果,输出长度都不够,数据就无法完全输出,此时可以通过增加输出时的高度,数据会自动换行继续输出,如图所示        同时,这里涉及到了数量的输出问题,数量如果是参考某个数据元素,那么就会有一个初始长度,这里举个例......
  • 【ABAP——DAILOG_1】
    文章目录程序类型Report程序:1类型程序Online程序:M类型程序Online程序的主要对象Screen界面中的事件块(EventBlock)界面中常用关键字程序类型Report程序:1类型程序制作报表,数据列表(DataList)输出Online程序:M类型程序查询数据,录入、修改、删除等ModulePool程......
  • ABAP 面向对象开发
    一、面向对象        面向对象(Object-Oriented,OO)是现代编程的一种思想和方法,它通过模拟现实世界中的对象及其相互作用来组织和设计程序。ABAP中的面向对象和JAVA、C++等类似,有面向对象的语言开发基础的理解起来会更加快速。有关的事务码:SE24(全局定义),SE38(在代码中定......
  • SAP-ABAP开发学习-FUNCTION ALV
    ALV概览        ALV全称SAPListView,是SAP提供的一个强大的数据报表显示工具。ALV实质上是一个屏幕控件对象,它通过程序传递数据内表的方式来显示数据。实现方式:调用标准函数;优化接口:用户可以实现对字段的排序、筛选及统计等功能。显示方式:List类似于write语句输......