Cognos 10 体验魅力,第 4 部分: 第一张复杂报表

熟悉 Report Studio

Report Studio 是用来制作更加精细的专有报表的工具。IBM Cognos Report Studio 是一个基于 Web 的报表创建工具,专业报表创建者和开发人员可使用此工具针对多个数据库创建复杂的、具有多页并且可以进行多项查询的报表。使用 Report Studio,您可以创建公司所需的任何报表,如发票报表、财务报表以及每周销售和库存报表。报表中可包含任意多个报表对象(例如图表、交叉表和列表)以及非  BI 组件(例如图像、徽标及可链接至其它信息的动态嵌入应用程序)。

IBM Cognos Report Studio 用户界面有两个窗格、一个资源管理器栏和一个工作区,可以帮助您创建报表:

  • 可插入对象窗格包含您可以添加到报表的对象。将对象拖动到工作区即可将它们添加到报表。可插入对象窗格包含以下选项卡:
    • “源”选项卡包含来自为报表所选定的数据包中的项目,例如数据项和计算。
    • “数据项”选项卡介绍了在报表中创建的查询。
    • “工具箱”选项卡包含可以添加到报表的各种对象,例如文本和图形。
  • 属性窗格列出您可以为报表中的对象设置的属性。指定属性的值后,请按 Enter 键、单击其它属性或保存报表以确保保存该值。
  • 资源管理器栏上的按钮可以处理报表的不同部分:
    • 将指针悬停在“页面资源管理器”按钮上可以转至特定的报表页面或提示页面。
    • 将指针悬停在“查询资源管理器”按钮上可以处理查询。
    • 将指针悬停在“条件资源管理器”按钮上可以处理变量。
  • 工作区是设计报表的区域。

使用 Report Studio 可创建以下类型的报表:

  • 面向广泛读者的报表;
  • 存在足够长的时间来满足更改要求和数据的需求的报表;
  • 需要详细控制外观的报表。

您现在应该对 Report Studio 并不陌生:

  • 您在“第一次安装”中用 Report Studio 制作了第一张简单报表;
  • 您在“第一张交互式离线报表”中用 Report Studio 制作了第一张交互式离线报表;
  • 您在“第一个自助式设计分析”中用 Report Studio 打开了您的第一个自助式设计分析。

在这部分内容中,您会学习用 Report Studio 制作设计复杂报表。




第一张复杂报表

您的目的是为了制作标准的客户发票报表,以便当订单处理以后发给您的客户。为此您的第一张复杂报表包含了非常丰富的内容,这张复杂报表做完后的效果如 图 18所示。

  • 您的报表中要包含提示页面,以便选择客户和销售代表。
  • 您要让新订单的数据在新的一页上。
  • 您的报表抬头上要有公司的商标和地址。
  • 您的报表要有发票号码、日期、页码等标准信息。
  • 发票正文要有客户名称、销售人员、订购方法、发货日期、条款等内容。
  • 发票的列表里面要有编号、产品说明、销售单价、数量、价格的信息。
  • 还有要页脚、税率计算、结束语等内容。

提示页面

使用“创建提示页面”工具可以快速向报表添加过滤器和提示,提示页面类似于报表页面。您可以插入图形和文本并应用格式。

通过下面的步骤,会在这张报表中创建三个查询,您可以点击“查询资源管理器”后进行查看。其中第一个查询是在第 2 步中创建,后两个查询分别在第 6 步和第 7 步中通过“值提示”来创建的。

  1. 在开始菜单中启动 IBM Cognos BI Developer Edition,运行 Developer Edition Manager,在确保左侧的服务都正常的情况下,点击右上角的启动,选择 Report Studio。在“Cognos > 公共文件夹 > 示样 > 模型”路径下,选择“ GO 数据仓库 ( 查询 ) ”数据包,进入 IBM Report Studio 后选择“新建”,报表类型选择“空白”。
  2. 点击“查询资源管理器”,把“可插入对象”的“查询”拖拽到工作区,如图 1 所示。 

    图 1. 插入查询
     

  3. 双击“查询 1”,在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“销售订单”下的“订单号”,拖动到数据项中。
  4. 点击“页面资源管理器”,选择“提示页面”,把“可插入对象”的“页面”拖拽到工作区,如图 2 所示。 

    图 2. 插入提示页面
     

  5. 双击“提示页面 1”,把“工具箱”中的“值提示”拖动到工作区,如果找不到“值提示”,在空白处右键选择“所有工具箱项目”。
  6. 创建新参数对话框中填入“Retailer”,在数据包项目中选择“销售和市场营销(查询) > 销售(查询)> 零售商 > 零售商名称(多脚本语言)”,如图 3 所示。点击下一步后完成。 

    图 3. 创建过滤器
     

  7. 重复第 5 步和第 6 步插入“值提示”,新参数是“SalesRep”,创建参数化过滤器在数据包项目中选择“销售和市场营销(查询) > 销售(查询)> 员工(按区域)> 员工姓名(多脚本)”。点击下一步两次直到完成。

