搜档网
当前位置:搜档网 › cognos基于条件制作动态报表

cognos基于条件制作动态报表

cognos基于条件制作动态报表
cognos基于条件制作动态报表

基于条件制作动态报表

在使用报表时,用户往往希望某些“异常数据”能够突出显示,以便其更快速了解数据的总体状态。如:性能数据一旦超过设定的阀值,则突出显示为黄色或者红色;在其他情况下显示为绿色。IBM Cognos Report Studio 就提供了这样一种机制,在用户生成报表的时候,能够自动根据开发人员事先设定好的条件以及显示格式,对报表进行动态显示。

在制作基于条件的动态报表时,需要注意三要素。第一个要素是条件,条件是用以判断的规则,通常为一个变量表达式及其一系列取值,如,上面的性能数据超过阀值。第二个要素是用于和条件绑定的特定数据项(Data Item),条件表达式只有和具体的数据项相关,以数据项运行时的取值作为条件输入,才能达到动态显示报表的目的,如,上面提到的性能数据。第三个要素条件格式,即在条件表达式的某一特定取值下,报表显示的格式,如字体,颜色,阴影等。总得来说,基于条件的动态报表的实现就是根据某特定数据项在报表运行时的取值,计算变量表达式的取值,并根据变量表达式的取值,决定报表的显示格式。

Cognos 支持三种类型的变量:字符串变量,布尔变量和语言变量。以下的三小节将分别介绍使用这三种变量制作动态报表的过程。

使用字符串变量制作动态报表

在2.1 节中,我们将介绍简单的使用字符串变量的制作动态报表的过程。我们希望实现根据项目状态的取值,动态显示报表中“项目状态”单元格的背景颜色:当项目状态为R(Red) 时,项目状态单元格的背景显示为红色;当项目状态为Y(Yellow) 时,项目状态单元格的背景显示为黄色;当项目状态为G(Green) 时,项目状态单元格的背景显示为绿色;当项目状态为 C (Complete) 时,项目状态单元格的背景显示为蓝色。

步骤1. 打开变量编辑窗口。点击Explorer Bar 上的Condition Explorer。点击弹出页面中的Variables。见图1。

图 1. 打开变量编辑窗口

步骤2. 创建字符串变量。将Insertable Objects 中的字符串变量(String Variable)拖拽到Variables 部分。见图2。

图 2. 创建字符串变量

步骤3. 定义字符串变量表达式。在将字符串变量拖拽到Variable 的过程中,系统会自动弹出变量表达式编辑窗口。在编辑窗口的左侧列出了可用于表达式的各种组件和数据项。可以通过拖拽的方法选择所需的数据项组合成变量表达式。以下的例子中,我们设定一个简单的变量表达式,这个变量表达式就等于报表中项目状态(PROJECT_STATUS)。见图3。

图 3. 定义字符串变量表达式

步骤4. 为字符串变量表达式赋值。选中字符串变量String 1,点击Values 框下面的添加(Add)图标,在弹出的对话框中,输入希望添加的变量值,如R (Red),然后点击OK 按钮。此变量值就会被添加到Values 的列表中。可以通过重复以上步骤,添加其他变量值。根据之前的描述,我们需要R (Red), Y (Yellow), G (Green), C (Complete) 四个变量值。见图4。

图 4. 为变量表达式赋值

步骤5. 为字符串变量命名。在页面左下角的变量属性编辑窗口中,可以对创建的字符串变量进行重命名。在例子中,我们将变量重命名为Project_Status. 见图5。

图 5. 为字符串变量重命名

步骤6. 打开需要绑定变量的报表。点击Explorer Bar 上的Page Explorer,点击打开需要编辑的报表。见图6。

图 6. 打开需要绑定变量的报表

步骤7. 首先点击选中报表中需要与变量绑定的元素。然后在左下角的属性编辑窗口中,点击Style Variable 一项的编辑按钮,在弹出的窗口中,选择之前定义好的条件变量Project_Status。见图7。

图7. 将报表中元素与字符串变量绑定

步骤8. 为变量的不同取值设置相应的显示格式。点击Explorer Bar 上的Condition Explorer, 在变量Project_Status 的取值列表中选择一个取值,如,点击G。设置此取值对应的显示格式,如,Project_Status 单元格背景颜色显示为绿色。在选定取值的情况下设置的显示格式会自动和该取值相关联。重复以上步骤,设置其他取值下的显示格式。有一点需要注意,设置完特定的取值对应的显示格式后,选取None 值,检查报表在不满足任何变量取值下的显示格式,确保报表可以正常显示。见图8。

图8. 为变量的不同取值设置相应的显示格式

