SAP报表开发
- 格式:doc
- 大小:130.00 KB
- 文档页数:12
供应商对账单报表开发说明
文档控制
⏹版本控制
⏹文档审核
程序类型:❑报表
❑功能性开发❑批处理程序
❑打印表单
❑系统增强
❑用户出口
√接口
❑程序
用到的技术:❑ALV
❑BAPI ❑BDC
❑RFC
❑ALE
❑其他
运行频率:即时每小时每天每周每月其它运行方式:前台手工后台自动
程序名:供应商对账单报表开发说明
TCode:
1概要说明
1.1与此功能开发相关的业务背景
应付会计在进行发票检验前,需要根据对账单报表对已收货的物料数量、价格与供应商进行对账1.2此功能开发的业务需求描述
(1)需要实时获取仓库收货的情况,并允许按照供应商、收货期间等搜索条件进行筛选;
(2)需要对同一订单、同一行项目的同一天收货情况进行合并显示(101、102、122、123移动类型合并;移动类型161、162进行合并)
(3)由于财务的结算周期一般为当月月底结算前一个月的货款,结算依据为上月的收货情况,为了防止当月发生大量退货导致上月货款结算存在多付的风险;因此需要对收货情况进行实时的校验。
2用户通过功能需求详细说明
2.1相关表及字段
2.2选择条件/用户界面
2.3处理逻辑详细描述
供应商对账单报表
开发说明.xlsx
2.4输出界面模板如下
2.5权限要求
说明:分配什么角色:分别按什么字段标准(包括标准或自定义权限对象),控制什么权限。
SAP报表开发指南目录1选择屏幕 (3)1.1屏幕输入命令 (3)1.2创建元素块 (12)1.3事件及其事件关键字 (15)1.4分页 (19)1.5通过窗口滚动窗口 (19)1.6按页滚动 (20)1.7列表中的颜色 (20)1.8交互式报表 (24)1.9次列表的页眉 (26)1.10列表中的消息 (26)1.11从程序中触发事件 (28)1.12从列表中读取行 (29)1.13在光标位置处读列表 (30)1.14传递列表属性 (30)1.15将光标设置到显示列表行的特定字段 (31)1.16将光标设置到输出窗口中列表的特定行 (31)2报表取数 (31)3数据整理 (32)4WRITE输出 (32)5报表编制的实例 (32)6扩展 (32)6.1屏幕控制 (32)6.2设置下拉框 (33)6.3自制Search Help (34)1 选择屏幕屏幕输入命令在ABAP/4中要自屏幕输入变量数据的内容,使用的命令是 PARAMETERS 及SELECTION-OPTIONSPARAMETER:输入一个变量或字段内容SELECTION-OPTIONS:使用条件筛选画面来输入数据1.1.1 PARAMETERS 语句基本格式可以按照用DATA语句声明字段的方式用PARAMETERS语句声明字段。
用PARAMETERS 语句声明的字段称为参数。
通常,输入字段的所有参数都将出现在选择屏幕上。
系统处理输入屏幕时,报表用户在这些输入字段中键入的值将被分配给相应的参数。
它为基本的输入命令,类似如BASIC的INPUT命令,但无法使用F格式(浮点数)。
1、要声明参数及其数据类型语法:PARAMETERS <p>[(<length>)] <type> [<decimals>].该语句创建参数<p>。
附加项<length>、<type>和 <decimals> 与 DATA 语句相同。
SAP收发存报表开发功能设计说明书SAP收发存报表程序功能详细设计说明书相关的事务代码:MB52 –库存综览显示MB51 –物料凭证清单1.2 自定义表清单及结构定义1.3 输入/输出数据格式定义2输入/输出画面格式设计要求2.1 报表选择屏幕以下是本程序的第一个画面:初始化画面“属性”字段注明: 多选, 单选, 单选钮/, 选框或其他等;2.2 客户化增强功能画面设计(以下是格式化画面设计要求)3程序处理逻辑说明1.生成选择输入画面,用户输入参数;检查权限;2.按用户选择画面参数,选择指定范围的数据,结合如下取数规则,生成报表:3.取数规则:安装项目定义掩码:X-XX NN NN制作项目定义掩码:X-X-XX NN NN4. 如果用户未输入存储位置,则表示是在工厂层次出具报表,取报表记录关键字为:工厂代码/物料编码/WBS元素/商务分类(物料组、物料类型依附于该三个键值),所有数量和金额按此键值汇总;同时对于“收入数量”“收入金额”“发出数量”“发出金额”字段,不统计移动类型311~316;5. 如果用户输入了存储位置,则取值表字段“工厂代码/存储位置/物料编码/WBS元素/商务分类”,相应的取数结果均按物料+工厂+存储位置+WBS元素+商务分类层次累计;对于“收入数量”“收入金额”“发出数量”“发出金额”字段,所统计的移动类型无限制;6. 最终输出方式:如果用户在画面上选择了“输出明细资料”(Y”,则首先按取数规则表的字段格式输出清单;否则不执行明细清单资料的输出;接下来,在同一清单上,再附加如下分类统计表:除了列出上表格式的按料号的明细外,还需要列出如下分类小计报表:附加清单一:按WBS元素分类汇总的收发存明细表(仅对WBS元素非空的记录进行小计并分类汇总输出);附加清单二:按商务分类汇总的收发存明细表(仅列出物料类型为“ZFS1/ZF2”的每一商务分类的小计);附加清单三:按商务分类+项目定义分类汇总的收发存明细表;附加清单四:按评估类分类汇总的收发存明细资料;请依次输出。
sap进销存报表开发逻辑SAP进销存报表开发逻辑SAP(Systems, Applications, and Products in Data Processing)是一家德国企业,提供企业资源计划(ERP)软件解决方案。
SAP 的进销存报表是其功能强大的模块之一,它可以帮助企业管理和控制其库存、销售和采购等业务流程。
本文将介绍SAP进销存报表的开发逻辑,以帮助读者更好地理解和应用该模块。
1. 数据采集与整理在SAP系统中,进销存报表的开发首先需要从各个模块中采集必要的数据。
这些数据包括库存数量、销售数量、采购数量、价格和日期等信息。
数据采集完成后,需要进行整理和清洗,确保数据的准确性和完整性。
2. 报表需求分析根据企业的具体需求,需进行进销存报表的需求分析。
这包括确定需要报告的指标、报表的维度(如产品、客户、供应商等)以及报表的时间范围等。
通过对需求的准确分析,可以确保开发出满足企业要求的报表。
3. 报表设计与开发在报表设计阶段,需要确定报表的布局和样式。
可以选择使用表格、图表等形式展示数据,以便于用户理解和分析。
同时,还需确定报表的过滤条件和排序规则,以满足用户对数据的个性化需求。
在SAP系统中,可以通过使用查询功能和报表设计器等工具来进行报表的开发。
通过查询功能,可以从SAP数据库中提取所需的数据。
报表设计器则可以帮助用户自定义报表的布局、样式和计算公式等。
在开发过程中,需要使用SAP提供的ABAP编程语言进行编码,以实现报表的逻辑和功能。
4. 数据计算与分析在报表开发过程中,可能需要进行一些数据的计算和分析操作。
例如,计算销售额、毛利润、库存周转率等指标。
通过对数据的计算和分析,可以帮助企业更好地了解和掌握其进销存情况,为决策提供有效的依据。
5. 报表发布与使用开发完成后,报表可以通过SAP系统进行发布和使用。
用户可以根据权限和需求,访问相应的报表,并进行数据的查询、筛选和导出等操作。
报表的发布和使用需要确保数据的安全性和可靠性,同时也需要保证报表的及时更新和准确性。
前提是查找相应的表:ST05跟踪(最地道),还有就是简单的查看技术信息SQUERY 开发报表步骤:SQ03:创建用户组分配给用户SQ02:选择表,字段,生成功能区,选择用户组SQ01:在用户组下创建查询,选择输出字段,选择字段,基本清单维护,生成程序TCD CODE: SQ03.修改查询范围:菜单:环境->查询区域,选择标准区域(客户特定)进入后输入用户组:点击创建,出现如下窗口,输入用户组描述,点击保存.出现如下画面后点击’分配用户和功能区:输入TCD SQ02,输入名称,在按基础表的表连接栏,填入一个透明表名,点击继续.出现如下画面,点击Insert table,插入其他相关透明表.可以更改表之间的关键字的链接.点击后退出现如下画面,删除字段组02 凭证部分:商品;03 商品评估.双击字段可看到字段名,用来核对是不是透明表中的相应字段.保存,退出,跳出如下窗口:点击’是’点击用户组分配选择用户组,点击保存退出,输入TCD SQ01, 输入查询名,点击创建.检查查询范围:标准区(集团特定)检查用户组:标题会显示如果不是当前用户组,点击“其他用户组”按钮切换用户组选择功能区,点击选择输入标题,点击下一屏幕选择字段组,点击下一页,然后再点击下一屏幕.选择字段,点击下一页,再点击下一屏幕.保存,退出点击基本列表把数据字段加到右边栏中.可以在左下脚修改栏的长度,也可在栏中拖动字段以调整顺序.保存,点击测试.出现查询界面出现最终查询出的数据,点击更改可以隐藏一些字段.以上完成了一个QUERY的创建,用户组内的用户使用SQ01即可访问该QUERY。
如果需要分配一个事务码以供用户使用,还需要进行以下步骤:后退到如下界面查询---其他功能---显示报表名.输入TCD: SE93输入事务代码(自建),点击创建.选择’参数和选择屏幕(报表事务)’,点击继续.点击保存点击保存输入传输请求号,点击继续保存,退出输入事务代码,测试一下,恭喜你,大功告成!。
SAP收发存报表开发功能设计说明书SAP收发存报表程序功能详细设计说明书相关的事务代码:MB52 –库存综览显示MB51 –物料凭证清单1.2 自定义表清单及结构定义1.3 输入/输出数据格式定义2输入/输出画面格式设计要求2.1 报表选择屏幕以下是本程序的第一个画面:初始化画面“属性”字段注明: 多选, 单选, 单选钮/, 选框或其他等;2.2 客户化增强功能画面设计(以下是格式化画面设计要求)3程序处理逻辑说明1.生成选择输入画面,用户输入参数;检查权限;2.按用户选择画面参数,选择指定范围的数据,结合如下取数规则,生成报表:3.取数规则:安装项目定义掩码:X-XX NN NN制作项目定义掩码:X-X-XX NN NN4. 如果用户未输入存储位置,则表示是在工厂层次出具报表,取报表记录关键字为:工厂代码/物料编码/WBS元素/商务分类(物料组、物料类型依附于该三个键值),所有数量和金额按此键值汇总;同时对于“收入数量”“收入金额”“发出数量”“发出金额”字段,不统计移动类型311~316;5. 如果用户输入了存储位置,则取值表字段“工厂代码/存储位置/物料编码/WBS元素/商务分类”,相应的取数结果均按物料+工厂+存储位置+WBS元素+商务分类层次累计;对于“收入数量”“收入金额”“发出数量”“发出金额”字段,所统计的移动类型无限制;6. 最终输出方式:如果用户在画面上选择了“输出明细资料”(Y”,则首先按取数规则表的字段格式输出清单;否则不执行明细清单资料的输出;接下来,在同一清单上,再附加如下分类统计表:除了列出上表格式的按料号的明细外,还需要列出如下分类小计报表:附加清单一:按WBS元素分类汇总的收发存明细表(仅对WBS元素非空的记录进行小计并分类汇总输出);附加清单二:按商务分类汇总的收发存明细表(仅列出物料类型为“ZFS1/ZF2”的每一商务分类的小计);附加清单三:按商务分类+项目定义分类汇总的收发存明细表;附加清单四:按评估类分类汇总的收发存明细资料;请依次输出。
SAP HR模块报表开发目录1. 概述 (3)2. HR开发介绍 (3)2.1 逻辑数据库介绍 (3)2.2 HR相关逻辑数据库 (4)2.2.1 PNP (4)2.2.2 PCH (5)2.3 逻辑数据库的选择屏幕 (6)2.3.1 PNP的选择屏幕 (6)2.3.2 PCH的选择屏幕 (10)3. HR报表开发 (12)3.1 HR相关数据库表 (12)3.2 常用函数和宏 (12)3.2.1 宏RP_PROVIDE_FROM_FRST和RP_PROVIDE_FROM_LAST (13)3.2.2 函数RH_STRUC_GET (13)3.2.3 函数HR_READ_FOREIGN_OBJECT_TEXT (14)3.2.4 函数PYXX_READ_PAYROLL_RESULT (15)4. 其他 (16)4.1 PNP和PCH里的变量 (16)4.2 时间交叉 (17)4.3 权限检查 (18)1. 概述本文介绍了SAP HR模块报表开发的相关经验,结合本人参与项目所做的开发工作,汇总整理了一些在HR开发中需要注意的地方,并介绍了有用的小技巧。
相信本文对初级从事HR开发工作的相关人员有一定帮助。
因为笔者相关经验也在积累过程中,也许本文中会出现一些错误,还望见谅指正。
2. HR开发介绍HR 报表开发主要涉及到逻辑数据库的应用,相关的开发工作也主要围绕着逻辑数据库进行。
2.1 逻辑数据库介绍逻辑数据库则提供另一种选择数据的方式,可以代替SQL语句在数据库中提取数据,供程序操作。
因而,可以认为逻辑数据库是一种报表设计程序中的辅助工具,而不能将其误解为一种可进行数据存储的数据库。
SAP中提供多种类型的逻辑数据库,开发人员也可自行定义数据源。
Transaction Code:SE36或SLDB2.2 HR相关逻辑数据库HR报表开发主要是对逻辑数据库PNP( PNPCE)和PCH的应用。
其中PNPCE是PNP的加强。
SAP收发存报表程序功能详细设计说明书相关的事务代码:MB52 –库存综览显示MB51 –物料凭证清单1.2 自定义表清单及结构定义1.3 输入/输出数据格式定义2输入/输出画面格式设计要求2.1 报表选择屏幕以下是本程序的第一个画面:初始化画面“属性”字段注明: 多选, 单选, 单选钮/, 选框或其他等;2.2 客户化增强功能画面设计(以下是格式化画面设计要求)3程序处理逻辑说明1.生成选择输入画面,用户输入参数;检查权限;2.按用户选择画面参数,选择指定范围的数据,结合如下取数规则,生成报表:3.取数规则:安装项目定义掩码:X-XX NN NN4. 如果用户未输入存储位置,则表示是在工厂层次出具报表,取报表记录关键字为:工厂代码/物料编码/WBS元素/商务分类(物料组、物料类型依附于该三个键值),所有数量和金额按此键值汇总;同时对于“收入数量”“收入金额”“发出数量”“发出金额”字段,不统计移动类型311~316;5. 如果用户输入了存储位置,则取值表字段“工厂代码/存储位置/物料编码/WBS元素/商务分类”,相应的取数结果均按物料+工厂+存储位置+WBS元素+商务分类层次累计;对于“收入数量”“收入金额”“发出数量”“发出金额”字段,所统计的移动类型无限制;6. 最终输出方式:如果用户在画面上选择了“输出明细资料”(Y”,则首先按取数规则表的字段格式输出清单;否则不执行明细清单资料的输出;接下来,在同一清单上,再附加如下分类统计表:除了列出上表格式的按料号的明细外,还需要列出如下分类小计报表:附加清单一:按WBS元素分类汇总的收发存明细表(仅对WBS元素非空的记录进行小计并分类汇总输出);附加清单二:按商务分类汇总的收发存明细表(仅列出物料类型为“ZFS1/ZF2”的每一商务分类的小计);附加清单三:按商务分类+项目定义分类汇总的收发存明细表;附加清单四:按评估类分类汇总的收发存明细资料;请依次输出。
深圳市XXX实业有限公司管理文件文号:拟订部门:ERP项目组审核:批准:时间:TO: □总经理□副总经理□总工程师□财务总监□事业一部□事业二部□营销本部□管理本部□电子公司□中央研究部□香港分公司□欧洲分公司□美国分公司□上海办□北京办□日本办□韩国办□板报SAP报表开发申请流程SAP系统上线之后,随着最终用户对SAP系统操作流程了解的不断深入,各个使用部门可能会根据公司管理的实际需要,提出大量的报表需求。
这些报表需求有些可能在系统中已经存在,有些可能涉及公司的关键数据,需要经过严格的授权,有些可能从技术上难以实现,不得不重新进行比较合适的格式设计……。
为了保证这些报表的开发能够高效地、有条不紊地进行,使先进的SAP系统能够尽快地XXX化,特制定此SAP报表开发申请流程,以规范SAP报表开发的管理。
SAP报表开发的申请流程,实际上是一个小的软件开发的过程。
本流程描述力求从软件工程的角度,按照以下步骤来完成SAP的报表开发:1.最终用户或相关人员提出申请。
最终用户是系统的使用者,是从系统获得信息并把系统信息运用到实际企业管理过程中的直接当事人,所以最终用户的需求最能直接反映实际企业管理的需要。
由最终用户提出申请从根本上保证了报表开发的必要性。
因此,最终用户应该根据实际管理的需要,设计出最合适的报表格式以及报表用途说明,作为关键用户审核和报表开发人员进行报表开发的第一手资料,相关部门经理或副总根据实际情况进行审批,确认其有效性。
2.关键用户或顾问审核其必要性。
关键用户或顾问因为经过长时间的专业培训,对系统的了解比较深入,是SAP 系统和实际管理流程的重要沟通渠道。
通过对最终用户提供的报表格式及报表用途的说明,关键用户基本可以确定在现有的系统中是否有满足条件的报表,如果有,则直接对最终用户进行培训,这样可以避免大量报表的重复开发。
如果没有,则可以尝试如何从系统中获得报表所需要的数据,从业务的角度初步确定报表开发的可行性,最好能够给出从系统中获得数据的步骤或测试数据案例,以便比较深入地和ABAP开发人员进行讨论和沟通。
XXXX公司
企业级信息系统实施项目
功能设计说明书
(生成新的版本后,在第一部分的“创建日期”里记下新版本的生成日期,第二部分的维护记录要清空,为新版本内的更新内
3.1使用频度
随时每日每月每季度每半年每年
3.2 执行模式
前台后台
3.3 输出方式
清单在画面上显示下载至Excel输出表单预览
3.4 输出样张
(可在此插入Excel或Word样板文件)
3.5 表单输出纸张的尺寸
3.6 表单打印方向
纵向横向
3.7 前台业务操作说明或测试方法
(可用前台画面截图或流程图辅助文字说明,以便开发员理解需求和测试程序。
)
4.1 权限要求
(说明权限对象和权限字段)按公司代码进行控制
4.2 选项画面
4.4 自建表文本定义
无
4.5 报表输出样式
此处的签名,表示企业的负责用户确认本文档内容中的报表需求及功能设计。
姓名:……………………………………
职务:……………………………………
日期:……../……../……..
业务顾问签名
姓名:……………………………………
日期:……../……../……..。
SAP HR模块报表开发目录1. 概述 (3)2. HR开发介绍 (3)2.1 逻辑数据库介绍 (3)2.2 HR相关逻辑数据库 (4)2.2.1 PNP (4)2.2.2 PCH (5)2.3 逻辑数据库的选择屏幕 (6)2.3.1 PNP的选择屏幕 (6)2.3.2 PCH的选择屏幕 (10)3. HR报表开发 (12)3.1 HR相关数据库表 (12)3.2 常用函数和宏 (12)3.2.1 宏RP_PROVIDE_FROM_FRST和RP_PROVIDE_FROM_LAST (13)3.2.2 函数RH_STRUC_GET (13)3.2.3 函数HR_READ_FOREIGN_OBJECT_TEXT (14)3.2.4 函数PYXX_READ_PAYROLL_RESULT (15)4. 其他 (16)4.1 PNP和PCH里的变量 (16)4.2 时间交叉 (17)4.3 权限检查 (18)1. 概述本文介绍了SAP HR模块报表开发的相关经验,结合本人参与项目所做的开发工作,汇总整理了一些在HR开发中需要注意的地方,并介绍了有用的小技巧。
相信本文对初级从事HR开发工作的相关人员有一定帮助。
因为笔者相关经验也在积累过程中,也许本文中会出现一些错误,还望见谅指正。
2. HR开发介绍HR 报表开发主要涉及到逻辑数据库的应用,相关的开发工作也主要围绕着逻辑数据库进行。
2.1 逻辑数据库介绍逻辑数据库则提供另一种选择数据的方式,可以代替SQL语句在数据库中提取数据,供程序操作。
因而,可以认为逻辑数据库是一种报表设计程序中的辅助工具,而不能将其误解为一种可进行数据存储的数据库。
SAP中提供多种类型的逻辑数据库,开发人员也可自行定义数据源。
Transaction Code:SE36或SLDB2.2 HR相关逻辑数据库HR报表开发主要是对逻辑数据库PNP( PNPCE)和PCH的应用。
其中PNPCE是PNP的加强。
XXXX公司
企业级信息系统实施项目
功能设计说明书
(生成新的版本后,在第一部分的“创建日期”里记下新版本的生成日期,第二部分的维护记录要清空,为新版本内的更新内
3.1使用频度
随时每日每月每季度每半年每年
3.2 执行模式
前台后台
3.3 输出方式
清单在画面上显示下载至Excel输出表单预览
3.4 输出样张
(可在此插入Excel或Word样板文件)
3.5 表单输出纸张的尺寸
3.6 表单打印方向
纵向横向
3.7 前台业务操作说明或测试方法
(可用前台画面截图或流程图辅助文字说明,以便开发员理解需求和测试程序。
)
4.1 权限要求
(说明权限对象和权限字段)按公司代码进行控制
4.2 选项画面
4.4 自建表文本定义
无
4.5 报表输出样式
此处的签名,表示企业的负责用户确认本文档内容中的报表需求及功能设计。
姓名:……………………………………
职务:……………………………………
日期:……../……../……..
业务顾问签名
姓名:……………………………………
日期:……../……../……..。
配料单报表设计规格签名:配料单一.初始屏幕:●输入画面●字段解释:序号栏位描述字段名称表名参考字段参考表名字段类型字段长度必输栏位?是否手动输入1 生产订单号CAUFVD AUFNR CHAR 12 Y Y2 领料套数ZQUAN1 GAMNG CAUFVD QUAN 13 Y Y3 硅片批次类CLASS RMCLF CHAR 18 N4 电池特性ATNAM RCTAV CHAR 30 Y5 厚度ATNAM RCTAV CHAR 30 Y6 外观尺寸ATNAM RCTAV CHAR 30 Y7 外观特性ATNAM RCTAV CHAR 30 Y8 表面状况ATNAM RCTAV CHAR 30 Y 9输入画面开发说明:1) 生产订单号: 由用户手动输入。
一次只能输入一个生产订单号.2) 领料套数:由用户手动输入。
3) 硅片批次类:由程序自动给出。
硅片批次类只有一个即:SW0034) 硅片特性:根据硅片批次类,将其批次特性列出在屏幕上。
然后由用户将每个批次特性输入。
注:在该输入屏幕中,“生产订单号”,“领料套数”为必输字段。
5) 说明:由用户输入对该配料单的一些文字说明,字数为两个整行的字数二.配料单格式 :●字段解释:1) 3生产订单号、5领料套数:来自于初始画面的输入数据。
2) 1产品代码、2产品描述、4订单计划数量: 根据生产订单号,则程序自动去该订单里找到此三个字段值。
3) 6日期:即打印该领料单的日期。
由程序自动获取。
4) (7-12)硅片特性及特性值:均取自初始画面输入的数据。
格式如上图所示。
5) 13序号:即流水号,例如:第一个物料为1,第二个物料为2……6) 14物料代码、15物料描述:应从该生产订单中找到其所需用的物料号。
注意:采用Backflush功能的物料不列出来。
标示:即生产订单中backflush物料那一行的“反冲”标志被打上了勾。
表名:RESB字段:RGEKZ7) 16需求数量: 计算逻辑如下:假设:P=订单计划数量,T=本次领料套数,M=某物料在生产订单里的总需求数量Q=本次配料单的需求数量,则Q的计算公式如下:Q = M * (T/P) (要求:计算出的Q如果有小数应四舍五入到整数。
SAP ALV报表开发指南目录1用途 (3)2前提 (3)3GRID风格报表相关函数 (3)3.1REUSE_ALV_GRID_DISPLAY函数 (4)3.2REUSE_ALV_COMMENTARY_WRITE函数 (9)3.3REUSE_ALV_EVENTS_GET函数 (10)3.4REUSE_ALV_FIELDCATALOG_MERGE函数 (10)3.5开发实例 (11)4LIST风格报表相关函数 (11)4.1REUSE_ALV_LIST_DISPLAY函数 (12)4.2REUSE_ALV_HIERSEQ_LIST_DISPLAY函数 (12)4.3布局管理函数 (12)4.4开发实例 (12)ALV报表开发1 用途ALV Report是SAP中一种常见的报表展现形式,它可以标准化、简单化R/3系统中的表单,可以为用户提供一个统一的表单格式以及用户接口。
ALV既能显示简单表单(SIMPLE LIST),又可以显示有序表单(SEQUENTIAL LIST)。
2 前提编写一个ALV程序包括以下基本流程。
第一步:定义将要用到的表,即TABLES定义部分,然后定义TYPE-POOLS:SLIS;第二步:定义“第一步”中提到的这些数据类型或者内表的实体对象;第三部:定义需要用的变量以及常数;第四部:定义选择屏幕;第五步:定义INITIALIZATION部分,及初始化值;本部分往往指定w_repid的值,w_repid = sy-repid,代表调用程序为当前程序第六步:START-OF-SELECTION部分,主要包括如下几个组成部分1. 获取所需数据;2. 设置ALV表单标题区域的值;3. 设置显示列表的抬头名称(第一行);4. 设置输出格式;5. 显示上述封装好的数据。
ALV报表需要展现的数据在抓取封装完成以后,需要调用FUNCTION输出数据,有两个FUNCTION MODULE分别是REUSE_ALV_GRID_DISPLAY、REUSE_ALV_LIST_DISPLAY,上述两个函数分别以GRID风格和LIST风格将数据展现给前台用户。
SAP收发存报表程序功能详细设计说明书相关的事务代码:MB52 –库存综览显示MB51 –物料凭证清单1.2自定义表清单及结构定义1.3输入/输出数据格式定义2输入/输出画面格式设计要求2.1报表选择屏幕以下是本程序的第一个画面:初始化画面“属性”字段注明: 多选, 单选, 单选钮/, 选框或其他等;2.2客户化增强功能画面设计(以下是格式化画面设计要求)3程序处理逻辑说明1.生成选择输入画面,用户输入参数;检查权限;2.按用户选择画面参数,选择指定围的数据,结合如下取数规则,生成报表:3.取数规则:安装项目定义掩码:X-XX NN NN4. 如果用户未输入存储位置,则表示是在工厂层次出具报表,取报表记录关键字为:工厂代码/物料编码/WBS元素/商务分类(物料组、物料类型依附于该三个键值),所有数量和金额按此键值汇总;同时对于“收入数量”“收入金额”“发出数量”“发出金额”字段,不统计移动类型 311~316;5. 如果用户输入了存储位置,则取值表字段“工厂代码/存储位置/物料编码/WBS元素/商务分类”,相应的取数结果均按物料+工厂+存储位置+WBS元素+商务分类层次累计;对于“收入数量”“收入金额”“发出数量”“发出金额”字段,所统计的移动类型无限制;6. 最终输出方式:如果用户在画面上选择了“输出明细资料”(Y”,则首先按取数规则表的字段格式输出清单;否则不执行明细清单资料的输出;接下来,在同一清单上,再附加如下分类统计表:除了列出上表格式的按料号的明细外,还需要列出如下分类小计报表:附加清单一:按WBS元素分类汇总的收发存明细表(仅对WBS元素非空的记录进行小计并分类汇总输出);附加清单二:按商务分类汇总的收发存明细表(仅列出物料类型为“ZFS1/ZF2”的每一商务分类的小计);附加清单三:按商务分类+项目定义分类汇总的收发存明细表;附加清单四:按评估类分类汇总的收发存明细资料;请依次输出。
SAP HR模块报表开发目录1. 概述 (3)2. HR开发介绍 (4)2.1 逻辑数据库介绍 (4)2.2 HR相关逻辑数据库 (4)2.2.1 PNP (5)2.2.2 PCH (6)2.3 逻辑数据库的选择屏幕 (7)2.3.1 PNP的选择屏幕 (7)2.3.2 PCH的选择屏幕 (11)3. HR报表开发 (13)3.1 HR相关数据库表 (13)3.2 常用函数和宏 (14)3.2.1 宏RP_PROVIDE_FROM_FRST和RP_PROVIDE_FROM_LAST (14)3.2.2 函数RH_STRUC_GET (15)3.2.3 函数HR_READ_FOREIGN_OBJECT_TEXT (16)3.2.4 函数PYXX_READ_PAYROLL_RESULT (17)4. 其他 (19)4.1 PNP和PCH里的变量 (19)4.2 时间交叉 (19)4.3 权限检查 (20)1. 概述本文介绍了SAP HR模块报表开发的相关经验,结合本人参与项目所做的开发工作,汇总整理了一些在HR开发中需要注意的地方,并介绍了有用的小技巧。
相信本文对初级从事HR开发工作的相关人员有一定帮助。
因为笔者相关经验也在积累过程中,也许本文中会出现一些错误,还望见谅指正。
2. HR开发介绍HR 报表开发主要涉及到逻辑数据库的应用,相关的开发工作也主要围绕着逻辑数据库进行。
2.1 逻辑数据库介绍逻辑数据库则提供另一种选择数据的方式,可以代替SQL语句在数据库中提取数据,供程序操作。
因而,可以认为逻辑数据库是一种报表设计程序中的辅助工具,而不能将其误解为一种可进行数据存储的数据库。
SAP中提供多种类型的逻辑数据库,开发人员也可自行定义数据源。
Transaction Code:SE36或SLDB2.2 HR相关逻辑数据库HR报表开发主要是对逻辑数据库PNP( PNPCE)和PCH的应用。
其中PNPCE是PNP的加强。
1、ANLA(资产主数据)
2、ANLB (折旧期限表资产号,座落地点)
AFABG-折旧开始日期
AFASL-折旧码
NDJAR-折旧年限
ABGDAT B-报废日期
3、ANLH(主资产号)
ANLHTXT-座落地点
4、ANLP(资产期间折旧)
GJAHR会计年度
PERAF会计期间
ANFAZ记帐的正常折旧
SAFAZ待过帐的特殊折旧
NAFAG记帐在当前年的正常折旧
NAFAP本年计划计提一般折旧
SAFAP 本年计划计划计划外折旧
5、ANLC(资产原值累计折旧,值为最新值,报废后原值和累计折旧还会存在,通过KANSW+ANSWL和KNAFA+NAFAV计算可以得出最新值的原值和累计折旧,如果考虑查询历史数据,可以通过ANEP,ANEK,ANEA三表推算回历史数据)
KANSW-原值
KNAFA-累计折旧
ANSWL资产值业务
NAFAV 比例累计折旧
6、ANEP(资产行项目)(资产报废,资产价值增加或减少,计划外折旧)
7、ANEK凭证抬头资产过帐(记账日期,凭证日期,制证人)
BZDAT-资产价值日
ANBTR-资产价值
BWASL-事务类型
V_ANEPK 是ANEP与ANEK的视图
8、ANLZ(时间价值表)
BDATU-有效日期结束
ADATU-有效期起始日期
KOSTL-成本中心
STORT-资产地点
9、ANEA(比例值的资产行项目)累计折旧,通过资产主号,次级号、会计年度、顺序号可以取ANEK的价值日,记账日。
SAP报表开发概述报表开发是指无屏幕的纯报表开发。
一、报表事件对于纯报表程序,SAP 预定义了一系列的报表事件,包括:INITIALZATION 初始化事件。
常用来填充选择屏幕的默认值。
AT SELECTION-SCREEN OUTPUT 选择屏幕的PBO 事件。
显示选择屏幕之前触发。
AT SELECTION-SCREEN 选择屏幕的PAI 事件。
用户在选择屏幕中执行某些功能后触发。
通常用来接收用户输入,并给用户出错提示。
START-OF-SELECTION 选择开始事件。
选择屏幕处理结束后触发(即点击“Execute”按钮之后)。
END-OF-SELECTION 选择结束时间。
通常在该事件中输出报表。
AT-LINE-SELECTION 交互式报表中,用户选择某行时触发。
AT-USER-COMMAND 交互式报表中,用户选择某个功能时触发。
TOP-OF-PAGE 页眉控制,每个新页面开始时触发。
通常输出页眉、报表标题行。
END-OF-PAGE 页脚控制,在当前页结束前触发。
二、事件处理顺序下面是事件处理次序:一个事件的ABAP 代码,开始于事件关键字,结束于下一个事件关键字。
三、报表的通常格式通常,一个报表程序包含如下几部分:1、程序说明。
包括:程序名称、作者、日期等信息。
2、关键字Report。
3、数据定义。
内表、参数都在这里定义。
4、 Include 部分。
指定包含文件。
5、定义选择屏幕。
利用SELECT-OPTIONS 和PARAMETERS 声明多个选择参数,系统会自动产生一个屏幕号为1000 的选择屏幕。
6、 INITIALIZATION 事件。
完成对选择屏幕参数的默认值填充。
7、 AT SELECTION-SCREEN 事件。
对用户的输入参数作校验。
8、 START-OF-SELECTION 事件。
在这里完成数据处理。
9、 END-OF-SELECTION 事件。
在这里定义报表的输出。
10、如果不是采用ALV 的方式输出报表,而是采用WRITE 语句输出,则还有TOP-OF-PAGE 和END-OF-PAGE 事件。
四、关于选择屏幕定义选择屏幕的常用关键字:1、PARAMETERS….<AS CHECKBOX / RADIOBUTTON GROUP rg1>。
用来定义单值参数。
2、 SELECT-OPTIONS。
用来定义单值、多值、范围参数。
3、 SELECTION-SCREEN。
用来格式化选择屏幕。
定义选择屏幕时,我们会用到SELECT-OPTIONS 这个关键字,该参数能够接受单值、多值、范围,实际上,该参数是一个内表,其结构如下:DATA: Begin of seltab OCCURS 0,SIGN(1), OPTION(2), LOW LIKE f, HIGH LIKE f,END OF seltab.Seltab-SIGN:可选值为I 和E。
I 表示包含(Include),E 表示排除(Exclude)。
Seltab-OPTION:可选值为EQ、NE、GT、LE、LT、BT、NB。
EQ 表示等于,NE 表示不等于,GT 表示大于,LE 表示小于或等于,LT 表示小于,BT 表示在..之间,NB 表示不在…之间。
SELECT-OPTIONS 定义的选择参数能够直接用在OPEN SQL 语句中,例如:Where f IN seltab。
大家想想,一条这样的WHERE 语句,如果用T-SQL 需要多少个AND 和OR?这可是个好东西呀。
为了利用OPEN-SQL 的这个特性,有时候,我们会自己定义这样的内表,自己填充数据,然后在OPEN-SQL 语句中使用,即使我们不需要定义选择屏幕。
我们常用的屏幕格式化语句有:1、在选择屏幕上产生空行:SELECTION-SCREEN SKIP.2、定义屏幕块。
SELECTION-SCREEN BEGIN OF BLOCK blk0 WITH FRAME TITLE text-010.SELECTION-SCREEN END OF BLOCK blk0.如果大家对这个屏幕格式还是不满意,那么,请利用屏幕制作器,尽情地修改屏幕1000 吧。
五、选择屏幕上的文本定义完选择屏幕后,测试运行程序。
此时,我们看到的只是各个参数的名称,通常我们要用文本来替换裸露显示的参数名。
点击菜单“转到->文本元素->选择文本”,屏幕如下:在Text 栏中输入我们希望显示的选择文本。
如果参数定义来源于数据字典元素或数据元素,选中“Dictionary ref.”,则Text 栏自动显示数据字典中定义的文本。
下面是“Text symbols”屏幕,它在程序中通过text-010 调用该文本符号(例如:Write text-010)。
如果开发多语言程序,这些text symbols 就必不可少了。
报表实例财务部在实际业务处理时,有时候需要将会计凭证导出到Excel,而SAP 提供的行项目显示在格式方面不能满足要求,在这一章中,我会将这一简单需求作为例子说明报表的写法。
第一步:运用SE38 或SE80 创建一个报表,报表名称Z_FI_16(其实以Y 或Z 开头的名称都可以啦)。
第二步:写代码,本程序代码如下:=============================================================REPORT z_fi_16 .*&---------------------------------------------------------------------** 声明全局变量*&---------------------------------------------------------------------*DATA: BEGIN OF itab OCCURS 0,nd LIKE bkpf-gjahr, qj LIKE bkpf-monat, pzbh LIKE bkpf-belnr,pzlx LIKE bkpf-blart, jzrq LIKE bkpf-budat, cz LIKE bkpf-xblnr,hb LIKE bkpf-waers, hl LIKE bkpf-kursf, ttwb LIKE bkpf-bktxt,yhm LIKE bkpf-usnam, hxm LIKE bseg-buzei, jzdm LIKE bseg-bschl,zhlx LIKE bseg-koart, tbzz LIKE bseg-umskz, jfdf LIKE bseg-shkzg,je LIKE bseg-wrbtr, bwbje LIKE bseg-dmbtr, zzkm LIKE bseg-hkont,kmmc(50) TYPE c, kh LIKE bseg-kunnr, khmc(40) TYPE c,gys LIKE bseg-lifnr, gysmc(40) TYPE c, cbzx LIKE bseg-kostl,cbzxmc(20) TYPE c, xmwb LIKE bseg-sgtxt,END OF itab.DATA: BEGIN OF ipzbh OCCURS 0,sign(1) TYPE c,option(2) TYPE c,low(10) TYPE c,high(10) TYPE c,END OF ipzbh.DATA: i_count TYPE i,c_tmp(50) TYPE c,i_tmp TYPE i.TABLES: bkpf, bseg.INCLUDE zincform.*&---------------------------------------------------------------------* * 选择屏幕*&---------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK blk0 WITH FRAME TITLE text-010. SELECTION-SCREEN SKIP.SELECT-OPTIONS p_year FOR bkpf-gjahr.SELECT-OPTIONS p_period FOR bkpf-monat.SELECT-OPTIONS p_pzbh FOR bkpf-belnr.SELECT-OPTIONS p_pzlx FOR bkpf-blart.SELECT-OPTIONS p_jzrq FOR bkpf-budat.SELECT-OPTIONS p_hb FOR bkpf-waers.SELECT-OPTIONS p_yhm FOR bkpf-usnam.SELECTION-SCREEN SKIP.SELECTION-SCREEN END OF BLOCK blk0.SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-020. SELECTION-SCREEN SKIP.SELECT-OPTIONS p_jzdm FOR bseg-bschl.SELECT-OPTIONS p_zhlx FOR bseg-koart.SELECT-OPTIONS p_zzkm FOR bseg-hkont.SELECT-OPTIONS p_kh FOR bseg-kunnr.SELECT-OPTIONS p_gys FOR bseg-lifnr.SELECTION-SCREEN SKIP.SELECTION-SCREEN END OF BLOCK blk1.*&---------------------------------------------------------------------** 初始化选择屏上的变量*&---------------------------------------------------------------------* INITIALIZATION.*&---------------------------------------------------------------------** 初始化全局变量,检查用户的输入*&---------------------------------------------------------------------*AT SELECTION-SCREEN.REFRESH ipzbh.SELECT belnr AS lowINTO CORRESPONDING FIELDS OF TABLE ipzbhFROM bkpfWHERE gjahr IN p_year AND monat IN p_periodAND belnr IN p_pzbh AND blart IN p_pzlxAND budat IN p_jzrq AND waers IN p_hb AND usnam IN p_yhm.IF sy-dbcnt = 0.MESSAGE e846(so) WITH '没有符合条件的会计凭证!'.ENDIF.IF sy-dbcnt > 2000.MESSAGE e846(so) WITH '超过2000条会计凭证分录,请缩小查寻范围'.ENDIF.LOOP AT ipzbh.ipzbh-sign = 'I'.ipzbh-option = 'EQ'.MODIFY ipzbh.ENDLOOP.*&---------------------------------------------------------------------** 主要数据处理逻辑*&---------------------------------------------------------------------* START-OF-SELECTION.SELECT gjahr AS nd belnr AS pzbh buzei AS hxm bschl AS jzdmkoart AS zhlx umskz AS tbzz shkzg AS jfdf wrbtr AS jedmbtr AS bwbje hkont AS zzkm kunnr AS kh lifnr AS gyskostl AS cbzx sgtxt AS xmwbINTO CORRESPONDING FIELDS OF TABLE itabFROM bsegWHERE belnr IN ipzbh AND gjahr IN p_year AND bschl IN p_jzdmAND koart IN p_zhlx AND hkont IN p_zzkm AND kunnr IN p_khAND lifnr IN p_gys.LOOP AT itab.SELECT SINGLE monat blart budat xblnr waers kursf bktxt usnam INTO (itab-qj, itab-pzlx, itab-jzrq, itab-cz, itab-hb, itab-hl, itab-ttwb, itab-yhm)FROM bkpfWHERE gjahr = itab-nd AND belnr = itab-pzbh.* 下面几个Perform分别用来获得帐户描述、客户描述、供应商描述、成本中心描述PERFORM get_acctname USING itab-zzkm CHANGING itab-kmmc.PERFORM get_custname USING itab-kh CHANGING itab-khmc.PERFORM get_supplyname USING itab-gys CHANGING itab-gysmc.PERFORM get_ccname USING itab-cbzx CHANGING itab-cbzxmc.MODIFY itab.ENDLOOP.PERFORM display_data.*&---------------------------------------------------------------------* * 行选择时的处理*&---------------------------------------------------------------------* AT LINE-SELECTION.*&---------------------------------------------------------------------* * 用自定义命令按钮时的处理*&---------------------------------------------------------------------* AT USER-COMMAND.*&---------------------------------------------------------------------* * 页眉*&---------------------------------------------------------------------* TOP-OF-PAGE.LOAD-OF-PROGRAM*&---------------------------------------------------------------------* * 页脚*&---------------------------------------------------------------------* END-OF-PAGE.*&---------------------------------------------------------------------* *& 显示数据*&---------------------------------------------------------------------* FORM display_data.TYPE-POOLS slis.DATA: ws_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,ws_fieldgroups_tab TYPE slis_t_sp_group_alv,ws_layout TYPE slis_layout_alv,ws_sortfields_tab TYPE slis_t_sortinfo_alv WITH HEADER LINE,ws_events TYPE slis_t_event.DATA: nn TYPE i VALUE 0.DEFINE hout.nn = nn + 1.ws_fieldcat-tabname = 'itab'.ws_fieldcat-fieldname = '&1'.ws_fieldcat-seltext_m = &2.ws_fieldcat-col_pos = nn.ws_fieldcat-outputlen = &3.ws_fieldcat-datatype = '&4'.ws_fieldcat-do_sum = '&5'.ws_fieldcat-lzero = 'X'.ws_fieldcat-no_zero = 'X'.append ws_fieldcat.clear ws_fieldcat.END-OF-DEFINITION.CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'EXPORTINGpercentage = 100text = '正在进行数据处理,请稍等...'.hout nd '年度' 4 numc ''. hout qj '期间' 2 numc ''.hout jzrq '记帐日期' 10 dats ''. hout xmwb '项目文本' 20 char ''.hout kh '客户' 10 char ''. hout khmc '客户名称' 40 char ''.hout gys '供应商' 10 char ''. hout gysmc '供应商名称' 40 char ''.hout cbzx '成本中心' 10 char ''. hout cbzxmc '成本中心名称' 20 char ''. hout pzlx '凭证类型' 2 char ''. hout pzbh '凭证编号' 10 char ''.hout hxm '行项目' 6 numc ''. hout zzkm '总账科目' 10 char ''.hout kmmc '科目名称' 50 char ''. hout hb '货币' 5 char ''.hout hl '汇率' 8 numc ''. hout jfdf '借方/贷方' 5 char ''.hout je '金额' 11 curr ''. hout bwbje '本位币金额' 11 curr ''.hout cz '参照' 10 char ''. hout yhm '用户名' 10 char ''.hout jzdm '记帐代码' 5 char ''. hout zhlx '帐户类型' 5 char ''.hout tbzz '特别总账标识' 5 char ''. hout ttwb '抬头文本' 20 char ''.ws_layout-zebra = 'X'.ws_layout-get_selinfos = 'X'.ws_layout-colwidth_optimize = 'X'.ws_layout-detail_popup = 'X'.ws_layout-no_keyfix = 'X'.ws_layout-no_totalline = 'X'.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGis_layout = ws_layoutit_fieldcat = ws_fieldcat[]it_special_groups = ws_fieldgroups_tab[]it_sort = ws_sortfields_tab[]it_events = ws_events[]i_grid_title = ''TABLESt_outtab = itabEXCEPTIONSprogram_error = 1OTHERS = 2.ENDFORM. "display_data=============================================================第三步:定义选择屏幕文本。