Online程序学习(一)

一、创建Onlie程序
在这里插入图片描述
二、Online概览
Online程序:M类型程序

  • 查询数据、录入、修改、删除等
  • Module Pool程序:以Module Pool形态进行业务流程的逻辑处理
  • Online 程序,强调用Online Transaction来处理业务流程进行过程
  • Screen 程序,主要使用Screen(及屏幕对象),并实现界面间Flow Logic(流逻辑)

Online程序的主要对象

  • 界面(Screen)

  • 模块池(Module pool)

      全局字段(Global Data):声明模块池中所有模块都可使用的数据-TOP
      PBO模块(PBO Modules):屏幕输出前调用的模块-O01
      PAI模块(PAI Modules):相应用户输入而调用的模块 -I01
      子程序(Subroutines):可以在模块中任何位置调用的子程序-F01
    
  • 菜单(GUI Status)

  • 标题(GUI TITLE)

  • 事物代码(Transation Code)

  • 用户可以访问的部分是Screen,用户对界面进行操作,相应的操作是通过Screen中的逻辑流控制,而数据声明和界面逻辑代码实现部分是在ABAP程序中。

  • 总结
    Module Pool大致可以分成PBO、PAI两个模块,与界面的逻辑流的顺序一致,对应的流程就是界面显示前和用户输入后。简单来说,就是将画面显示前所需的逻辑和用户对界面进行处理的逻辑分别放置到各自的processing block中。
    默认情况下,系统将模块池分成一个或多个包含程序。

三、界面(Screen)

SAP的屏幕开发
ABAP List代码实现(例:选择界面的创建)

Report程序直接执行即可以显示查询界面或结果界面

Dialog Screen绘制:较复杂,界面丰富

Online程序想要显示查询或结果界面必须建立Screen
事件驱动程序(Event-Driven)

屏幕功能实现

1、 ABAP程序不能直接定义Screen,要通过Screen Painter这个工具来实现。界面元素的设定通过Screen Layout Designer来实现
2、界面的设定:属性/大小/模式
3、界面中的元素:描述或帮助。可以进行有效性检查
4、界面中可以设置独立的Menu Bar或Title,点选按钮或回车可以触发相应功能
功能实现位置:逻辑流中设定

Online程序不能被直接执行,必须通过事务代码,指定界面执行

四、界面中的事件块(Event Block)

  • PROCESS BEFORE OUTPUT.

PBO中的处理逻辑控制界面输出前处理,如更改一些元素的值和属性

  • PROCESS AFTER INPUT

PAI中的处理逻辑控制用户对界面操作后的处理,如按回车键对输入数据进行检查

  • PROCESS ON HELP-REQUEST

Field Help的实现(F1帮助)

  • PROCESS ON VALUES-REQUEST

输入帮助Search Help的实现(F4帮助)

五、界面中的常用关键字

Keyword功能
MODULE调用Dialog Module
FIELD指Element list中特定的Screen field。即,可以判断Screen Field的值或状态是否发生变化。在PAI中对相关Field进行控制时,一定要使用的关键字。
ONFIELD …… ON (Field的连接语)
VALUEFIELD …… VALUE (Field的连接语)
CHAINCHAIN的开始。CHAIN可以将多个Field捆绑成一个同时进行管理。
ENDCHAIN结束CHAIN
CALL调用(CALL a Subscreen)
LOOP开始处理Screen Table
ENDLOOP结束Screen Table处理

六、数据处理逻辑

在这里插入图片描述

七、Module执行顺序

在这里插入图片描述

八、数据检查

1、当SCREEN创建了一个字段,程序代码怎么获取数据?

在程序上定义一个和SCREEN相同的变量,程序对应的变量即可和SCRENN的变量互相传值,两字字段就已进行绑定。

2、数据检查

在一些程序中,当我们设置了输入框后,需要根据用户的输入,进行有效性的检查等,DIALOG界面中提供了针对字段的检查方式:

针对某个字段
FIELD f1 MODULE m1 ON-REQUEST .

检查的字段是 f1 ,执行检查的代码是:M1,ON-REQUEST含义:当变量数据发生改变时。

针对多个字段检查的语法
CHAIN. 
  FIELD f1.
  FIELD f2.
  FIELD f3.
  MODULE m1 ON CHAIN-REQUEST.  
ENDCHAIN.
将光标停留在字段上的语法
SET CURSOR FIELD ‘字段名’
E类型按钮

在这里插入图片描述

只要点击E类型的按钮时,就会触发AT EXIT-COMMAND这个MODULE,MODULE里的代码不需要判断sy-ucomn功能代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值