使用布尔变量实现报表的动态显示

本节介绍如何利用布尔变量实现报表的动态显示。我们希望根据用户输入的值,显示或者隐藏列表中的某一列。在以下的例子中,报表按照部门展示各部门员工人数,包括Regular 人数和Vendor 人数。用户运行报表的时候可以选择是否显示Vendor 人数一列。

步骤1. 创建用于接收用户输入值的参数。在报表提示页面创建一个值提示,命名为Display_para,点击完成按钮。见图9。

图9. 创建参数

步骤2. 创建布尔变量。在提示页面选中值提示,在左侧的属性编辑窗口中,打开Static Choices 编辑窗口,在Variable 的下拉菜单中,选择新建布尔变量。并将布尔变量命名为Display_bool。

图10. 创建布尔变量

步骤3. 定义布尔变量表达式。在可用参数(Parameters)列表中,选择在步骤2 中创建的参数Display_para。将Display_para 拖拽到右侧的表达式定义(Expression Definition)窗口中,并参照图11 定义表达式内容。

图11. 定义布尔变量表达式

步骤4. 为布尔变量赋值。布尔变量的两个Use 值是Yes 和No,表示布尔变量真假两种状态。而我们在参数中显示给用户的则是Display 值“要”和“不要”。定义Use 值和Display 值的对应关系,使得布尔变量能接收用户选择的“要”或者“不要”,按照对应关系,转化成布尔变量Yes 和No,即布尔变量真假两种状态。

图12. 为布尔变量赋值

步骤5. 将报表中的Vendor 列与布尔变量绑定。打开报表编辑页面,选中Vendor 列,在列属性编辑窗口中,打开Render Variable 编辑窗,在Variable 列表中选择之前创建的布尔变量Display_bool。

图13. 将报表中指定的列与布尔变量绑定

步骤6. 报表在不同选择值下的运行结果。

图14. 报表在不同选择值下的运行结果

使用语言变量实现报表的全球化

2.3 节介绍如何利用报表语言变量实现报表的多语言显示。我们希望根据运行时用户的语言,实现同一报表对不同语言用户的不同显示:当用户运行语言为中文时:报表中的字符串显示为“中文”;当用户运行语言为英文时:报表中的字符串显示为“English”。

步骤1. 打开变量编辑窗口。点击Explorer Bar 上的Condition Explorer。点击弹出页面中的Variables。

步骤2. 创建语言变量。讲Inerstable Objects 中的语言变量(Language Variable)拖拽到Variables 部分。见图9。

图15. 创建变量语言

步骤3. 选择报表用户所在国家的语言。如:选择中文和英文。见图10。

图16. 选择语言

步骤4. 为字符串变量命名。在页面左下角的变量属性编辑窗口中,将变量重命名为Language_cn_en 见图11。

图17. 为语言变量重命名

步骤5. 打开需要绑定变量的报表。点击Explorer Bar 上的Page Explorer,点击打开需要编辑的报表。

步骤6. 首先选定报表中需要和语言变量绑定的字符串。然后左下角的属性编辑窗口中,点击Text Source Variable 一项的编辑按钮,在弹出的窗口中,选择之前定义好的语言变量Language_cn_en。见图12。

图18. 将文本与语言变量绑定

步骤8. 设置不同语言下的显示内容。点击Explorer Bar 上的Condition Explorer,在Variable Language_cn_en 的取值列表中选择一个取值,如,点击Chinese。设置此取值对应的显示内容,如,”中文”。重复以上步骤,设置其他语言下的显示内容。见图13。

图19. 设置不同语言下的显示内容

步骤9. 设置运行时的语言。点击运行按钮旁边的下拉列表,点击运行选项(Run Options),在语言(Language)一栏中选择中文(Chinese)。见图14。

图20. 设置报表运行时的语言

步骤10. 以不同的语言运行报表。设置了报表运行时的语言后,点击运行按钮。见图15。

图21. 报表在不同语言下的运行结果

回页首报表之间穿透钻取功能的实现

钻取功能是Cognos Report Studio 中的重要的功能之一,包括同一报表不同层次(Level) 之间的钻取:上钻(Drill up ) 和下钻(Drill down),还不同报表之间的穿透钻取(Drill through)。我们在第 3 部分要介绍的是不同报表之前的穿透钻取功能的实现。

在设置钻取功能之前,需要准备好两个报表:概要报表和细节报表。概要报表是钻取功能的起点,在概要报表的某些数据项上触发穿透钻取操作。细节报表是钻取功能的终点,是原报表中某些信息更细节数据的显示。如:在概要报表中显示