强制分页

您可以创建简单的页面分页符,或创建高级页面集合以将页面与查询结构相关联,从而强制分页。

  1. 将指针悬停在“页面资源管理器”按钮上,然后单击“报表页面”。在“可插入对象”窗格的“工具箱”选项卡上,将“页面集合”对象拖动到“报表页面”窗格。
  2. 在“属性”窗格中,将“查询”属性设置为要与页面集合关联的查询,即“查询 1”。定义页面集合的分组结构,在“属性”窗格中,双击“分组与排序”属性。在“数据项”窗格中,将“订单号”数据项拖动到“组”窗格中的“组”文件夹。如图 4 所示。 

    图 4. 页面集属性
     

  3. 您想把您要让新订单的数据在新的一页上,需要将包含明细的页面插入“明细页面”文件夹。明细页面是根据您在下面的步骤中按其分组的项目而重复的页面。您把“页面 1”拖拽到“明细页面”文件夹,同时在“属性”窗格中,将把“页面 1”的“查询”属性设置为“查询 1”。如图 5 所示。 

    图 5. 明细页面
     

表格

您可以在报表中使用表格来控制对象的显示位置。表格可以插入报表中的任意位置,例如页眉、页脚或页面正文。创建表格后,在单元格中插入对象。这部分的效果如图 6 所示。


图 6. 报表抬头
 
  1. 双击“页面 1”,在“可插入对象”窗格中,单击“工具箱”选项卡。将“表格”拖动到报表。在“列数”和“行数”框中,键入表格的列数 2 和行数 1。
  2. 再把“表格”拖动到左边单元格,键入表格的列数 1 和行数 5。这样左边的单元格五行用来放置公司的商标和地址。
  3. 在“可插入对象”窗格中,单击“工具箱”选项卡将“图像”对象左侧最上边的单元格,然后双击此对象。在“图像 URL”对话框中,键入要插入的图像的 URL “http://localhost:9300/p2pd/samples/images/logo.jpg”。
  4. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象分别拖动至左侧下面 4 个单元格。分别键入文本“Great Outdoors 公司”、“南京东路 3755 号”、“上海 中国”和“(021)8888-8888”,然后单击“确定”。
  5. 再把“表格”拖动到右边单元格,键入表格的列数 1 和行数 4。这样右边的单元格四行用来放置发票信息。
  6. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象分别拖动至右侧 四个单元格。第一行键入文本“发票”,然后单击“确定”。在工具栏的尺寸选择字体为“24 pt”,并且设置为粗体。第二行键入文本“发票号 :”,字体“10 pt”。第三行键入文本“日期 :”,字体“10 pt”。第四行键入文本“页码 :”,字体“10 pt”。
  7. 在“可插入对象”窗格中的“数据项”选项卡上,把“查询 1”的“订单号”拖动到文本“发票号 :”之后。
  8. 在“可插入对象”窗格中的“工具箱”选项卡上,将“日期”拖动到文本“日期 :”之后。
  9. 在“可插入对象”窗格中的“工具箱”选项卡上,将“页码”拖动到文本“页码 :”之后。
  10. 通过点击最外面表格左上方的三个小红点,选择最外侧的表格,在左下角的属性窗口设置表格属性,给表格的下方添加实线边框,宽度为 1pt,如图 7 所示。 

    图 7. 表格边框
     

  11. 由于刚才绘制的边框距离左边表格最后一行太近,您可以通过填充功能增加空隙。您点击左边表格的三个小红点,选择左边表格,按住 Shift 再点击左边表格的下方空白处。在左下角的属性窗口设置填充属性,下方的填充设置为 10pt,如图 8 所示。 

    图 8. 填充
     


