ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:332.12KB ,
资源ID:3539378      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3539378.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Oracle EBS Html报表开发总结.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Oracle EBS Html报表开发总结.docx

1、Oracle EBS Html报表开发总结Oracle EBS Html报表开发总结一 需求分析1 确认需求 1.1 确定参数类型、个数,可否为空,是否必输。 1.2 提炼、分析和自习审查已经收集到的需求,以确保所有的风险承担者都明确其含义并找到其中的错误和其他不足的地方(在必要的情况下向顾问提出改进建议); 1.3 确认报表样式、title等;2 确定字段确认报表中的表项取值及应满足的逻辑条件,拿到正确的字段;3 涉及计算的字段取值报表中需要计算的表项具体计算公式;4 数据获取找字段方法总结: 4.1 从EBS中的历史记录来找到该字段是来自哪个视图,再从帮助下的诊断来找到字段的名称;4.2

2、利用弹性域来找字段,首先找到是否是描述性弹性域,再找到弹性域的名称,从弹性域中找到字段;Step1.找到该描述性弹性域的名称Step2.切换职责,在【系统管理员】中查找该描述性弹性域点击 【段】 按钮即可查看该弹性域内EBS字段对应的基表字段,如下:4.3 从弹性域中的块下找到system,字段是last query 下来找整个form下的字段;路径:帮助诊断检查块:SYSTEM字段:LAST_QUERY值:查询当前FORM中所有字段用到的SQL语句,包括字段名,基表或视图。 4.4 自己添加一条数据来进行先后对比确定EBS中的项目对应的基表字段;二 报表设计1 表头设计1.1报表行动态在报表

3、的输出中,报表的表头数据是作为报表的参数输出例如下表该表中的测试序列,开发序列等都是作为报表的参数输出的,只能选一个或全选,不选则全出,每个序列下的职务信息都是根据序列来查出来显示在报表中,在此如何控制报表的样式。首先测试序列作为一个游标循环输出,在内层循环根据序列作为一个游标输出,在控制表样时根据序列查出该序列的colspan:for xulie in (根据参数取序列) loop 在此处算该序列的colspan即该序列下有多少职务,在输出序列时传到其colspan中 For zhiwu in (序列游标作为条件查询该序列的职务信息)loop 输出职务的信息,在输出时注意报表的格式,注意输出

4、部分是列还是行的循环输出。 End loop;End loop;1.2报表列动态在报表的输出过程中,表行是作为参数输出的,具体以下表为例月份,一级组织和二级组织都是作为参数的一部分,在此处详细介绍在输出报表时关于如何控制表样算行的三种方法:1) 嵌套Table的方法在此处主要介绍表头下面的表格输出 月份 一级组织 二级组织 . 嵌套表的优点:嵌套table的方法在使用时不用去考虑一级组织和二级组织的行数,只需要按照HTML的格式在输出部分循环输出就可以。嵌套表的缺点:嵌套table的方法的缺点很明显,数据可以按照你想实现的实现,但是表的各种属性要严格控制,否则就出现上下列不对齐,而且嵌套tab

5、le的方法在循环输出的时候要严格控制它的开始输出的HTML标记和在循环结束时应该有的结束标记,表格嵌套的越多逻辑越容易乱注意:在使用嵌套table的方法时要注意表头是作为一个table标签的,否则就会出现列不对应的情况,如下图。表头也使用嵌套,通过ID来标识它们的一一对应性。2) 在输出之前算好该标签的rowspan值例如在此报表中,月份的rospan值就应该是所有的二级组织的行数再加上所有的一级组织的行数(因为每个一级组织有个合计要算),;然后一级组织的rospan值就是该一级组织下的所有二级组织的行数再加上1(因为该一级组织有个合计要算)。每个rowspan都应该在输出之前将其算好赋予一个

6、变量值,然后在输出的时候将此变量值传到HTML的rowspan中。例如此报表的处理方式如下:先算出所有的二级组织的行数和一级组织的行数之和ln_month_row,此为月份的rowspan值for v_month in 月份的游标 loopfnd_file.put_line(fnd_file.output , |月份| ); for 一级组织 in (一级组织的所有信息) loop 在此处查询该一级组织下的二级组织的个数 ln_row1 fnd_file.put_line(fnd_file.output , |一级组织| ); for 二级组织 in(根据一级组织查询的所有二级组织的信息) l

7、oop 从报表可知该rowspan 值为1 fnd_file.put_line(fnd_file.output , |二级组织| 报表二级组织后面的列); end loop; end loop;end loop;该算法的优点:该算法能在输出之前根据需求算好该的rospan值,能实现报表的表样,相比于嵌套table的方法该方法在表样格式上控制简单,而且报表格式良好。该算法的缺点:在算行数的时候如果二级组织有重名(即不同一级组织下有相同名字的二级组织)就会影响到行数的算法,对此的处理使用的是在查询时加上之前的一级组织字段,保证唯一,即:select distinct 一级组织字段,二级组织字段 f

8、rom 表;如果二级组织为空没有值,也会影响到行数,在输出时需要判断rowspan是否为0,如果为0则让其为1,二级组织为空,这样报表才能出来。3) 使用字符串缓冲区使用字符串缓冲区的方法是将一级组织和二级组织的信息先显示出来但不输出,在每层循环里面用一个变量来统计rospan,并将该循环的内容放到一个字符串缓冲区内,直到所有的循环跑完之后,再输出这个缓冲区的内容。具体介绍以此报表为例先定义字符串缓冲区和变量lv_month varchar2(32767);(32767为varchar2的最大值)lv_month_in varchar2(32767);lv_orgnazation1 varch