某部门总人数为100 人,通过穿透钻取功能,在目标报表中可以查看这100 人的详细信息。

从概要报表到细节报表的钻取过程中,通常伴有参数的传递。如:以上例子中的部门标识。

报表钻取功能的设置

步骤1. 在Report Studio 中创建并保存概要报表和细节报表。见图22.

图22. 创建概要报表和细节报表

步骤2. 在Report Studio 中打开概要报表。概要报表显示各个部门人数的信息。

步骤3. 选中概要报表需要钻取的位置。如,部门维度。见图23。

步骤4. 点击页面左下角的属性的Drill-Through Definitions 一项,打开穿透钻取编辑窗口。见图23。

图23. 选中需要钻取的位置

步骤5. 在弹出的钻取编辑窗口中,点击新建图标创建一个穿透钻取。见图24。图24. 创建一个穿透钻取

步骤6. 为穿透钻取重命名。我们将新建的穿透钻取重命名为Employee List。见图25。

图25. 为穿透钻取重命名

步骤7. 选择需要连接的细节报表。打开在第 1 步中创建的细节报表。见图26。图26. 选择细节报表

步骤8. 选择打开细节报表的格式。可选择的格式包括HTML, PDF, Excel 等,如果选择Default 选项则使用HTML 格式打开细节报表。见图27。

图27. 选择打开细节报表的格式

步骤9. 设置传递参数。点击参数下方的编辑图标,在弹出的参数编辑框中,会列出细节报表中的已经定义好的所有参数。选择需要从概要报表传递到细节报表的参数,如:部门。并且在Value 一栏中指定将概要报表中的什么参数或者数据项的取值传递到细节报表的指定参数中。如:这里选择将概要报表中部门数据项的取值传递到细节报表的部门参数中。见图28。关于穿透钻取中参数传递的更多内容请见上一节。

图28. 设置传递参数

钻取过程中参数的传递

所有在细节报表中定义的过滤器和参数,都会出现在穿透钻取参数的编辑窗口中,见图28。我们在细节报表中定义了三个显式的过滤器以及一个隐式的参数。定义隐式参数的目的是既希望通过该参数完成概要报表到细节报表的参数传递,又不希望将该参数作为过滤器暴露在细节报表中供用户使用。如:我们希望当用户从概要报表的部门维度上进行穿透钻取操作的时候,在细节报表中显示被选中部门的所有员工信息,因此我们在细节报表中定义了部门的参数,通过这个参数在概要报表和细节报表之间传递被选中部门的信息;同时,我们并不希望用户在细节报表中看到并且使用这个参数,此时,我们就可以通过修改参数的属性,将其掩藏。见图29。

图29. 修改过滤器的显示属性

在穿透钻取参数编辑窗口中,可以选择将概要报表中两种类型的值传递给细节报表。一种是概要报表中参数的当前值,一种是概要报表中数据项的当前值。见图30 中方法(Method)一列的下拉菜单选项。当然,也可以选择不传递任何参数,既在穿透钻取中不使用该参数。

图30. 选择参数传递方法

对应不同的Method 选项,会有不同的值出现在Value 一列的下拉菜单中。见图31。如果选择传递参数的当前值,则概要报表中所有的可用参数都会出现在Value 的下拉菜单中;如果选择传递数据项的当前值,则概要报表中所有的可用数据项都会出现在Value 的下拉菜单中。这里我们选择将概要报表部门数据项的当前值传递到细节报表的部门参数中。

图31. 不同传递方法的参数取值

回页首总结

综上所述,Cognos 商业智能系列软件不仅可以提供丰富的报表展示功能,基于条件生成动态报表,而且可以通过钻取操作将不同的报表关联起来,用户可以通过一个报表的信息关联查看其它相关报表的信息,从而以最快的速度找到相应的解决办法,避免了在不同的信息单元中进行无目的的切换。

cognos报表知识整理

Cognos报表—知识整理 一、提示页自动加载 1、功能需求背景 华中电网概况报表首页需要有日期参数,但是每次进入首页时出现日期选择框影响美观,所以为其增加提示页面,但根据要求不能增加提示页面,所以设计出提示页面自动加载。通俗的讲就比如:出现提示页面,电脑自动点击确定进入主页面…… 2、功能实现方法 步骤1: 新建提示页面,新页面中内容包括:onload项目、完成按钮、日期提示框以及针对提示框的html项目。如下图1 图1 步骤2: Onload项目中函数:详见图1

二、进入页面后自动刷新一次 1、功能需求背景 电网概况报表电厂容量分析主页面中,需要自动根据日期刷新一次页面(具体原因参见三、特殊的日期过滤) 2、功能实现方法 步骤1: Onload项目加载函数,如图2 图2 步骤2: Js中函数新加一行代码,如图3 图3

