您的当前位置:首页正文

BO报表技术入门

来源:独旅网


BO报表技术入门

第一章 BO报表介绍: 1.什么是报表?

简单的讲:报表确实是用表格、图表等格式来动态显示数据。报表软件,它们需要有专门的报表结构来动态的加载数据,同时也能够实现报表格式的多样化。BO确实是如此一种报表软件。

2.BO报表

BO报表全称是BusinessObject,Business Objects 是全球领先的商务智能(BI)软件公司的产品套,2007年10月被SAP收购。 Business Objects XI 为报表、查询和分析、绩效治理以及数据集成提供了最完善、最可靠的平台。本文中用的版本是BusinessObject XI Release 2。

3.学习内容

(1)BO 的语义层设计

提供了创建和爱护语义层的所有技术,让用户能专门容易地创建、访咨询和运行报表。

Designer简介 差不多操作 插入表和连接 定义类和对象

(2)BO的报表设计

让开发者把握报表规划和制作的全面技能和深入知识,关心分析和讲明一些重要信息,以及完整的报表创建过程。

制作一张简单的报表

报表的处理(1):插入表和设置表格式 报表的处理(3):独立单元格

报表的处理(4):设置数字和日期格式 报表的处理(5):使用节、拆分和排序 报表的处理(6):过滤报表中显示的值 报表的处理(7):使用标准运算

报表的处理(8):使用报警器突出显示关键结果 处理查询:构建差不多查询

处理文档(1):设置文档进行钻取分析

4.学习方式

语义层设计的学习,侧重于理论;报表设计的学习,侧重于操作。 本学习资料采纳技术案例形式,【咨询题描述】是我们利用BO自带的数据库,编写了一个小的需求,引入具体的咨询题,【分析过程】具体讲解我们用到的技术知识,【解决途径】是我们以图示的方式,实现报表。【体会总结】是我们自己在开发过程中,遇到的相似咨询题。期望能有些拓展。

第二章 语义层设计 第一节 Designer简介 1.1 概述

本节简要介绍了 Designer 这一用于构建 Universe 的工具。我们从Universe是什么,如何创建 Universe,以及Universe的作用分不阐述。等你明白得这些差不多的概念之后,就会发觉,制作报表只是力气活,然而universe 的设计却是技术活。因此在学习和开发的过程中,要紧精力是要花在universe的设计上的。

1.2 Designer 和 Universe 差不多原理

Business Objects Designer 是一个软件工具,可创建 Universe。 1.2.1 什么是 Universe?

Universe 是一个包含以下内容的文件: • 一个或多个数据库中间件的连接参数。

• 在数据库中使用的表和连接的模式。对象是通过您包括在模式中的数据库结构来构建的。

简单的来讲,先了解下Universe是我们做报表的第一步要创建的文件,它要紧是和底层数据库相对应,最直观的确实是它是用来构建SQL查询的文件。

1.2.2 Universe 有何作用?

1.2.3 Universe 包含什么?

等你创建一个新的 Universe 文件后,你看到的窗口如下:

你在两个白色区域分不右击,就会发觉它们的功能区不,右面是引入表或者编辑派生表(非物理表),左面是对象资源治理器视图,用以创建对象和类的。

(1)类

类是 Universe 中的对象的逻辑分组。它表示对象的类不。类的名称应指明类包含的对象的类不。能够按层次将类划分为子类。

(2)对象

对象是映射到数据库中的数据或数据派生的命名 Universe 单元。应按照目标用户组的业务词汇命名对象的名称。例如,在产品经理所用的Universe 中使用的对象能够是“Product(产品)”、“Life Cycle(生命周期) ”或“Release Date (公布日期) ” 。财务分析员使用的

Universe 能够包含诸如“Profit Margin (利润) ”和“Return on Investment (投资回报)”等对象。

(3)对象类型

在 Designer 中,对象被限定为三种类型之一:维、明细或度量。

对象类型讲明

维用于分析的参数。维通常与诸如地理、产品或时刻的层次有关。例如, “City”,“Yr(年)”,“Qtr(季度)”等。

明细提供维的讲明,但并不是分析的焦点。例如“Month Name” 度量传递用于确定维对象数量的数值信息。例如“Sales Revenue (销售收入)”

设置方法

右击对象对象属性,如图:

第二节 差不多操作 2.1 概述

本章描述您在 Designer 中执行以创建、修改和更新 Universe 的基 本操作。涵盖了以下主题: • 启动 Designer • 创建 Universe • 储存 Universe • 导出 Universe • 导入 Universe • 设置 Universe 参数 • 使用 Designer 用户界面 • 使用“查找并替换” • 组织表显示 • 选择模式显示选项 2.2 启动 Designer

