【ABAP——DAILOG_2】

在这里插入图片描述
用户通过界面输入数据,数据通过屏幕控件传递到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设成不可输入
    在这里插入图片描述
    激活后运行程序显示
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值