sapABAP开发实例详解.ppt

上传人:sh****n 文档编号:8633997 上传时间:2020-03-30 格式:PPT 页数:42 大小:1.72MB
返回 下载 相关 举报
sapABAP开发实例详解.ppt_第1页
第1页 / 共42页
sapABAP开发实例详解.ppt_第2页
第2页 / 共42页
sapABAP开发实例详解.ppt_第3页
第3页 / 共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程序 它本身不能够被执行当一个函数模块被调用的时候 与它同一个函数组的函数都被调到内存区域里面 函数模块的组成 函数模块的调用语法 函数模块可以设置对异常的处理 以防出现运行时错误
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!