您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle Report Development
1华东师范大学学校代码:10269学号:63041500015基于OracleERP系统的ReportBuilder开发方法院、系:软件学院专业:软件工程研究方向:软件项目管理指导教师:余青松姓名:程序2005年12月2OracleERP二次开发实用技术系列:之一:基于OracleERP系统的ReportBuilder开发方法之二:基于OracleERP系统的FormBuilder开发方法之三:基于OracleERP系统的ConcurrentProgram开发方法之四:基于OracleERP系统的Alert开发方法之五:基于OracleERP系统的XMLPublisher开发方法3摘要摘要内容:ReportBuilder是OracleERP展示数据最重要的方式,也是二次开发中,工作量最多的一个部分。对于OracleERP的二次开发来说,Report的开发与一般CS结构的Report开发,是有区别的,市面上有很多关于Report的书籍,但是相信看过任何一本的人都知道,在你实际开发ERPReport的过程中,还是问题不断,而且这些问题通常是书本上无法解决的。就算是Oracle的标准培训文档,也只能给你一个大概的蓝图。本篇文章,就是将一些实际开发过程中的步骤、策略、技巧、疑难杂症展现出来。本文通过步骤、安装、策略、疑难四个方面讲解Report的开发,通过最通俗的语言讲解,其中一些技巧,是公司同事经验积累的成果,只是由我将它记录下来,其中难免有一些错误,或者疑难问题上不够准确的地方,但是只要能给你的开发和学习一些帮助,就是作者最大的欣慰了。【关键词】OracleERP;二次开发;ReportBuilder。【论文类型】技术教程。Page4of47【目录】1.ReportBuilder的简介2.Report的基本开发步骤3.Report的布局研究,特殊报表的布局开发方法4.Report的安装上线方法5.Report的检查、测试策略6.Report的疑问问题应付方法Page5of47第一部份:ReportBuilder的简介Report,报表,就是将数据库的数据合理、清晰、汇总的展示出来。输入一定条件的参数,得到一定的数据的展示的结果,其实就是一个select查询的过程。查询,就是说,不要对有任何的增加原数据,修改原数据的功能。Report虽然能够轻易的实现改变原数据,但是这样的需求是不合理的,报表的就是一个展示的功能,不管多复杂的报表,不能改变原数据,不能影响流程。ReportBuilder,简单的说,就是一个资料模型,就是你的报表数据查询来源,一个布局模型,你要的报表的展示格式。使用Report之前,你需要的基本能力就是会使用SQL/PLSQL语句,语法是其次,关键是数据之间的逻辑关系,起码能将左外联接,迪卡尔积等几个名词说的清楚,那么,OK,继续往下看。Page6of47第二部份:Report的基本开发步骤1.先进行ERP环境下的REPORT的格式属性设定.1.1请采用手工方式,并不使用report使用的精灵来制作报表,将出现在画面中的module原始文件另存为你的目的地址,并使用你的项目报表名称。1.2建立报表后,选中报表名称段,按F4打开属性,字符模式-用字符单位设计-选择”是”。1.3在布局模型中,选择主要节段,按F4打开属性,字符模式-报表高度和报表宽度按照设计书填写,节段-宽度和高度,这个设置直接影响布局模型字符模式下的点距。小技巧:节段的高度和宽度,与报表高度和报表宽度最好对应成比例,并且,这个比例的倍数最好是整数,由于将来可能出现的报表长宽发生变化,报表高度和报表宽度调整后,节段的高度和宽度就要按比例调整,这样每个格子的形状、大小不变,同时你报表中的内容不会拉长、压扁;同时建议将表头节段,表尾节段也设置来同主要节段相同。Page7of47例如:表头,表尾,主要节段三个的属性,请将节段高度和报表高度按比列设置(如1:10),节段宽度和报表宽度,按比例设置(如1:6),而且三个节段的属性要设置相同.这样做的好处是将来一旦调整报表大小,只需按比例不变的情况下调整,框架中每格大小不变,表格也就不会混乱.1.4在布局模型中拉框架前,选择格式-布局选项-标尺设定,画面中点选,单位-字符单位,网格线间隔-1,对齐点数目-1,字符单位大小不要改动。.Page8of47这样设置的目的在于拉动框架时,间距都是1个字符,符合ERP报表的定位方式。这样,你的前期工作就算完成了。Page9of472.定义你的使用者参数将详细设计文件中,ERP环境传入的参数和你自己定义的参数,一一设置好,提醒注意数据类型和大小,传入参数和自定义参数要区分开,请按照规范文档来。注意,自定义参数对报表的开发灵活性作用巨大,要使用有含义的名称。ParameterName自定义参数命名参考1“PI_”+XXXXX传入值用的参数,如果parameter的用途是真正作为传入参数用时,名称一律以”PI_”开头;不可使用系统默认值。2“GLB_”+XXXXX报表中使用的变量参数,如果parameter的用途是作为共享变量时,名称一律以”GLB_”开头;不可使用系统默认值。3有起迄的参数需要在后面XXXXX+”_F”表示FROM,XXXXX+”_T”表示TO;不可使用系统默认值。小技巧:date类型的传入参数,有时根据valueset设置的不同要使用格式遮罩,固定它的时间格式,不然会出现错误。同时建议在设置大小时要适当放大一些,避免有多国语言文字时出现错误。Page10of473.Report执行过程的说明从画面上触发器的摆放次序,是从上到下的。为参数前,参数后,报表前,翻页中,报表后。其中参数后和报表前为最常使用的两个触发器,一般情况下,使用报表前(beforereport)来编写在报表运行前需要处理的数据,比如给自定义参数赋值,运行一段存储过程,定义一段动态sql,插入临时表格数据等。当报表前插入临时表格数据,那么afterreport就是执行删除临时表格数据的动作。4.建立资料模型一般来说,除了矩阵,布局无非就是固定框架和循环框架的组合,每一个循环框架就对应一个资源模型中的一级。当然,这么一句话并没有什么实质意义,而要把这个讲清楚,就通过图形和实例来讲解。下一部份重点讲解该注意一些技巧和特点。4.1最一般的单循环普通报表按“sql”按钮,点入画布中,再导入事先写好的sqlscript。Page11of47导入sql后,这个报表的资料模型非常之简单。(注此报表并非模范,请按照规范命名。)5,建立布局模型5.1先拖1个固定框,再在固定框内画1个循环框5.2,将固定框和循环框拖拉到合适的大小,再内部填充上数据栏位和文字栏位Page12of475.3属性的设定固定框上下设为浮动的,左右为固定的,显示为“第一页”“包含模式”。循环框Page13of47上下设为浮动的,左右为固定的,显示为“第一页”“包含物件”,每页最多显示多少,这里为1,当然根据需要而定。内部栏位Page14of47上下设为固定的,左右为固定的,显示为“第一页”“包含模式”6报表完成这里的第3,4,5小节只是一点简单的步骤介绍,详细方法和技巧并没有呈现出来。下面这个部分,将就资料模型和布局模型的关系作详细的探讨。7参数规范参考框架Layout中,字段名称命名“F_”+XXXXXX:XXXXX为可表达其意义的名字,最好能与抓取值名称对应上;不可使用系统默认值。查询主体名称命名“Q_”+XXXXXX:XXXXX为可表达其意义的名字;不可使用系统默认值。Page15of47固定框名称命名“M_”+XXXXXX:XXXXX为可表达其意义的名字;不可使用系统默认值。循环框名称命名“R_”+XXXXXX:XXXXX为可表达其意义的名字;不可使用系统默认值。文字框名称命名“B_”+XXXXXX:XXXXX为可表达其意义的名字;不可使用系统默认值。FormulaColumnName公式直栏命名:“CF_”+XXXXXX:XXXXX为可表达其意义的名字;不可使用系统默认值。PlaceholderName占位符命名:“CP_”+XXXXXX:XXXXX为可表达其意义的名字;不可使用系统默认值。Page16of47第三部分Report的布局研究,特殊报表的布局开发方法1.布局框架风格1.1在布局模型栏位中字符\时间左靠齐,数字右靠齐.小技巧:对于字符型数据的栏位,注意中文和日文的宽度,是占用2个字符;对于时间栏位,注意格式遮罩,比如DD-MON-YY,还有小时是12小时制,还是24小时制,有时会遗忘这一点;对于数字栏位,注意保留位数,NN0.00与NN0.NN是不一样的,前者是恒保留2位,后者是超过2位小数保留2位,但是不足2位就不会补0,还有一些是货币格式,注意选择合适的格式遮罩,还有特殊情况,如负数要用括号括起来,-100为(100),这种情况,建议使用公式栏中处理出来后显示,先to_char转换,再判断是否两边连接括号。1.2繁体报表要求用细明体,10号字.小技巧:不要设置任何斜体、下划线、粗体,因为ERP报表就是纯字符报表,有一次我设置了粗体,试验下来的结果就是报表会报错,这样的错误,很难找到原因。有时你看见明明显示的是细明体10号,但是一运行却不是,建议在作完报表布局后,CTRL+A全选,然后先选择另一个字体,再选回细明体,先选另一个大小字号,再选回10号字。1.3请将框架和栏位的颜色设为无色,填充也设为无.小技巧:在画完报表之后,CTRL+A全选,选择无填充,无颜色,这样报表保证不会出错。Page17of471.4报表标题,设在主要节段内,表头,表尾尽量不要输入内容,同时在“显示报表的表为节段”模式下,将黑框顶满画面.小技巧:任何报表形式,都能够在不利用表头模式、表尾模式的情况下实现表头表尾格式的实现。因为在表头模式、表尾模式下,非常容易出现报表出错,关键是错误很难找出,有时把整个画面全部删除了,才想到是表头表尾出错了。将下面这个黑框,上下左右全部顶满。2.资料模式风格2.1充分利用报表的汇总、公式列功能。Page18of47小技巧:汇总,与此类似的平均值之类的,为我们的报表编写提供了相当大的辅助,但是要注意层级关系,你这个汇总是放在哪一个层级上的。一般来说,汇总列总是比你要处理的列高层级,而公式列是与处理的列平行的。公式列的功能,常用在字符处理上,或者数字转字符,或者返回一个yes/no。2.2连接线的使用对于图中Q_1,Q_2之间的这条连接线,意味着,将这两个查询通过某一个栏位而统一起来了,从上图中就可以看出,Q_1是主查询,使Q_1与Q_2同一级,就是连接的栏位列之间是对应关系。但是,假如右边第一级不是1个栏位是很多个栏位,并且其他栏位并不与主查询有连接线,这是,右边的第一层,就比左边低一级了,就不是平等关系了,这时需要一个循环框。可能有人会被我这个高级、低级给将糊涂了,为了清晰的表达这个层级关系,通过几个实例来阐述资料模型的结构与框架结构的关系。Page19of473.资料模型与布局模型的关系。3.1资料模型一个层级就对应布局模型一个循环框上面这句话,是我对report的总结,下面,我就通过画面来说明这个关系是如何对应的。例一:红色部分就是第一层,第一层意味着可以不被任何循环框套起来,可以直接使用到报表之中,本例中第一层没有数据。第二层,意味着需要一层循环框。第三层,意味着使用这样的栏位,需要有两层循环框。第四层,意味着使用这样的栏位,需要有三层循环框。在下面图中,三层循环框就对应资料模型中的三个层级。布局模型中,不用任何循环框包围的部分,就是资料模型中的第一层。Page20of47小技巧:每个循环框的外面,请加上一个固定框。不加可以吗,可以!但是,这就降低了报表的应付变更的可变化性,比如:有个报表的循环里面要求固定5条数据,在固定的5条数据下面固定一行高一层数据,这行数据不随这个循环框浮动,那么就可以设置外面这个固定框的上下属性为“固定的”,不是浮动的。例二有连接线时的层级关系,同
本文标题:Oracle Report Development
链接地址:https://www.777doc.com/doc-8706 .html