系统 CMS 服务器的名称。 用户名 您的资料库用户名。 密码 您的资料库密码。

身份验证 您的安全级不 登录成功后

2.3 创建 Universe

描述 讲明Universe 用途和内容的讲明。可选字段。 接下来按确定即可。

2.4 储存 Universe 储存 Universe

• 从菜单栏中选择“文件”> “储存” • 单击“储存”图标• 在键盘上按 Ctrl+S

2.5 导出 Universe

将Universe储存到CMS(中央治理系统:统一治理Universe)

点击扫瞄,可新建文件夹

2.6 导入 Universe

导入:从CMS上获得Universe。

第三节 插入表和连接

3.1 概述

3.2 什么是模式?

模式是数据库结构的图形表示方式。在 Designer 中,您为 Universe表示的数据库部分创建模式。

模式包含表和连接。表包含列,而您最终会将这些列映射到最终用户用于创建报表的对象。连接链接表,以便为在多个表上运行的查询返回正确的数据。

您通过使用表扫瞄器从目标数据库中选择表,在“结构”窗格中设计模式。创建连接以链接表。当您为 Universe 设计了模式时,能够使用自动完整性检查功能验证模式。

以下显示了 Beach 这一示例 Universe 的模式:

图指明了模式设计时期显现在一个典型 Universe 开发周期的哪个位置:

3.3 插入表

表扫瞄器是一个独立的窗口,它显示了目标数据库中的表和列的树形视图。使用表扫瞄器可查看和选择想插入模式的数据库中的表。

3.4 使用派生表

派生表是您在 Universe 模式中定义的表。您在这些表上创建对象,就像在任何其他表上创建一样。派生表由 SQL 查询在 Universe 级不定义,可用作 Designer 中的逻辑表。

派生表具有以下优点:

• 减少了返回到文档供分析用的数据量。能够在派生表中包含复杂的运算和函数。这些操作在将结果集返回到文档之前执行,从而节约了时刻和减少了在报表级不对大量数据进行

复杂分析的需求。

• 减少了对数据库汇总表的爱护。有时,派生表能够取代储存复杂运算的结果的统计表(通过使用聚合感知将这些结果合并到 Universe 中)。经常爱护和刷新这些聚合表要付出专门高的代价。派生表能够返回相同的数据并提供实时数据分析。派生表与数据库视图类似,并具有以下优势:派生表的 SQL 能够包括提示。

SQL表达式确实是我们编辑的区域。 3.5 定义连接

在模式中插入了多个表后,必须在有关的表之间创建连接。在模式中,连接和表一样重要,因为它们承诺您通过一种有意义的方式组合多个表中的数据。那个地点的连接和数据库中的SQL连接有相同的含义。

创建连接:

1.能够通过图形方式在表之间创建各个连接,方法是使用鼠标从一个表中的列向另一个表中的匹配列画一条线。

2. 通过在“编辑连接”对话框中直截了当定义连接属性来创建连接。

第四节 定义类和对象 4.1概述

前面各节差不多描述了如何规划 Universe、创建包含 Universe 数据库结构(表、列和连接)的表模式。

4.2什么是对象? (1)什么是对象?

在 Business Objects 产品中,对象是 Universe 中一种命名的元素,它代表数据库中的一个列或函数。

每个对象都映射到目标数据库中的一个列或函数,同时,当在“查询”窗格中使用时,每个对象都会推导出一个 Select 语句。当组合了多个对象时,Select 语句依据包括 SQL(由每个对象推导出)并应用缺省Where 子句的数据库运行。

下图显示了“Universe”窗格中的对象,以及 Designer“Universe”窗格中的相同对象。Designer “Universe”窗格中的每个对象都映射为Universe 模式中的一个列,并推导出一个 Select 语句(在查询中使用时)。

(2)对象类型

给你的对象分配角色,即对象类型。 (3)什么是类?

类是对象的容器。类相当于 Windows 环境中的文件夹。能够创建类来 容纳在 Universe 中具有共同用途的对象。 4.3 使用@函数

对象是能够编辑的,它关于列或者函数。

开发过程中,常见的确实是使用这种@函数,示例中 case @Prompt('WD','A',,,)

when '1' then \"TKMX\".TKXZ_DM when '2' then \"TKMX\".ZSXM_DM end

含义是名为WD的变量值为‘1’,那个对象返回退库类型代码,‘2’则返回征收项目代码,当你编辑完毕的时候,点击“分析”,分析通过则此对象符合规则。

第三章 报表设计

案例1:制作一张简单的报表 一、【咨询题描述】

