屏幕编程 (Dynpro) (★★★★)

屏幕编程 (Dynpro) (★★★★)

#abap #abap-dialog

概述表

概念 要点
Dynpro (屏幕) 屏幕 + 流逻辑
模块池 基于屏幕对话的程序类型
PBO 输出前处理(屏幕显示前运行)
PAI 输入后处理(用户操作后运行)
功能码 标识用户操作(按钮点击、菜单)

屏幕处理流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1. PBO (Process Before Output)
├── 设置屏幕属性
├── 填充默认值
└── MODULE status_0100.

2. 屏幕显示 (SAP GUI 渲染)
└── 用户与屏幕交互

3. PAI (Process After Input)
├── 将屏幕值传输到 ABAP
├── 功能码发送到 OK_CODE 字段
└── MODULE user_command_0100.

4. 确定下一个屏幕
├── SET SCREEN nnn (动态)
└── 屏幕 0 = 返回/结束

屏幕组件

组件 描述
布局 可视化排列(屏幕绘制器)
属性 屏幕编号、类型、下一屏幕
元素列表 字段、按钮、OK 代码字段
流逻辑 PBO 和 PAI 模块调用

流逻辑语法

1
2
3
4
5
PROCESS BEFORE OUTPUT.
MODULE status_0100.

PROCESS AFTER INPUT.
MODULE user_command_0100.

OK 代码字段

1
2
3
4
5
6
7
8
9
10
" 在 TOP include 中:
DATA ok_code TYPE syucomm.

" 在 PAI 模块中:
CASE ok_code.
WHEN 'GO'. SET SCREEN 200.
WHEN 'BACK'. SET SCREEN 100.
WHEN 'EXIT'. SET SCREEN 0.
ENDCASE.
CLEAR ok_code.

屏幕导航

语句 作用
SET SCREEN nnn 设置下一个屏幕(在当前 PAI 之后)
LEAVE TO SCREEN nnn 立即跳转到屏幕 nnn
CALL SCREEN nnn 调用屏幕(拥有独立调用栈)
SET SCREEN 0 返回调用屏幕或退出

考试/测试模式

场景/关键词 答案
“PBO 何时运行?” 屏幕显示之前
“PAI 何时运行?” 用户操作之后
“SET SCREEN 0 含义?” 返回调用者或退出
“OK 代码字段用途?” 接收功能码

相关笔记