cognos报表—知识整理
- 格式:doc
- 大小:2.23 MB
- 文档页数:25
Cognos报表—知识整理一、提示页自动加载1、功能需求背景华中电网概况报表首页需要有日期参数,但是每次进入首页时出现日期选择框影响美观,所以为其增加提示页面,但根据要求不能增加提示页面,所以设计出提示页面自动加载。
通俗的讲就比如:出现提示页面,电脑自动点击确定进入主页面……2、功能实现方法步骤1:新建提示页面,新页面中内容包括:onload项目、完成按钮、日期提示框以及针对提示框的html项目。
如下图1图1步骤2:Onload项目中函数:详见图1<body onload= "initMon()"><script language="javascript">function initMon(){promptButtonFinish();}</script>二、进入页面后自动刷新一次1、功能需求背景电网概况报表电厂容量分析主页面中,需要自动根据日期刷新一次页面(具体原因参见三、特殊的日期过滤)2、功能实现方法步骤1:Onload项目加载函数,如图2图2步骤2:Js中函数新加一行代码,如图3图33、可参考报表电网概况报表>>1.电厂容量分析三、特殊的日期过滤1、功能需求背景电网概况中发电情况包括水、火、风三种发电方式,在数据库中体现即为水(火、风)电机组管理(参数)表。
根据用户要求,需要对全网水(火、风)当年新投机组容量等进行数据统计,2、设计思想1)将水、火、风机组管理表分别对应查询中取相同数据项,为U联做准备。
2)在三个查询中新建“投运年”数据项,取得机组投运年份。
表达式:substr(【投运日期】,1,4)3)将三个查询进行U联,给U联后的查询设置过滤条件,如图4图43、出现问题分析根据2、设计思想中进行操作,报表验证报错,不能对substr进行集操作,经查询得知,dm 数据库不支持在两层(原层和U联层)查询中同时使用substr。
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说明),在逻辑层中不要建立逻辑表之间的关系。
如下图:4,物理层和逻辑层的建立是灵活的,上面说的只是简单的结构,可以根据需要建立多层次的名字空间,不同的名字空间定义不同的物理层和逻辑层。
1.3模型设计的一些技术要点1,首先要了解数据库表的定义和业务需求,以便将报表设计所关联的物理表引入到物理层中。
2,在物理层建立关系要清楚了解表中KEY值的定义和维表与中间表之间的关系,关系中的对应(1对多、多对多)要设置清楚,可以通过察看Determinants来决定,最好咨询数据库设计人员。
制作钻取(上钻与下钻)1,一般的维表不能实现上钻和下钻功能,所以可以建立具有层次的数据模型。
2,新建一张报表并插入一个交叉表。
3,将机构维数据(假设机构有4层次)作为行,日期维数据(假设日期分为年、月、日3种层次)作为列,收入作为度量值。
4,点击“data”菜单的”drill behavior”项,弹出对话框,如下图:5,在”allow drill_up and drill down”一栏中打上勾,默认为对所有数据都可上钻和下钻,如果想屏蔽某行或列数据的上钻或下钻,则可以在”disable drill-up for”或”disable drill-up for”项中对不要钻取的数据项进打勾。
6,运行报表,在要对进行上钻或下钻的数据项中点击右键,再选中相应上钻或下钻项。
报表之间对象的互相引用在一张报表中创建了一个控件后,可以在自身或其它报表中对它进行引用,引用方式有两种,一种是直接的关联引用,即被引用的控件的修改会影响到引用它的控件。
另一种是复制引用,不会产生关联,只是复制副本。
1,在一张报表中选中要被引用的的控件,然后在属性栏中在“名称”项中输入一个唯一的标识名。
2,在要引用它的报表,比如另一张报表中需要用到这个控件,在打开另一张表后,在控件面板中将Layout Component Reference控件拖到要插入的地方,在弹出对话框中选择“其它报表”项,然后选择刚才建立被引用控件的报表,这时可看到“可引用控件”栏中会显示刚才创建的控件,选中即可。
3,点击控件,可以属性栏中的“嵌入”选项中选择引用的类型,即前面介绍的两种类型。
类的应用在COGNOS系统报表工具中,可以利用类对报表的格式进行统一调整,类似于CSS的功能。
1,下面举例,对下报表的列表进行格式化,如下图:2,打开类编辑界面,新建一个类,并设置了背景颜色和前景颜色,用于格式化列表中的单元格,如下图:3,创建了类之后,然后在列表中应用该类,如下图:4,在属性“类”中选择刚才创建的类。
常用控件、功能、方法介绍1、页面:在COGNOS report studio系统中,页面分为两种,一种是报表页面,即是报表运行最后要显示数据的页面,是必需的。
另一种是提示页面,是为用户选择过滤条件提供的一个页面,如果报表中同时包含这两种页面,则运行后先显示提示页面,供用户选择条件后,再转到报表页面,而报表页面显示的数据则是经过从提示页面的选择条件过滤后的数据。
查看页面的情况可将鼠标放到“页面资料管理器”面板上,即弹出,如下图:2、查询:“查询”图标如下图:“查询”为数据的显示提供了一个结构,在报表中显示的数据是通过“查询”从数据源中获取数据的,类似于数据库中视图的概念,打开一个查询,结构如下图:左边红圈中是该查询中的数据结构,或理解为一个表中的字段,而右边红圈中是一些过滤的条件,类似于查询语句中的where句中的条件。
3、变量:分为三种变量,第一种是布尔变量,只有两种取值,第二种是字符串变量,可有多个取值,第三种是语言种类变量。
一般来说,前面两种用得比较多。
其实,这里“变量”的概念与提示页面中传给报表页面的“参数变量”是完全不同的,也和程序设计中的变量有所不同。
如下图:通常变量中有一个表达式,变量的取值就是根据表达式的结果等到的,如上图选中的是布尔变量,有“是”与“否”两个值。
例如表达式为“帐面收入“度量值>2000元,那么当结果为真是取值“是”,反之取“否”。
同理,在字符串变量中,各个取值是事先由用户输入的,这点与布尔变量不同,而表达式中的结果有可能与其中一个取值相同。
总的来说,通过“变量”可以控制控件、页面等的显示和隐藏,显示的样式等。
4、列表与交叉表:两者相同的地方就是都是用于显示数据,一般与“查询”联系起来,其实列表与交叉表只是提供一种显示的格式,而真正获取数据的还是“查询”。
两者不同的地方就是数据表达的形式不一样。
下面举个例,如下图:要显示的数据是:部门,产品,帐面收入。
分别用两种表显示,其实功能是一样的,只是表示的格式不同,交叉表交叉的单元格就是确定某一部门某一产品的帐面收入。
模型的物理和逻辑定义
1,模型定义的规范:将模型分为2个部分,分别为物理层和逻辑层,物理层为从数据源引入表的物理定义和连接关系,逻辑层为业务视角下的逻辑定义。
2,物理层的建立:根据数据分析,设计模型中需创建的物理表,以便尽可能的提高查询语句的运行效率(比较理想的结构是星形结构,一个中间表和多个物理维表)。
在根名字空间(和数据源同名)下,建立一个名为物理层的目录,在物理层文件夹下执行Run Metedate Wizard将数据源中相关的物理表引入这个目录,然后将这些表建立连接关系,建议不要有Orphan表。
如下图:
3,逻辑层的定义:在根名字空间下,建立一个名为逻辑层的目录,在逻辑层文件夹下生成Query Subject,Query Subject的字段都是根据业务逻辑从物理层从引入,建议字段名都为中文。
逻辑层中的表为事实表和维表的结构,在事实表中包含维度的编码值和指标的值,维表中包括每个维度上编码值和其名称的对应关系。
也可以根据需要建立Regular Dimension(3.4说明),在逻辑层中不要建立逻辑表之间的关系。
如下图:
层次的名字空间,不同的名字空间定义不同的物理层和逻辑层。
分页、1.拖一个一行两列的表格到报表画布中。
2.分别拖一个块对象到表格的每一列中。
3.拖一个交叉表到表格左边一列的块中。
4.拖入相应字段填充交叉表,在本例中,所用字段为cognos自带示样包中的Go Sales(query)--> Sales (query) 中的一些字段,具体如下图5.按住Ctrl键,同时点击所有的交叉表行,交叉表列以及交叉表度量,在属性窗格的字体和文本下设置空白属性为无换行,然后设置交叉表行标题的水平排列为居中。
6.复制交叉表,将其粘贴到表格右边一列的块中。
7.在属性窗格中,命名左边的交叉表为leftCrosstab,右边的交叉表为rightCrosstab。
8.隐藏左边交叉表leftCrosstab的交叉表列和交叉表度量,按住Ctrl键,点击左边交叉表的所有列和所有度量,在属性窗格中的方框对象下,设置方框类型属性为无。
同样地隐藏右边交叉表rightCrosstab的交叉表角和交叉表行。
9.分别拖两个HTML项目到表格右边列的块对象的两边,使块在HTML项目包裹之中复制下面的代码到前面的HTML项目中,该段代码中可以根据需要修改width的值,以适应度量区域的宽度:<div id="freeze" style=" overflow:auto; overflow-y: hidden; white-space:nowrap; width:500px;">复制下面的代码到后面的HTML项目中:</div>10.点击表格右边一列中的块对象,在属性窗格中的方框对象的填充属性中设置其下填充为14px,这样是为了保证滚动条没有挡住最下面的一条数据。
11.拖一个HTML项目到表格的下面,然后复制下面的代码到该HTML项目中,根据自己电脑分辨率的大小,需要修改代码中original_width的值:<script>var original_width = 1280; // Original screen width in which report was developedvar current_width = screen.width; // Detects width of the screenif(current_width != original_width){//Get width of the ‘right’ blockvar set_width = parseInt(document.getElementById("freeze").style.pixelWidth);if ((set_width + current_width – original_width) > 0){//Add the difference of current screen width and// original screen width to adjust the block sizeset_width = (set_width + current_width – original_width) +"px";document.getElementById("freeze").style.width = set_width;}}</script>12.选中表格左边一列,设置其水平排列为居右,垂直排列为顶部,在大小和溢出属性中设置其宽度为1%。
C o g n o s基础知识及操作入门1引言1.1 培训目标和目的基于Cognos进行分析模块的开发相关知识进行培训,包括Framework Manager、Report Studio、Transformer、Analysis Studio和Cognos安全。
1.2 主要内容1. 功能介绍和基本架构2. Framework Manager介绍3. Report Studio介绍4. Transformer介绍5. Analysis Studio介绍6.Cognos安全介绍2功能介绍和基本架构Cognos 8 的功能组件分为服务器端和客户端两部分,服务器端是基于SOA构架的Cognos 8服务,以Web Service的方式接受和处理用户请求;客户端程序是开发人员使用,用于构建CUBE和Cognos 8元数据的工具,它们分别是:TransFormer 和 FrameWork Manager。
用户制作、浏览业务分析都是基于浏览器的,不需要安装插件或客户端,在浏览器端,用户可以访问以下组件:Report Studio、 Analysis Studio、 Query Studio。
3Framework ManagerFramework是元数据模型工具。
元数据模型是对数据源的业务描述。
数据源可以是数据库或者Cognos Cube数据源。
我们的分析数据存储在数据集市里,数据集市采用的是Sybase IQ,Cognos 8 连接Sybase IQ是通过ODBC方式。
3.1 发布数据库模型1.建好后的数据库视图2.建好的“业务视图”3.创建一个Package,如图4.发布完成后,你就可以通过浏览器用Report Studio、Analysis Studio 访问这个Package作分析了。
3.2 发布Cube1.打开 Cognos FrameWork,新建一个Project2.选择Data Source下一步3.选择一个已经建好的Cube数据源,也可以新建一个Cube数据源。
Cognos报表—知识整理一、提示页自动加载1、功能需求背景华中电网概况报表首页需要有日期参数,但是每次进入首页时出现日期选择框影响美观,所以为其增加提示页面,但根据要求不能增加提示页面,所以设计出提示页面自动加载。
通俗的讲就比如:出现提示页面,电脑自动点击确定进入主页面……2、功能实现方法步骤1:新建提示页面,新页面中内容包括:onload项目、完成按钮、日期提示框以及针对提示框的html项目。
如下图1图1步骤2:Onload项目中函数:详见图1<body onload= "initMon()"><script language="javascript">function initMon(){promptButtonFinish();}</script>二、进入页面后自动刷新一次1、功能需求背景电网概况报表电厂容量分析主页面中,需要自动根据日期刷新一次页面(具体原因参见三、特殊的日期过滤)2、功能实现方法步骤1:Onload项目加载函数,如图2图2步骤2:Js中函数新加一行代码,如图3图33、可参考报表电网概况报表>>1.电厂容量分析三、特殊的日期过滤1、功能需求背景电网概况中发电情况包括水、火、风三种发电方式,在数据库中体现即为水(火、风)电机组管理(参数)表。
根据用户要求,需要对全网水(火、风)当年新投机组容量等进行数据统计,2、设计思想1)将水、火、风机组管理表分别对应查询中取相同数据项,为U联做准备。
2)在三个查询中新建“投运年”数据项,取得机组投运年份。
表达式:substr(【投运日期】,1,4)3)将三个查询进行U联,给U联后的查询设置过滤条件,如图4图43、出现问题分析根据2、设计思想中进行操作,报表验证报错,不能对substr进行集操作,经查询得知,dm数据库不支持在两层(原层和U联层)查询中同时使用substr。
Cognos报表汇总显示在报表上面详解
一直以来,Cognos Report Studio设计报表的时候,汇总默认显示在列表下方:
1如图,拖一个列表
2运行如下,数据显示正常按日期排序
3选中订单笔数、订单金额,添加自动汇总
4:运行,可见数据显示正确,在列表下面显示汇总
5:接下来如何让汇总显示在列表上面呢?进行如下操作
随意选择列表的任意单元格,创建页眉,如下图显示正确即可6:选中5中创建的页眉,分割单元格
7:分割成功,页眉显示三个单元格
8:将查询1中的订单笔数、订单金额分别拖入单元格中
9:报不能拖入的提示,这个时候就要对报表解锁,点击一下报表设计左上方的小锁即可
10:解锁成功,拖入成功
11:运行,查看结果正确
12:也可将自动汇总删除,显示为下面的效果。
基于IBM Cognos的高级报表制作技巧一、基于条件制作动态报表在使用报表时,用户往往希望某些“异常数据”能够突出显示,以便其更快速了解数据的总体状态。
如:性能数据一旦超过设定的阀值,则突出显示为黄色或者红色;在其他情况下显示为绿色。
IBM Cognos Report Studio 就提供了这样一种机制,在用户生成报表的时候,能够自动根据开发人员事先设定好的条件以及显示格式,对报表进行动态显示。
在制作基于条件的动态报表时,需要注意三要素。
第一个要素是条件,条件是用以判断的规则,通常为一个变量表达式及其一系列取值,如,上面的性能数据超过阀值。
第二个要素是用于和条件绑定的特定数据项 (Data Item),条件表达式只有和具体的数据项相关,以数据项运行时的取值作为条件输入,才能达到动态显示报表的目的,如,上面提到的性能数据。
第三个要素条件格式,即在条件表达式的某一特定取值下,报表显示的格式,如字体,颜色,阴影等。
总得来说,基于条件的动态报表的实现就是根据某特定数据项在报表运行时的取值,计算变量表达式的取值,并根据变量表达式的取值,决定报表的显示格式。
Cognos 支持三种类型的变量:字符串变量,布尔变量和语言变量。
以下的三小节将分别介绍使用这三种变量制作动态报表的过程。
使用字符串变量制作动态报表在 2.1 节中,我们将介绍简单的使用字符串变量的制作动态报表的过程。
我们希望实现根据项目状态的取值,动态显示报表中“项目状态”单元格的背景颜色:当项目状态为 R(Red) 时,项目状态单元格的背景显示为红色;当项目状态为 Y(Yellow) 时,项目状态单元格的背景显示为黄色;当项目状态为 G(Green) 时,项目状态单元格的背景显示为绿色;当项目状态为 C (Complete) 时,项目状态单元格的背景显示为蓝色。
步骤 1. 打开变量编辑窗口。
点击 Explorer Bar 上的 Condition Explorer。
Cognos 8.3 学习文档自己总结一、基本知识 (2)1.1cognos的定义: (2)1.2cognos的组织结构(组件或者叫做模块) (2)1.2.1在cognos connection门户下面的模块: (2)1.2.2不在cognos connection 这个门户下面的两个模块: (2)1.2.3按模块的作用对模块进行划分 (3)1.3各个模块的作用 (3)二、cognos connection门户的使用 (4)2.1在门户中可执行的操作 (4)2.2创建数据源 (4)2.2.1建立数据源的工具 (4)2.2.2建立数据源的方法 (4)2.2.3建立好数据源之后就是用Framework manager来整合数据。
(5)2.2.4主要注意的问题: (6)2.2.5生成cubes (7)2.2.6保存 (7)2.2.7将保存好的cub生成数据源 (8)2.2.8给生成的数据源建立一个数据包 (8)2.2.9用analysis studio对这个数据包进行分析 (8)三、知识的扩充: (9)3.1指标的计算 (9)3.2Transformer使用的三种类型的数据 (9)3.3如果在导表的时候,忘记了哪个表怎么办? (9)3.4在Framework里创建维度 (10)四.固定报表的生成 (10)4.1固定报表的生成 (10)4.2 用report studio生成固定报表 (10)4.3知识扩展 (11)4.4交叉报表 (11)4.5图表 (12)4.5.1常用的图表 (12)一、基本知识1.1cognos的定义:Cognos是一种集成的业务智能套件,它提供多种功能来帮助您了解组织的数据,组织中的每个人都可以使用cognos来查看或者创建业务报表,分析数据以及监控事件的度量标准,从而做出有效的业务决策;1.2cognos的组织结构(组件或者叫做模块)1.2.1在cognos connection门户下面的模块:Cognos connection是cognos的上网门户,Query Studio,Report Studio,Analysis Studio, Event Studio,cognos administration,的入口都被组织到了这个门户中,在该门户的启动标签的下拉菜单下;1.2.2不在cognos connection 这个门户下面的两个模块:Framework ManagerTransformer1.2.3按模块的作用对模块进行划分a)用于报表和查询的模块:query studioreport studioframework managerb)用于分析的模块:Analysis StudioTransformer1.3各个模块的作用Cognos connection-----cognos的web门户,进入各个操作模块的入口和报表保存的空间;Query studio------查询:自助报表生成工具(即席查询)用来创建基本的自助式即席报表Report studio-----查询:专有报表构筑工具(专业报表制作)用来构筑更完备的常用特有报表Framework manager----查询:业务数据组织工具(元数据模型开发)用来组织和发布元数据模型Analysis Studio----------分析:多维数据展示工具(多维分析)Transformer--------------分析:多维数据设计工具(制作多维模型)Cognos viewer:用来运行特有报表二、cognos connection门户的使用2.1在门户中可执行的操作在cognos connection门户中可以:a)创建和运行报表b)执行管理性任务,例如调度报表c)在公共文件夹或者我的文件夹中观看报表d)在query studio或者report studio中创建报表e)在analysis studio中进行多维分析2.2创建数据源2.2.1建立数据源的工具在门户中的cognos administration的配置中建立数据源,在这里还可以导入导出报表;2.2.2建立数据源的方法在启动下拉菜单中选择cognos administration—>选择配置—>选择数据库图标单击—>给这个数据源起名,单击下一步—>类型中选择oracle,单击下一步—>在sql*net连接字符串中填写实例名—>在用户ID下填写可以登录该实例的有效的用户名和密码(例如:orcl实例下有scott/tiger system/orcl 等;在rxxt实例下有scott/scott ods/ods 等;在oracle实例下有system/system)2.2.3建立好数据源之后就是用Framework manager来整合数据。
Cognos术语汇编累计(aggregate}包括汇总成分和FOR语句的计算,FOR语句指出了是按哪个组在进行累计运算。
累计计算与它在报表中的位置无关,与它所对应的组有关。
你可以进行下列累计运算:求和、最小值、最大值、平均值、计数、排序、百分位数、百分比、累积求和,累积最小值,累积最大值、累积平均值、累积计数和标准偏差。
累计也叫做汇总。
别名(alias)数据库表的另一个名称。
创建表的别名是为了建立自连接,你增加了同一表的两份复件,因此可以将一个表中的值联系起来,例如,当所有员工的数据都在一个数据库表中时,你可以查出哪个雇员为哪个经理工作。
你还可以建立表的别名,把它用于过滤器表达式,以创建表中部分数据的视图。
例如,你可以在“Manager/经理)”的姓名下面建立“Employee{员工)”表的别名,来创建每个经理雇员表的视图。
然后你可以在“Manager”表中使用过滤器表达式,创建该视图。
关联数据项(associated data item)链接到组数据项的数据项。
关联数据项压缩重复的数据值,但不会产生一个控制中断。
例如,如果“Customer Number(客户编号)”是组数据项,你可以把它规定为关联数据项而进行压缩。
这样,当“Customer Number”出现在报表中时,它只在组中出现一次。
把数据项标为关联会影响Impromptu汇总计算值。
另见组数据项自动关联(automatic association)新创建汇总组的关联。
创建汇总所在组的位置决定了它的关联。
如果使用“查询”对话框“数据”标签页中的“计算”按钮创建汇总,在运行查询前,汇总出现在“分组顺序”框的底部。
在运行查询以后,汇总出现在“分组顺序”对话框最后一组的下面。
如果将有自动关联的汇总移到报表中的新位置,它将出现在代表新位置的组下面。
另见汇总。
自动化(automation)另见OLE自动化。
位图(bitmap)由屏幕上像素组成、并以字节集形式存贮的图像。