使用BusinessObject XI Release 2(简称BO)制作一张简单的报表。

二、【分析过程】

第一步,按照业务逻辑进行语义层设计(工具Designer); 第二步,按照业务展现需求进行报表设计(登录到InfoView); 第三步,展现在jsp页面前台 三、【解决途径】

(1)SQL语句分析通过后,储存Universe并导出

(3)储存文档

(5)文档具体编辑

(6)获得文档的SI_CUID

四、【体会总结】 无

案例2:插入表 一、【咨询题描述】

您能够编辑表内容、个性化其格式或将该表转换为不同的表类型或统计图。您还能够将多个表插入到同一报表中或同一文档内的新报表中。(自定义)

二、【分析过程】

• 垂直表(数据展现方向是纵向的) • 水平表(数据展现方向是横向的) • 交叉表(联想到x,y轴) • 表单(还没有接触) 三、【解决途径】

能够在交叉表中包括多个维。例如,此交叉表显示两个维。[销售收入] 度量的值是每一行按季度列出的每个省/州的值。

注意,这种页眉中数据相同的不能合并单元格 四、【体会总结】 无

案例3:设置表格式 一、【咨询题描述】

您能够编辑表内容、个性化其格式或将该表转换为不同的表类型或统计图。您还能够将多个表插入到同一报表中或同一文档内的新报表中。(自定义)

二、【分析过程】

• 垂直表(数据展现方向是纵向的) • 水平表(数据展现方向是横向的) • 交叉表(联想到x,y轴) • 表单(还没有接触) 三、【解决途径】

(1)能够在交叉表中包括多个维。例如,此交叉表显示两个维。[销售收入] 度量的值是每一行按季度列出的每个省/州的值。

注意,这种页眉中数据相同的不能合并单元格 (2)给现有表应用不同的模板

四、【体会总结】

(1)拖放操作将行或列添加到表

(2)替换表列和表行

(3)通过移动表列或表行创建交叉表

(4)利用单元格之间的边框,背景颜色,宽度隐藏一列单元格

案例4:独立单元格 一、【咨询题描述】

独立单元格是在报表中独立存在的单一的单元格。您以使用独立单元格显示信息,为报表增加含义。

二、【分析过程】

三、【解决途径】

四、【体会总结】 无

案例5:设置数字和日期格式 一、【咨询题描述】

能够从预定义的格式范畴中选择格式或创建自己的定制格式。 二、【分析过程】 三、【解决途径】

四、【体会总结】 无

案例6:使用节、拆分和排序 一、【咨询题描述】

如何对报表中显示的信息进行组织,使报表易于读取和导航。 二、【分析过程】

BO提供了有关以下各项的信息: • 使用节对报表上的数据进行分组

• 使用拆分对表中的数据进行分组

• 使用排序来组织表上的节和数据

三、【解决途径】 (1)创建节点

(2)能够在表或交叉表上插入一个或多个拆分。您能够在显示维或明细的任意列或行上插入拆分。

注意: 您不能在显示度量的列或行上插入拆分。

四、【体会总结】

(1)下面显示了拆分和节的不同之处

(2)拆分是对维度或者明细拆分,不能对度量进行拆分:

• 如果选定表是垂直表,则所有拆分将应用于列。如此的拆分称为“垂直拆分”。

• 如果选定表是水平表,则所有拆分将应用于行。如此的拆分称为“水平拆分”。

• 如果选定表是交叉表,则拆分能够应用于行或列。能够选择水平拆分和垂直拆分的优先级。

案例7:过滤报表中显示的值 一、【咨询题描述】 二、【分析过程】

创建报表过滤器,需要指定三个元素: • 过滤的对象 • 运算符 • 值

三、【解决途径】

(1) 给报表应用多个过滤器

(2) 查看给报表应用的过滤器

四、【体会总结】 无

案例8:使用标准运算 一、【咨询题描述】 如何插入标准业务运算 二、【分析过程】 使用标准运算 三、【解决途径】

四、【体会总结】 无

案例9:使用报警器突出显示关键结果 一、【咨询题描述】

报警器使您能够采纳能让结果在报表上突出显示出来的格式来突出显示特定的结果范畴。

二、【分析过程】

需要指定五个元素: • 名称

• 对象或单元格内容 • 运算符

• 操作数(值或其他对象) • 条件格式设置 三、【解决途径】

第 1 步:启动“报警器编辑器”并为新报警器命名

第 2 步:定义条件

第 3 步:使用报警器个性化单元格的格式设置 第 4 步:添加子报警器(可选) 第 5 步:储存报警器

第 6 步:为整个文档更换报警器的优先级(可选)