3、可参考报表 电网概况报表>>1.电厂容量分析 三、特殊的日期过滤 1、功能需求背景 电网概况中发电情况包括水、火、风三种发电方式,在数据库中体现即为水(火、风)电机组管理(参数)表。根据用户要求,需要对全网水(火、风)当年新投机组容量等进行数据统计, 2、设计思想 1)将水、火、风机组管理表分别对应查询中取相同数据项,为U联做准备。 2)在三个查询中新建“投运年”数据项,取得机组投运年份。表达式:substr(【投运日期】,1,4) 3)将三个查询进行U联,给U联后的查询设置过滤条件,如图4 图4 3、出现问题分析 根据2、设计思想中进行操作,报表验证报错,不能对substr进行集操作,经查询得知,dm 数据库不支持在两层(原层和U联层)查询中同时使用substr。 4、新的解决方法 思路如下图:

Cognos制作报表--基本范例

1COGNOS的使用 1.1模型定义 1,打开Frame Manager程序,如下图: 2,新建一个项目,建完后,打开该项目,如下图:

3,在界面左边中选择“Packages”,然后单击右键新建一个包。按照提示一步步做,其中有一步是从数据库的表选所要用到的表,打勾为选用。 4,点击”Diagram”显示表,但表之间还没有建立联接关系,通过建立各表关系后如下图

5,然后将该包发布,点击右键该包选择“Publish Package”将其发布。 1.2模型的物理和逻辑定义 1,模型定义的规范:将模型分为2个部分,分别为物理层和逻辑层,物理层为从数据源引入表的物理定义和连接关系,逻辑层为业务视角下的逻辑定义。 2,物理层的建立:根据数据分析,设计模型中需创建的物理表,以便尽可能的提高查询语句的运行效率(比较理想的结构是星形结构,一个中间表和多个物理维表)。 在根名字空间(和数据源同名)下,建立一个名为物理层的目录,在物理层文件夹下执行Run Metedate Wizard将数据源中相关的物理表引入这个目录,然后将这些表建立连接关系,建议不要有Orphan表。如下图:

3,逻辑层的定义:在根名字空间下,建立一个名为逻辑层的目录,在逻辑层文件夹下生成Query Subject,Query Subject的字段都是根据业务逻辑从物理层从引入,建议字段名都为中文。逻辑层中的表为事实表和维表的结构,在事实表中包含维度的编码值和指标的值,维表中包括每个维度上编码值和其名称的对应关系。也可以根据需要建立Regular Dimension(3.4说明),在逻辑层中不要建立逻辑表之间的关系。如下图:

Cognos开发之Cube

Cognos 8开发之Cube V1.0

知识成果简要信息表

第一章 Cognos简介 1.概述 Cognos展现的报表基于统一的元数据模型。统一的元数据模型为应用提供了统一、一致的视图。用户可以在浏览器中自定义报表,格式灵活,元素丰富,而且可以通过Query Studio进行即席的开放式查询。Cognos还具有独特的穿透钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)等功能,使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解,有效地将各种相关的信息关联起来,使用户在分析汇总数据的同时能够深入到自己感兴趣的细节数据中,以便更全面地了解情况,做出正确决策。 Cognos强大的报表制作和展示功能能够制作/展示任何形式的报表,其纯粹的Web界面使用方式又使得部署成本和管理成本降到最低。同时Cognos还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。进行合作,推动以AIX 技术为中心的创新,同时开发、测试和使用各种用于支持AIX 操作系统的新应用和中间件。 2 . Cognos 8 的功能组件介绍: Cognos 8 的功能组件分为服务器端和客户端两部分,服务器端是基于SOA构架的Cognos 8服务,以Web Service的方式接受和处理用户请求;客户端程序是开发人员使用,用于构建CUBE 和Cognos 8元数据的工具,它们分别是:TransFormer 和FrameWork。用户制作、浏览报表和业务分析都是基于浏览器的,不需要安装插件或客户端,在浏览器端,用户可以访问以下组件:Report Studio 、Query Studio 、Analysis Studio。同时用户也可以基于Cognos提供的SDK开发应用直接访问Cognos 8 服务。 Cognos 8产品结构图:

Cognos报表开发技巧整理

1实现行属性的目录树展开功能。 1.1在LIST报表中的现实 1.拖入6个字段,并且对产品系列、产品类型分组,如下图: 2.添加产品系列、产品类型的页眉

3.拆分产品系列、产品类型的单元格 4.将产品系列、和产品类型的汇总拖到产品名称处

