基于IBM 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. 为穿透钻取重命名。