四、【体会总结】

(1)您能够将报警器应用于表体单元格(按列或行)、节单元格、页眉单元格和自由单元格。然而,不能将报警器应用于整个表或表单,或应用于统计图。

(2)区分报警器与报警器,报警器与子报警器之间的关系 (3)使用公式创建高级报警器

一、【咨询题描述】 二、【分析过程】

全部 此表下面列出的所有类不的所有函数。

聚合 聚合数据(例如,通过对一组值求和或求平均值) 字符 处理字符串 日期和时刻 数据提供者

返回日期或时刻数据

返回有关文档数据提供者的数据

文档 返回有关文档的数据 逻辑 返回 TRUE 或 FALSE 数字 返回数字数据

其它 不属上述任何类不的函数 三、【解决途径】 四、【体会总结】

(1)date FormatDate(date date_to_format; stringdate_format) 示例:FormatDate([税费所属期起];\"yyyy-MM-dd\")

(2)string SubStr (string input_string, integer start,integer length)

示例:\"支付时刻段:\"+Substr([支付时刻起];1;4)+\"年\"+Substr([支付时刻起];6;2)+\"月\"+Substr([支付时刻起];9;2)+\"日-\"+Substr([支付时刻止];1;4)+\"年\"+Substr([支付时刻止];6;2)+\"月\"+Substr([支付时刻止];9;2)+\"日\"+\" 单位:元\"

(3)If (boolean_expr; value_if_true; value_if_false) 示例:If([区分标记]=\"1\";\"城区小计\";\"县区小计\")

(4)string Left(string input_string; integer number_of_characters) 示例:If(Left([行业代码];1)=\"1\";1;0)

案例11:报表的钻取 一、【咨询题描述】

例如讲现在有一组数据如下: 区县 玄武 玄武 玄武 玄武 玄武 白下 白下 白下 白下 所 玄武一所 玄武一所 玄武二所 玄武二所 玄武二所 白下一所 白下一所 白下二所 白下三所 组 玄武一组 玄武二组 玄武一组 玄武二组 玄武三组 白下一组 白下二组 白下一组 白下一组 户数 100 200 200 300 100 150 100 100 200 需求要求,第一层展现区县机关的数据,第二层展现治理所的数据,第三层展现治理组的数据。

玄武 白下 900 550 点击【玄武】,下钻到所:

玄武一所 玄武二所 300 600 点击【玄武一所】,下钻到组:

玄武一组 玄武二组 100 200 二、【分析过程】 第一介绍钻取的本质。

报表技术本身是对SQL的封装。他的钻取功能类似于SQL中的GROUP BY。

第一层,相当于“select 区县,sum(户数)from table group by 区县”; 第二层,相当于“select 所,sum(户数)from table where 区县=玄武 group by 所”;

第三层,相当于“select 组,sum(户数)from table where 区县=玄武 and 所=玄武一所group by 组”。

其次,钻取顺序的咨询题。

钻取的顺序按上面的需求中设定的,并不是报表有默认的顺序。另外,钻取的顺序是能够反过来,甚至能够没有特定的含义。这么讲,是因为之前我们在开发中,觉得只有数据有必定的上下级关系才能实现钻取。事实和我们明白得的完全相反,BO能在任何维度之间钻取。例如讲我数据中加一列

年份 2010 2010 2010 2010 2010 2011 2011 2011 2011 区县 玄武 玄武 玄武 玄武 玄武 白下 白下 白下 白下 所 玄武一所 玄武一所 玄武二所 玄武二所 玄武二所 白下一所 白下一所 白下二所 白下三所 组 玄武一组 玄武二组 玄武一组 玄武二组 玄武三组 白下一组 白下二组 白下一组 白下一组 户数 100 200 200 300 100 150 100 100 200 钻取顺序:年份-所-区县-组,区县-年份-所-组…,所有可能的排列顺序。

因此实现钻取的时候,第一步,预备要钻取的维度,例如讲年份-区县-所-组;

第二步,设定钻取维度的顺序; 第三步,启动钻取功能。

三、【解决途径】 (1)设定顺序

第一种,Universe中,使用层次编辑器

第二种,钻取的所有维度放在一个类中,会自动按照从上到下的顺序实现钻取

(2)启动钻取。 切换到钻取模式:

当您在报表视图中进行操作时,“编辑报表”按钮处于按下状态。 2 选择要钻取的报表。 3 单击“钻取”按钮。

四、【体会总结】

(1)某个维度,使用了标准运算后,就不能实现钻取了。 (2)想要了解钻取途径,不妨试试DrillFilter那个函数。

因篇幅问题不能全部显示,请点此查看更多更全内容