5.删除产品系列,产品类型 6.打开列表的锁

7.按住CTRL,拖动数量、单位成本、单价到产品类型,产品系列的页眉处 8.在report page中插入HTML控件,然后拷贝如下代码进去,下面代码主要是定义了两个函数,一个用于目录树的展开与缩进,另一个用于页面初始化时隐藏一些数据,下面代码只支持到2层目录,更详细的含义可参考的在交叉表中实现目录树功能的注释。 代码如下: 8.拖入一个HTML项目插入到运营商单元格前面,修改成数据项,并修改表达式 运营商中HTML控件代码如下: ''+ [orc82].[D_OPERATIONROLES].[运营商所在地] + '' 9.删除掉运营商所在地 10.设置运营商的填充为左侧20 11.增加图片 增加树形的图片,空白图片到cognos相应的图片目录 12. 增加列表页脚 (注意,这里的HTML控件一定要放入表页脚里面,否则不能实现隐藏数据的功能),并拷贝HTML代码,删除掉列表页脚几个字 代码如下:

Cognos.Tableau.Smartbi开发报表简单对比

Cgonos/Tabeau/SmartBI报表开发对比 1Cognos版 1.1页面最终效果 1.2报表服务 1.2.1开发流程 1.创建数据模型FM 通过Framework Manager创建数据模型,生成数据包后发布到服务器,数据源需要通过cognos管理门户事先创建。 2.选择相应的报表数据包,开发报表

3.预览页面效果 需要运行才能查看报表效果,对于报表运行结果,暂不支持任何操作,对于点击表头排序、固定列标题等功能,需要通过第三方开发进行整合,比如javascript语言或者通过cognos SDK进行二次开发实现。 4. 开发完成后保存即可发布到服务器。 只能通过URL访问,暂无其他方式。 1.2.2工具对比 1.工具相对专业化,包括过滤、排序等简单操作,一般业务人员无法快速操作,且cognos不支持在生成的页面进行个性化操作,只能通过编辑页面进行修改。 2.满足复杂数据的处理,同时支持调用存储过程等。 3.支持复杂报表的开发。 2Tableau版 2.1页面最终效果

2.2报表服务 2.2.1开发流程 1.新建Oracle数据源,配置服务器和服务(支持的数据源服务器类型最多)。 2.选择相应的数据表或视图,建立连接关系 3.创建工作表,设置筛选器,样式,层级结构等等

4.预览页面效果 结果页面可进行如下操作:点击表头排序、编辑列名、隐藏列、逐层钻取。 5.发布服务器,通过URL跟其他应用集成,也可用Tableau Reader进行阅读。 2.2.2工具对比 1.所见即所得,报表开发简洁,从创建数据源到表关系创建到最后的报表开发完成,发布到服务器,整个流程统一通过Tableau桌面端完成。 2.更灵活的展现效果,用户可在浏览过程中根据自己喜好进行效果编辑。3.数据处理功能相对薄弱,但支持数据提取。 4.对于复杂的报表,需要创建大量的工作表和数据源(一个工作表只能有一个图元),而对于cognos却能够在一个报表页面,通过一个数据源实现。

最新Cognos8开发示例

Cognos8开发示例 1 2 报表开发示例 3 数据准备: 4 准备业务元数据->分主题建目录->建立表连接->数据处理->发布数据5 包 6 一使用FM组织数据 导入业务元数据,同《cognos使用指南_多维分析.DOC》之使用FM制作IQD 7 8 文件的1-6步; 9 1、可以新建一文件夹,专门存放某一报表所需的query subject; 10 11 2、在此文件夹下创建query;

12 13 方法一:在现有模型下直接拖拽字段; 14 15 从不同的表里拖入想要的字段;

16 17 进入“Test-》Test sample”可以测试数据是否准确; 18 19 注意:如果用到的表之间没关联,则会出现如下错误; 20 21 解决办法:两两表间分别建立连接; 22 比如:dimclass与dimrisk是一对多的关系:

23 24 而dimrisk与dimkind也是一对多的关系: 25 再test,OK。 26 27

28 方法二:手工写SQL; 29 2、选data source项; 30 31 选择已经建好的data source,可以随意添加几个字段,可以不加过滤及表间32 连接条件,直接完成,点开新建的query,修改sql语句; 33 34 35 3、建一主表,方法同上。打包发布即可。 36 37

二把cube作为数据源生成报表 38 39 打开analysis studio,选择一个cube数据包,拖拽出想要的数据,选择“文40 件-》在report studio中打开”,进而调整整体图表布局; 41 42 打开后,如下图所示;

相关主题