9、ar2(32767);lv_orgnazation1_in varchar2(32767);lv_orgnazation2 varchar2(32767);lv_orgnazation2_in varchar2(32767);ln_month_row number;-月份行数变量ln_row1 number;-一级组织行数变量for v_month in (月份游标) loop 一层循环 lv_month:=月份; for orgnazation1 in () loop 二层循环 for orgnazation2 in () loop 三层循环 ln_month_row:= ln_month_

10、row+1;-算月份行数 ln_row1:=ln_row1+1;-算一级组织行数 lv_orgnazation2_in:= |二级组织| 此处开始输入二级组织后面的列; lv_orgnazation2:= lv_orgnazation2| lv_orgnazation2_in; end loop;ln_month_row:= ln_month_row+1;-因为一级组织的合计,所以月份的行数要加上一级组织的个数ln_row1:= ln_row1+1;-因为一级组织的合计 lv_orgnazation1_in:= |一级组织| ;lv_orgnazation1:= lv_orgnazation1

11、| lv_orgnazation1_in; ln_row1:=0; end loop;-在此处开始输出报表的内容fnd_file.put_line(fnd_file.output,lv_month);fnd_file.put_line(fnd_file.output, lv_orgnazation1);fnd_file.put_line(fnd_file.output, lv_orgnazation2);-输出完之后所有变量清0,以保证下个循环的输出正确ln_month_row:= 0;lv_orgnazation1:=null;lv_orgnazation2:=null;end loop;使

12、用字符串缓冲区的优点:使用字符串缓冲区相比上一种方法来说可以实现在文档中不存在SQL,而且可以不在乎不同一级组织下的重名问题。使用字符串缓冲区的缺点:使用的变量比较多,而且在算行数的时候的逻辑容易乱,每个循环后应该清0和清空的变量要明白清楚,整个代码的逻辑自己要清楚;字符串缓冲区的大小有上限,如果数据过大超过上限就会报错,clob变量可以解决这种问题,但其用法比较复杂,不建议使用。 1.3行列均动态上述两种情况的合并使用。2 整体数据筛选逻辑的设计目标:保证数据正确、满足需求且唯一。2.1 确定满足需求的字段的判定条件2.2 多表连接筛选数据2.3 自然语言描述报表逻辑画程序流程图三 代码实现

13、(按HTML的报表输出格式分类)1 不使用Html报表模版输出l1定义相关变量;2定义css样式;l3定义游标CURSOR,将报表的主查询语句,作为其查询部分;l4用html输出报表标题;l5输出参数及其值;l6输出表格内的标题; -输出方法参见表头设计l7按报表参数的条件组合做出条件判断;l8通过FOR REC IN CURSOR LOOP方式的循环,查询内容,逐行输出;l9在循环过程中,可以通过SELECT INTO的方式将游标查询中未能反应的数据,存入变量中,在输出时灵活运用;l10在小计或合计的地方注意在隔层循环外变量的清零;l11设置报表权限;l12提交报表;2 使用Html报表模版

14、输出此处以刘宏老师给的模版为例说明:1确定xxhan_htm_util_pkg.pck和xxhan_cux_util_pkg.pck这两个包在数据库内,并且可执行;2根据报表输出样式定义一个PROCEDURE regist_templates,regist_templates 中要灵活使用,regist_templates模版中的各个块的含义一定要清楚;3 之间设置满足需求要求的css样式,美化报表、满足用户体验。四 报表数据测试1 测试准备工作: 数据准备 保证足够多的有效数据 清楚报表中涉及到的算法、公式 清楚业务功能接口 2 报表测试点 1)基本测试点:界面、格式、布局、明显的数据错误、

15、报表标题,报表整体风格;2)有效数据准确性验证:数据的来源、数据的对应关系、数据的格式、数据的排序、明细与合计的一致性;3)报表查询:覆盖所有的查询条件,输出结果准确;4)汇总,明细表数据间的关联以及多张报表之间的比较;5)日期字段:关系到结算,查询,统计等;6)权限控制和安全性测试:报表查看权限;7)报表的辅助功能:Excel导出、打印等;8)样式统一:查询条件的保存、单位的统一等;9)测试前的评审工作(即互测):测前组织测试评审或者测试交流,对测试的深入,对接口,取值,数据的来龙去脉等重点或主要功能的讲解要详细,(除简单测试点外,其他要尽可能详细)。在交流前自己要先大概了解报表的功能,这样效果会更好;10)代码走读或者查询日志:熟悉程序逻辑结构,熟悉报表结构的情况下可以发现业务功能的逻辑bug,fnd_file.put_line(fnd_file.log,message); -信息写在log中可以查看日志文件的报表执行顺序和发现问题或者设计不合理的地方;11) 测试数据:自己首先添加简单的数据,验证报表统计数据的正确性。然后,再添加数据模拟业务的所有流程产生的数据,验证所有业务流程下数据的正确。这样一步步地深入,可以使得测试思路清晰,容易定位报表设计的业务。(正式数据最好);12) 测试中借助数据库做数据的验证测试。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1