块是可向其中插入其他对象的容器。您接下来利用块制作报表的上部区域,这部分的效果如图 9 所示。


图 9. 块
 

  1. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“块”拖动到报表区域,放置在报表抬头下方。再拖动另一个“块”到报表区域,同样放置在报表抬头下方。
  2. 单击“工具箱”选项卡。将“表格”拖动到第一个“块”中,在“列数”和“行数”框中,键入表格的列数 5 和行数 2。
  3. 由于新添加的表格和前面的边框太近,您可以通过填充功能增加空隙。您先选择“表格”,再选择“块”,在左下角的属性窗口设置填充属性,上方的填充设置为 20pt。
  4. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象分别拖动至第一行的五个单元格中。键入文本分别为“客户名称”、“销售人员”、“订购方法”、“发货日期”和“条款”。
  5. 通过点击表格左上方的三个小红点,选择整个表格,点击工具栏上的“居中”,让文本居中。在左下角的属性窗口设置表格属性,给表格的添加实线边框,宽度为 1pt。
  6. 按住 Shift 选择第一行的五个单元格,在左下角的属性窗口设置颜色和背景,修改“背景颜色”为“银色”;设置字体和文本,修改“字体”为“粗体”。
  7. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“零售商”下的“零售商名称”,拖动到 “客户名称”下方的单元格中。
  8. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“员工(按区域)”下的“员工姓名”,拖动到 “销售人员”下方的单元格中。
  9. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“订购方法”下的“订购方法类型”,拖动到 “订购方法”下方的单元格中。
  10. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“时间(发运日期)”下的“日期(发运日期)”,拖动到 “发货日期”下方的单元格中。
  11. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象分别拖动到 “条款”下方的单元格中,键入文本为“30 天付款”。

 

 

列表

使用列表可以显示数据库中的明细信息,列表以行和列来显示数据。每个列显示数据库中一个数据项的所有值或基于数据库中数据项的某个计算的所有值。您接下来利用列表来制作报表主题,效果如图 10 所示。


图 10. 列表
 

  1. 选择下面的目前空白的“块”区域,在左下角的属性窗口设置填充属性,上方的填充设置为 20pt。
  2. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“列表”拖动到空白的“块”区域。
  3. 通过点击列表左上方的三个小红点,选择列表,在左下角的属性窗口找到“数据”下面的“查询”,选择“查询 1”。
  4. 在左侧的可插入对象中,选择“数据项”,把“查询 1”的“订单号”拖拽到列表中。
  5. 在左侧的可插入对象中,选择“来源”,分别把下面的查询项拖拽到列表中。
    • 销售和市场营销(查询) > 销售(查询) > 产品 > 代码 > 产品编号
    • 销售和市场营销(查询) > 销售(查询) > 产品 > 产品
    • 销售和市场营销(查询) > 销售(查询) > 产品 > 产品说明
    • 销售和市场营销(查询) > 销售(查询) > 销售资料 > 销售单价
    • 销售和市场营销(查询) > 销售(查询) > 销售资料 > 数量
    • 销售和市场营销(查询) > 销售(查询) > 销售资料 > 收入
  6. 选择“订单号”数据项,在工具栏选择“分组 / 取消分组”。这将列表报表中的“产品编号”数据项分组以删除重复值。
  7. 按住 Shift 选择列表的标题行,在左下角的属性窗口设置颜色和背景,修改“背景颜色”为“银色”;设置字体和文本,修改“字体”为“粗体”。
  8. 要处理某些对象的内容,您必须首先解锁对象。单击工具栏上的“解锁”按钮。
  9. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“块”拖动到“产品说明”数据项右边。再拖动另一个“块”到“产品说明”数据项右边。注意放置到标题下面的数据行,而不是列表的标题行。
  10. 把“产品”数据项拖动到第一个“块”,把“产品说明”数据项拖动到第二个“块”。
  11. 单击工具栏上的“锁定”按钮。
  12. 删除列表的“产品”列。
  13. 选择“产品编号”标题,在左下角的属性窗口找到“文本来源”,现在是“数据项标签”,把它改为“文本”,然后在文本中输入“编号”。
  14. 选择“收入”标题,在左下角的属性窗口找到“文本来源”,现在是“数据项标签”,把它改为“文本”,然后在文本中输入“价格”。

 

 

