sapABAP开发实例详解.ppt
《sapABAP开发实例详解.ppt》由会员分享,可在线阅读,更多相关《sapABAP开发实例详解.ppt(42页珍藏版)》请在装配图网上搜索。
ABAP培训 韩郁飞 ABAP程序分类 报表程序 Report 1 结构简单 2 由事件块 EventBlocks 组成程序架构 3 执行方式多样 对话程序 DialogProgram TransactionProgram 1 结构复杂 2 包括ABAP程序代码 用户对话 图形用户接口和事务代码 3 图形用户接口包括菜单栏 标准工具栏 应用程序工具栏和标题栏4 程序由事务代码触发运行 报表程序分类 普通报表程序输出结果格式固定 不能对其进行交互式操作 交互式报表程序通过特定的触发事件 比如双击 菜单 按钮和功能键等 可以对报表结果进行操作 报表程序结构 处理块的类型 事件块 组成报表程序的基本单位 原则上每个事件块由各自的关键字为起始 不同的事件块执行不同的任务 事件块的结束标志为下一个事件块的关键字 事件块由ABAP运行时环境调用 其调用顺序固定 与程序编码顺序无关 缺省的事件块START OF SELECTION 实例讲解 汽柴油 石脑油 航空煤油日出厂情况表目的 对配置计划 销售计划 中汽柴油 石脑油 航空煤油的日销售完成情况进行统计 数据来源于系统 程序名 REPORTrep Additions 1 NOSTANDARDPAGEHEADING2 LINE SIZEcol3 LINE COUNTn m 表单输出每页由n行 其中的m行作为页脚 4 MESSAGE IDmid消息对象5 DEFININGDATABASEldb使用逻辑数据库 自动产生 Tables语句 基本格式TABLESdbtab Dbtab是指ABAP字典的一个数据库对象 可以是透明表格 视图和结构 该语句的作用是声明了一个表工作区 类似于C语言里面的STRUCTURE和PASCAL语言里面的RECORD 这个表工作区由多个字段组成 其名称 类型和dbtab的字段完全相同 ABAP字典对象中字段的类型自动的转换为ABAP程序的类型 表工作区通常是一个全局变量 TYPES语句 定义一个简单的数据类型 定义一个结构化的数据类型 定义一个内表形式的数据类型 TYPES语句格式 1 TYPEStype 2 TYPEStype len 3 TYPES BEGINOFstructype ENDOFstructype 4 TYPESitabtype TYPEtabkindOFlinetype LIKEtabkindOFlineobj WITH UNIQUE NON UNIQUE keydef INITIALSIZEn 5 TYPESitabtypeTYPERANGEOFtype TYPESitabtypeLIKERANGEOFf 6 TYPESitabtype TYPElinetype LIKElineobj OCCURSn DATA语句 定义一个简单类型的变量定义一个结构化的数据对象定义一个内表定义一个共享的数据区域用于外部的子程序调用 DATA语句 DATA语句定义内表 定义输入屏幕 用SELECTION SCREEN语句来定义输入屏幕 SELECTION SCREEN语法 特殊效果 输入字段设计 PARAMETERS语句SELECT OPTIONS语句 PARAMETERS语法 Select options语法 事件块 INITIALIZATIONATSELECTION SCREENSTART OF SELECTIONGETEND OF SELECTIONTOP OF PAGEEND OF PAGE 事件块详细讲解 事件块的简单处理过程 ABAP程序运行的时候 INITIALIZATION首先被调用 经过初始化的输入屏幕会显示在表示服务器 用户离开输入屏幕的时候 START OF SELCTION事件会被自动调用 结果数据会以列表的形式显示在第二个屏幕上 事件块的语法 源代码中的事件块顺序不影响它们的执行顺序 事件块编码规则 1 INITIALIZATION通常在此事件块中设定输入屏幕字段的初始值 例如 INITIALIZATION P DATE 20030201 效果 输入屏幕的日期字段初始显示值为2003年2月1日 事件块编码规则 2 ATSELECTION SCREEN通常在此事件块中进行用户输入数据的合法性检查 发现错误则以消息的形式给出警示 直到用户输入正确的数值 例如 ATSELECTION SCREEN IFP DATE SPACE MESSAGEE001 ENDIF 效果 如果字段P DATE为空 则程序会用消息001 日期字段不能为空 来提示用户必须输入一个日期 而且输入屏幕会等待用户输入 知道该字段数值合法 事件块编码规则 3 START OF SELCTION通常在此事件中针对业务需求进行系统数据的查询 例如 start of selection performget data for oil 效果 在输入屏幕用户按下执行按钮后 子程序get data for oil被执行 在其中获得业务相关的数据存放到内表或者其它变量 这些数据在END OF SELECTION事件块中被输出 事件块编码规则 4 END OF SELCTION通常在此事件中进行结果清单的输出 例如 end of selection write 23 1 sy vline 24 20 tab gas planright justified 效果 数据以清单的形式输出 事件块编码规则 5 GET从逻辑数据库中得到数据 较少用 TOP OF PAGE在此事件块中设计输出清单的页头 例如 TOP OF PAGEwrite 1 240 汽柴油日出厂情况表 centered write 20 8 日期 29 10 s date 180 6 单位 190 10 吨 事件块编码规则 6 END OF PAGE在此事件中设定输出清单的页脚 例如 END OF PAGE Write 制作人 p name WRITE语句 按照指定的格式把变量里面的数据输出到屏幕语法 WRITE语句的选项 根据选项的不同 WRITE语句可以输出到屏幕 输出到变量 以复选框的形式输出 以图标的格式输出 子程序 1 子程序类似于C PASCAL等语言的函数 过程子程序在事件块中被调用 子程序 2 语法 子程序 接口定义 行参 实参传递方式值调用地址调用 子程序调用 1 语法 PERFORM 子程序调用 2 结构作为子程序参数 内表作为子程序参数 函数模块 与子程序 form 相比 函数模块是在程序外部定义的 而且能够在全系统范围内被调用的子程序 而子程序 form 一般来说只在本程序内定义和调用 函数模块具有透明的接口 它的接口与代码分开定义 函数模块都隶属于某一个函数组函数模块由函数制作器 FunctionBuilder 创建函数模块可以被本系统的程序调用 而且可以被其它的R 3系统 R 2系统甚至是非R 3系统调用 RFC 函数模块的调用 函数模块是程序外部模块 不在程序内编码 函数组 每个函数模块都属于一个函数组每个函数组里面的函数模块都有相同的主题 实现的功能相互联系函数组实际上是一个类型为F的ABAP程序 它本身不能够被执行当一个函数模块被调用的时候 与它同一个函数组的函数都被调到内存区域里面 函数模块的组成 函数模块的调用语法 函数模块可以设置对异常的处理 以防出现运行时错误- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sapABAP 开发 实例 详解

链接地址:https://www.zhuangpeitu.com/p-8633997.html