cognos基于条件制作动态报表.docx
《cognos基于条件制作动态报表.docx》由会员分享,可在线阅读,更多相关《cognos基于条件制作动态报表.docx(22页珍藏版)》请在冰点文库上搜索。
cognos基于条件制作动态报表
基于条件制作动态报表
在使用报表时,用户往往希望某些“异常数据”能够突出显示,以便其更快速了解数据的总体状态。
如:
性能数据一旦超过设定的阀值,则突出显示为黄色或者红色;在其他情况下显示为绿色。
IBMCognosReportStudio就提供了这样一种机制,在用户生成报表的时候,能够自动根据开发人员事先设定好的条件以及显示格式,对报表进行动态显示。
在制作基于条件的动态报表时,需要注意三要素。
第一个要素是条件,条件是用以判断的规则,通常为一个变量表达式及其一系列取值,如,上面的性能数据超过阀值。
第二个要素是用于和条件绑定的特定数据项(DataItem),条件表达式只有和具体的数据项相关,以数据项运行时的取值作为条件输入,才能达到动态显示报表的目的,如,上面提到的性能数据。
第三个要素条件格式,即在条件表达式的某一特定取值下,报表显示的格式,如字体,颜色,阴影等。
总得来说,基于条件的动态报表的实现就是根据某特定数据项在报表运行时的取值,计算变量表达式的取值,并根据变量表达式的取值,决定报表的显示格式。
Cognos支持三种类型的变量:
字符串变量,布尔变量和语言变量。
以下的三小节将分别介绍使用这三种变量制作动态报表的过程。
使用字符串变量制作动态报表
在2.1节中,我们将介绍简单的使用字符串变量的制作动态报表的过程。
我们希望实现根据项目状态的取值,动态显示报表中“项目状态”单元格的背景颜色:
当项目状态为R(Red)时,项目状态单元格的背景显示为红色;当项目状态为Y(Yellow)时,项目状态单元格的背景显示为黄色;当项目状态为G(Green)时,项目状态单元格的背景显示为绿色;当项目状态为C(Complete)时,项目状态单元格的背景显示为蓝色。
步骤1.打开变量编辑窗口。
点击ExplorerBar上的ConditionExplorer。
点击弹出页面中的Variables。
见图1。
图1.打开变量编辑窗口
步骤2.创建字符串变量。
将InsertableObjects中的字符串变量(StringVariable)拖拽到Variables部分。
见图2。
图2.创建字符串变量
步骤3.定义字符串变量表达式。
在将字符串变量拖拽到Variable的过程中,系统会自动弹出变量表达式编辑窗口。
在编辑窗口的左侧列出了可用于表达式的各种组件和数据项。
可以通过拖拽的方法选择所需的数据项组合成变量表达式。
以下的例子中,我们设定一个简单的变量表达式,这个变量表达式就等于报表中项目状态(PROJECT_STATUS)。
见图3。
图3.定义字符串变量表达式
步骤4.为字符串变量表达式赋值。
选中字符串变量String1,点击Values框下面的添加(Add)图标,在弹出的对话框中,输入希望添加的变量值,如R(Red),然后点击OK按钮。
此变量值就会被添加到Values的列表中。
可以通过重复以上步骤,添加其他变量值。
根据之前的描述,我们需要R(Red),Y(Yellow),G(Green),C(Complete)四个变量值。
见图4。
图4.为变量表达式赋值
步骤5.为字符串变量命名。
在页面左下角的变量属性编辑窗口中,可以对创建的字符串变量进行重命名。
在例子中,我们将变量重命名为Project_Status.见图5。
图5.为字符串变量重命名
步骤6.打开需要绑定变量的报表。
点击ExplorerBar上的PageExplorer,点击打开需要编辑的报表。
见图6。
图6.打开需要绑定变量的报表
步骤7.首先点击选中报表中需要与变量绑定的元素。
然后在左下角的属性编辑窗口中,点击StyleVariable一项的编辑按钮,在弹出的窗口中,选择之前定义好的条件变量Project_Status。
见图7。
图7.将报表中元素与字符串变量绑定
步骤8.为变量的不同取值设置相应的显示格式。
点击ExplorerBar上的ConditionExplorer,在变量Project_Status的取值列表中选择一个取值,如,点击G。
设置此取值对应的显示格式,如,Project_Status单元格背景颜色显示为绿色。
在选定取值的情况下设置的显示格式会自动和该取值相关联。
重复以上步骤,设置其他取值下的显示格式。
有一点需要注意,设置完特定的取值对应的显示格式后,选取None值,检查报表在不满足任何变量取值下的显示格式,确保报表可以正常显示。
见图8。
图8.为变量的不同取值设置相应的显示格式
使用布尔变量实现报表的动态显示
本节介绍如何利用布尔变量实现报表的动态显示。
我们希望根据用户输入的值,显示或者隐藏列表中的某一列。
在以下的例子中,报表按照部门展示各部门员工人数,包括Regular人数和Vendor人数。
用户运行报表的时候可以选择是否显示Vendor人数一列。
步骤1.创建用于接收用户输入值的参数。
在报表提示页面创建一个值提示,命名为Display_para,点击完成按钮。
见图9。
图9.创建参数
步骤2.创建布尔变量。
在提示页面选中值提示,在左侧的属性编辑窗口中,打开StaticChoices编辑窗口,在Variable的下拉菜单中,选择新建布尔变量。
并将布尔变量命名为Display_bool。
图10.创建布尔变量
步骤3.定义布尔变量表达式。
在可用参数(Parameters)列表中,选择在步骤2中创建的参数Display_para。
将Display_para拖拽到右侧的表达式定义(ExpressionDefinition)窗口中,并参照图11定义表达式内容。
图11.定义布尔变量表达式
步骤4.为布尔变量赋值。
布尔变量的两个Use值是Yes和No,表示布尔变量真假两种状态。
而我们在参数中显示给用户的则是Display值“要”和“不要”。
定义Use值和Display值的对应关系,使得布尔变量能接收用户选择的“要”或者“不要”,按照对应关系,转化成布尔变量Yes和No,即布尔变量真假两种状态。
图12.为布尔变量赋值
步骤5.将报表中的Vendor列与布尔变量绑定。
打开报表编辑页面,选中Vendor列,在列属性编辑窗口中,打开RenderVariable编辑窗,在Variable列表中选择之前创建的布尔变量Display_bool。
图13.将报表中指定的列与布尔变量绑定
步骤6.报表在不同选择值下的运行结果。
图14.报表在不同选择值下的运行结果
使用语言变量实现报表的全球化
2.3节介绍如何利用报表语言变量实现报表的多语言显示。
我们希望根据运行时用户的语言,实现同一报表对不同语言用户的不同显示:
当用户运行语言为中文时:
报表中的字符串显示为“中文”;当用户运行语言为英文时:
报表中的字符串显示为“English”。
步骤1.打开变量编辑窗口。
点击ExplorerBar上的ConditionExplorer。
点击弹出页面中的Variables。
步骤2.创建语言变量。
讲InerstableObjects中的语言变量(LanguageVariable)拖拽到Variables部分。
见图9。
图15.创建变量语言
步骤3.选择报表用户所在国家的语言。
如:
选择中文和英文。
见图10。
图16.选择语言
步骤4.为字符串变量命名。
在页面左下角的变量属性编辑窗口中,将变量重命名为Language_cn_en见图11。
图17.为语言变量重命名
步骤5.打开需要绑定变量的报表。
点击ExplorerBar上的PageExplorer,点击打开需要编辑的报表。
步骤6.首先选定报表中需要和语言变量绑定的字符串。
然后左下角的属性编辑窗口中,点击TextSourceVariable一项的编辑按钮,在弹出的窗口中,选择之前定义好的语言变量Language_cn_en。
见图12。
图18.将文本与语言变量绑定
步骤8.设置不同语言下的显示内容。
点击ExplorerBar上的ConditionExplorer,在VariableLanguage_cn_en的取值列表中选择一个取值,如,点击Chinese。
设置此取值对应的显示内容,如,”中文”。
重复以上步骤,设置其他语言下的显示内容。
见图13。
图19.设置不同语言下的显示内容
步骤9.设置运行时的语言。
点击运行按钮旁边的下拉列表,点击运行选项(RunOptions),在语言(Language)一栏中选择中文(Chinese)。
见图14。
图20.设置报表运行时的语言
步骤10.以不同的语言运行报表。
设置了报表运行时的语言后,点击运行按钮。
见图15。
图21.报表在不同语言下的运行结果
回页首
报表之间穿透钻取功能的实现
钻取功能是CognosReportStudio中的重要的功能之一,包括同一报表不同层次(Level)之间的钻取:
上钻(Drillup)和下钻(Drilldown),还不同报表之间的穿透钻取(Drillthrough)。
我们在第3部分要介绍的是不同报表之前的穿透钻取功能的实现。
在设置钻取功能之前,需要准备好两个报表:
概要报表和细节报表。
概要报表是钻取功能的起点,在概要报表的某些数据项上触发穿透钻取操作。
细节报表是钻取功能的终点,是原报表中某些信息更细节数据的显示。
如:
在概要报表中显示某部门总人数为100人,通过穿透钻取功能,在目标报表中可以查看这100人的详细信息。
从概要报表到细节报表的钻取过程中,通常伴有参数的传递。
如:
以上例子中的部门标识。
报表钻取功能的设置
步骤1.在ReportStudio中创建并保存概要报表和细节报表。
见图22.
图22.创建概要报表和细节报表
步骤2.在ReportStudio中打开概要报表。
概要报表显示各个部门人数的信息。
步骤3.选中概要报表需要钻取的位置。
如,部门维度。
见图23。
步骤4.点击页面左下角的属性的Drill-ThroughDefinitions一项,打开穿透钻取编辑窗口。
见图23。
图23.选中需要钻取的位置
步骤5.在弹出的钻取编辑窗口中,点击新建图标创建一个穿透钻取。
见图24。
图24.创建一个穿透钻取
步骤6.为穿透钻取重命名。
我们将新建的穿透钻取重命名为EmployeeList。
见图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商业智能系列软件不仅可以提供丰富的报表展示功能,基于条件生成动态报表,而且可以通过钻取操作将不同的报表关联起来,用户可以通过一个报表的信息关联查看其它相关报表的信息,从而以最快的速度找到相应的解决办法,避免了在不同的信息单元中进行无目的的切换。