页脚

添加页眉或页脚以使报表更易阅读。页眉和页脚是您可以在其中添加对象(例如文本、图像)和报表表达式(例如当前日期和页码)的容器。您可以将页眉和页脚添加到页面和列表中。您接下来制作好的页脚效果如 图 14所示。

  1. 选择“价格”标题,单击工具栏上的“汇总”按钮,选择“总计”。
  2. 单击工具栏上的“页眉和页脚”按钮,选择“列表页眉和页脚” ,清除“整体页脚”的选择。
  3. 因为“订单号”不需要在列表中显示,仅仅需要引用位于关联查询而不在布局中使用该数据项,您需要在查询范围中指定数据项列表以选定对象关联。通过点击列表左上方的三个小红点,选择列表,在左下角的属性窗口找到“数据”下面的“属性”,选择“订单号”,如图 11 所示。 

    图 11. 列表属性
     

  4. 在列表中选择“订单号”,然后在工具栏上选择“剪切”按钮。

    “剪切”和“删除”有什么区别?

    • 如果要从报表中删除数据项,请选中数据项并单击“删除”按钮。
    • 要从报表中删除数据项而在“数据项”选项卡上保留该数据项,请改为单击“剪切”按钮。

  5. 选择“< 订单号 > - 总计”和“< 总计(收入) >”,在左下角的属性窗口找到“类”,选中“全局类”中的“列表的列正文单元格”后通过向右箭头进行添加,如图 12 所示。这一步骤是指定要应用于对象的类,该类提供默认样式。如果应用多个类,比如这里的“列表的列正文单元格”与“列表外部页脚单元格”,则应用时会将所有类中的样式属性合并在一起。 

    图 12. 对象的类
     

  6. 选择“< 订单号 > - 总计”,在“结构”菜单下,找到“页眉和页脚”,选择“在下方插入列表行单元格”,设置为“3”后确定,如图 13 所示。 

    图 13. 页脚中添加行
     

  7. 要合并页眉或页脚中的多个单元格,请从“结构”菜单中,单击“页眉和页脚”,然后单击“合并列表行单元格”。接下来您选择刚才添加的第一行的前面三个单元格,进行单元格合并。接着把剩下两行执行同样的操作。
  8. 单击工具栏上的“解锁”按钮。
  9. 发票上不需要“< 订单号 > - 总计”,只需要“< 总计(收入) >”。您在汇总行中选择“订单号”数据项,然后在工具栏上点击“删除”按钮。确认汇总行已经删除了“< 订单号 > - 总计”,还保留“< 总计(收入)>”。
  10. 选中刚才删除“< 订单号 > - 总计”的单元格,从“结构”菜单中,单击“页眉 & 页脚”,然后单击“分割列表行单元格”。这样就把它分割为跨越列表的多个单元格。
  11. 选择前面三个单元格,从“结构”菜单中,单击“页眉和页脚”,然后单击“合并列表行单元格”。
  12. 在“可插入对象”窗格中,单击“工具箱”选项卡。选择“块”拖动到刚才合并的单元格中。
  13. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象拖动刚才的“块”中,键入文本“请汇款至 Great Outdoors 公司”,然后单击“确定”,再设置字体为粗体。
  14. 将“文本项目”对象拖动到下面的三个单元格中,分别键入文本“1. 只有质量问题才允许退换货”、“2. 退货商家收取 15% 的库存费用”、“3. 逾期贷款收取 18% 的利息”。
  15. 剩下右边的四个单元格,从上到下,依次将“文本项目”对象拖动过去,分别键入文本“小计”、“增值税”、“消费税”、“合计”。为了美观,可以通过工具栏上的“居右”按钮让这四个单元格右对齐。
  16. 选择刚才输入的文本“合计”,在“结构”菜单下,找到“页眉和页脚”,选择“在下方插入列表行单元格”,设置为 “1”后确定。
  17. 选择刚才添加的五个单元格,从“结构”菜单中,单击“页眉和页脚”,然后单击“合并列表行单元格”。
  18. 将“文本项目”对象拖动到合并的单元格中,输入“感谢您的惠顾”,调整字体格式为“18 pt”、粗体、斜体。 

    图 14. 页脚
     

