屏幕编程
程序类型
Executable program (type1) 可执行程序
Module pool (type m) 必须制作一个T CODE 才能运行
制作T-CODE
点击程序右键点击 transaction
选项:
Program and screen (屏幕程序)
Program and selection screen(选择屏幕) (alv)选择
Program 程序的名称 保存
键入 TCODE 就可以进入
重要:真实项目中每一个程序都需要一个TCODE
屏幕程序
PBO 屏幕显示前做的动作
PAI 屏幕显示之后做的动作
选择屏幕中的PBO 和PAI 都不需要用户定义
制作屏幕
在程序中 CALL screen 0100.(调用屏幕)
双击建立屏幕
Screen type(屏幕类型)
Normal(一般屏幕)
Subscreen(子屏幕)
Modal dialog box
屏幕选项:
Other attributes
Next screen 下个屏幕回到界面0 注意:如果定义为本身 则会无法跳出屏幕
Element list 包含元素的名功能代码
重要: 定义OK_CODE 用来处理按钮事件
Flow logic选项卡中拥有有PBO(process before output)和PAI(process after input)
在PBO和PAI中拥有事件块,也可以用户自己定义相关事件
Screen painter 使用
点击layout按钮进入
Tabstrip 向导(可以根据向导轻松的建立控件)
Layout中控件的名称一定要大写
Box 框
选项卡中显示的为子屏幕区域
Table contral 选择表(难度大)
Table contral 选择表向导(向导非常好)
定义一个区域可以把数据放到区域里也可以放alv报表
状态图标(重要)
如果出发到达城市在一个国家
为国内航空
如果不在一个城市,为国外航空
按钮为国内航空
如果国内显示对号 不在显示错号
输出的数据 在PBO中
屏幕程序的顺序
数据库表 ----- 内表----结构------屏幕结构-------屏幕
屏幕- -- -屏幕结构-- -结构----内表----数据库表
Screen 系统内表
Screen-input = ‘X’ 默认值
双击控件设置属性(姓名…等等)
键入back 后退
将输入框设置成必选框
PBO中自己建立一个module init_screen
放入到新的include
Loop at screen.
If screen-name = ‘INPUT1‘.(控件名称)
Screen-required = ‘1’.
Endloop.
单选框radio 1 2 3要属于一个组 adm
建立新屏幕
在程序上右键创建新屏幕 200
设置Next screen 静态的 下一屏幕
动态的下一屏幕 如果在程序中指定跳转屏幕
则不会 跳到静态屏幕中
加入module next_screen
动态设定 set screen 300
Leave screen.(跳出屏幕)
屏幕100与屏幕200之间 插入屏幕300可以使用call screen 300时
则进入 screen 300 而后还会进入200
但是 如果用 leave to 300. 则不会再进入200
调用对话框
Call screen 101
Starting at lc ur
Ending at rc lr.
在PBO中建立工具条
module status_0100.打开屏幕100中PBO下的注释
建立
Set pf-status ‘MYSTATUS’.
Set TITLEBAR ‘MYTITLE’.
建立子程序MYSTATUS 和MYTITLE(标题,用户自己设定)
将工具条按钮的动作写到PAI中
Module user_command_0100 负责 点按钮后的事件
OK_CODE 系统变量 (需要定义)
Data ok_code type sy-ucomm.
在PAI中的user_command_0100中写入
CASE OK_CODE.
WHEN ‘BACK’
LEAVE TO SCREEN 0.
ENDCASE.
可以从数据库表或系统表中拖出一组的控件
点”右下角是小红”的图标
输入表名 get from dictionary
选择字段
拖入
可以直接建立
定义一个<状态图标>按钮
DATA ICON_NAME TYPE ICON-NAME.
DATA ICON TYPE ICONS-TEXT.
在PBO中写 module set_icon.
Select * from ekpo into table IT_EKPO.
Read table it_ekpo into wa_ekpo index 1.
If wa_ekpo = ‘’.
Icon_name = ‘ICON_CHECKED’.
Else.
Icon_name = ‘ICON_INCOMPLETE’.
Endif.
在主程序中定义
DATA WA_EKPO TYPE EKPO.
Data icon_name type icon-name.
Call function icon_create
EXPORTING
name = icon_name
Importing
Result = ICON (对错号的名)
例题: 如果ekko的数据 大于10000 则提示 数据条目过多.
建立module check input
If ekpo-natnr = ‘AAA’
MESSAGE ‘请输入正确数值’ TYPE ‘I’.(一定要加’ ’否则就为错)
Endif.
Type ‘I’ 代表一种信息 自动跳到 静态下一个屏幕
TYPE ‘E’ 代表是一种错误 又跳回自己屏幕
TYPE ‘S’ 表示success
‘A’ 表示 终止
把srchhelp变成下拉菜单
在layout中 把控件的dropdown 改为list
单选框 和复选框
在 layout中选择控件 点选框 建立控件
制作单选框 group-op1 group-op2
然后将控件用框围起来
右键框 把 单选框组合
Define radio button group
要定义一个组 (结构).
Data: begin of group,
Op1 value ‘x’,
Op2,
End of group.
复选框的建立
把复选框加入到layout中
Check 1 check 2
给括起来
要定义一下
Data check1 type c value ‘X’.
Data check 2 type c value ‘Y’.
Pushbutton
在LAYOUT中加入按钮控件
按钮中 需要加入 一个OK_CODE
然后在 PAI中使用
转自:http://blog.sina.com.cn/s/blog_5cdacb630100ceak.html~type=v5_one&label=rela_nextarticle