计算

向报表中插入查询计算可以添加值基于计算的新行或列。

  1. 在“可插入对象”窗格中,单击“工具箱”选项卡,将“查询计算”拖到报表文本项目“增值税”旁边的单元格。在“名称”框中,为表达式键入一个有意义的名称为“增值税”。在“可用组件”窗格中,定义计算,双击“销售和市场营销(查询) > 销售(查询) > 销售资料 > 收入”,然后在后面添加“* 0.05”最后的表达式定义为“[ 销售 ( 查询 )].[ 销售资料 ].[ 收入 ] * 0.05”。点击“验证”,没有错误后确定。
  2. 在“可插入对象”窗格中,单击“工具箱”选项卡,将“查询计算”拖到报表文本项目“消费税”旁边的单元格。在“名称”框中,为表达式键入一个有意义的名称为“消费税”。在“可用组件”窗格中,定义计算,双击“销售和市场营销(查询) > 销售(查询) > 销售资料 > 收入”,然后在后面添加“* 0.08”最后的表达式定义为“[ 销售 ( 查询 )].[ 销售资料 ].[ 收入 ] * 0.08”。点击“验证”,没有错误后确定。
  3. 在“可插入对象”窗格中,单击“工具箱”选项卡,将“查询计算”拖到报表文本项目“合计”旁边的单元格。在“名称”框中,为表达式键入一个有意义的名称为“合计”。在“可用组件”窗格中,定义计算,双击“销售和市场营销(查询) > 销售(查询) > 销售资料 > 收入”,然后在后面添加“* 1.13”最后的表达式定义为“[ 销售 ( 查询 )].[ 销售资料 ].[ 收入 ] * 1.13”。点击“验证”,没有错误后确定。
  4. 为了美观,可以通过工具栏上的“居中”按钮让刚才的三个查询计算“< 增值税 >”、“< 消费税 >”、“< 合计 >”居中显示。
  5. 按住 Ctrl 选择查询计算“< 增值税 >”、“< 消费税 >”、“< 合计 >”,设置为美国货币。在“属性”窗格中,双击“数据格式”属性,在“格式类型”下,单击要应用于对象的格式类型,如图 15 所示。 

    图 15. 数据格式
     

  6. 单击工具栏上的“锁定”按钮。
  7. 保存报表在“我的文件夹”下,命名为“第一张复杂报表”。

成果

第一张复杂报表的设计结果如图 16 所示。


图 16. 报表设计
 

运行报表后,在提示页面里面选择零售商名称为“Gone Bush Supplies”,员工姓名为“Dave Smythe”。


图 17. 提示页面
 

可以看到运行结果如图 18 所示,您可以通过翻页看到每个订单都是单独一页。


图 18. 运行结果
 

总结

Report Studio 是专业的报表制作工具。报表制作人员可以通过它制作各种类型的报表,可以分页面设计,每页可以有多个查询,每个查询可以连接多个数据源,甚至异构数据源。报表的内容采用的是化繁为简的方式,可以精确控制报表中每一个对象的各种属性。

在本系列教程的“第一次安装”中,您安装了样例数据和样例档案。您可以在“公共文件夹”选项卡中找到这些样例报表。在不同的数据包下面都有不同的样例报表,比如在“Go 数据仓库 ( 查询 )”数据包下就有以下样例报表。您可以依次打开来进行更深一步地研究和学习。

  • 分类群发的销售绩效报表
  • 员工费用
  • 医疗保险
  • 养老金计划
  • 正常工作时间工资
  • TOC 报表
  • 总收入 ( 按国家 / 地区 )

你可能感兴趣的:(ETL)