Cognos10 制作复杂格式报表
- 格式:docx
- 大小:342.25 KB
- 文档页数:13
提供用户选择条件的报表制作
1,新建一张报表,然后插入数据项(可自定义)。
如下图:
2,为显示期望的报表而制作条件,点击新建Prompt Page图标(位置大约在右上角),然后将会显示一张新页面,该页面即是Prompt Page页而不是原来的Page,例如通
过一个下拉列表框供用户选择后,报表的生成根据选择条件去显示出相应的信息。
3,在左边的工具箱中找到value prompt ,如下图:
双击或拖到右边,然后向导对话框会弹出,如下图:
框中”create a new parameter”意思是产生一个新的变量,由于显示条件选项与显示报表结果分别在不同页面,所以要用到参数变量来传递条件的值,单击下一步。
4,在”create a parameterized filter”项中的”Package item”一行中选择某个
表中的某个字段,其实该字段即为最后显示报表根据的条件。
例如字段为“姓名“,那么结果显示的报表将会显示与“姓名”某个人相匹配的记录,单击下一步,
5,在弹出的对话框中保持默认值,单击下一步。
6,在”create query”项中的”value to use”与”value to display”行中选择对应的字段,前者为报表显示所依据的条件字段,后者为控件中显示给用户看的字段,其实这两个字段是相对应的。
例如分别选择“姓名编号“与”姓名“,当然在报表页中也要相应有“姓名编号”这一项数据,相互对应。
单击完成。
7,运行查看结果。
当选择完后条件后,单击下方的完成按钮即可显示报表结果。
模型的物理和逻辑定义
1,模型定义的规范:将模型分为2个部分,分别为物理层和逻辑层,物理层为从数据源引入表的物理定义和连接关系,逻辑层为业务视角下的逻辑定义。
2,物理层的建立:根据数据分析,设计模型中需创建的物理表,以便尽可能的提高查询语句的运行效率(比较理想的结构是星形结构,一个中间表和多个物理维表)。
在根名字空间(和数据源同名)下,建立一个名为物理层的目录,在物理层文件夹下执行Run Metedate Wizard将数据源中相关的物理表引入这个目录,然后将这些表建立连接关系,建议不要有Orphan表。
如下图:
3,逻辑层的定义:在根名字空间下,建立一个名为逻辑层的目录,在逻辑层文件夹下生成Query Subject,Query Subject的字段都是根据业务逻辑从物理层从引入,建议字段名都为中文。
逻辑层中的表为事实表和维表的结构,在事实表中包含维度的编码值和指标的值,维表中包括每个维度上编码值和其名称的对应关系。
也可以根据需要建立Regular Dimension(3.4说明),在逻辑层中不要建立逻辑表之间的关系。
如下图:
层次的名字空间,不同的名字空间定义不同的物理层和逻辑层。
cognos计划表篇一:coGnoS报表开发流程报表开发a)模块概述B)处理流程和处理逻辑1)处理流程图B)处理逻辑如图:基本的处理流程有三个部分,元数据准备、模型设计、报表设计。
针对本系统的情况,报表的制作分为三类,从cUBE出报表、直接从事实表出报表、从指标出报表。
从制作方式来讲其中直接从事实表出报表、从指标出报表的方法是完全相同的。
首先形成元数据模型描述。
将数据库结构描述成需要的结构,然后将元数据发布到cognos服务器上。
同时cognos的oLaP转换工具通过元数据描述可以将数据库中数据按照业务主题的维度、指标等因素,转换成文件型的多维立方体。
这些多维立方体也作为数据源,通过元数据模型进行描述,发布到cognos服务器上。
然后通过浏览器访问发布在门户上的元数据,并在其基础上制作报表。
详细过程:1.元数据准备本阶段主要准备cognos与数据库之间连接的语义层,封装数据库底层表和字段,建立表连接,为后续开发人员和最终用户提供一个贴合报表需求的数据库结构视图,设计要点是结构清晰、效率优化。
本部分工作主要是使用cognosFrameworkmanager。
对于三种报表均需要这一步骤。
其主要流程有:a.添加数据源,导入物理层数据结构。
b.定义表连接关系。
c.在物理层的基础上创建表示层QUERY,这些QUERY的设计基于如何更方便在后面的步骤中制作报表,并且要充分考虑性能的优化。
如果是为从cUBE出报表的QUERY,需要按照该多维模型的需要去设计QUERY。
d.发布元数据。
如果是为从cUBE出报表的QUERY,可以发布为iQd的格式,或直接使用。
2.模型设计本阶段的主要工作是根据需求分析来规划oLaP应用主题,然后根据oLaP应用主题建立数据模型,对于出报表使用的模型,基本的设计思路就是使报表的行列科目可以用模型的维度中的类别或者类别的计算来描述。
这部分工作主要是使用cognosTransfomer来完成,开发人员在cognosTransformer提供的图形化设计界面中设计a.导入iQd数据源。
分页、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%。
1.针对list多表头开发的技巧。
多表头的正确的做法是表的结构要合理,用交叉表来实现,但对于list数据的实现的方法是用css层也可以。
本例的方法是手工制作表头,然后在解锁页面的情况下,用文本来实现表头的做法。
2.如何通过本地文件系统导入导出报表1 首先,注册1fa.dllCd “G:\cognos\c8\bin”Regsvr32 1fa.dll2 打开IE,点击菜单栏工具->Internet选项,在弹出的对话框中点击安全选项卡。
选中受信任的站点,点击站点按钮将BI服务器的地址添加到受信任站点中,同时将安全级别设置为低3 进入ResportStudio工具,点击工具->选项,在弹出的选项对话框中点击“高级选项”选项卡。
选中允许访问本地文件,点击确定3.隐藏报表右上角上图标的css1.,进入目录cognos\c8\templates\ps\portal2.,找到system.xml文件,然后打开在<system> 里添加如下内容,重启cognos<param name="ui_hide"><RV_HEADER/><RV_HEADER_TITLE/><RV_HEADER_MENU/><RV_TOOLBAR_BUTTONS_KEEP_THIS_VERSION/><RV_TOOLBAR_BUTTONS_HISTORY/><RV_TOOLBAR_BUTTONS_RUN/><RV_TOOLBAR_BUTTONS_DRILLDOWN/><RV_TOOLBAR_BUTTONS_DRILLUP/><RV_TOOLBAR_BUTTONS_GOTO/><RV_TOOLBAR_BUTTONS_ADD_THIS_REPORT/><RV_TOOLBAR_BUTTONS_WATCH_NEW_VERSIONS/><CRN_HEADER_OPTIONS_rs/><CRN_HEADER_OPTIONS_ps/><CRN_HEADER_OPTIONS_qs/></param>备注:目前发现效果出现,但是没有reportstudio的菜单。
为什么需要元数据模型您已经熟悉使用Cognos 来创建报表,进行自助式设计分析,然而这些需要的创建的应用都依赖于对应的元数据模型,用户使用元数据模型对他们的数据源进行分析和报告。
元数据模型是整个Cognos 应用的基础,它是一个或多个数据源中信息的业务演示。
基于这个基础,您才能够创建报表,进行自助式设计分析。
Cognos 能支持多种数据源,包括关系型的和多维的数据库。
元数据模型能隐藏底层数据源的复杂结构,可以更好地控制数据怎样展现给最终用户。
元数据的组织和扩展就需要用到Cognos 的元数据模型设计工具Framework Manger。
Cognos 的元数据模型设计工具Framework Manger 可以连接企业的各种数据源(包括关系型数据库,多维数据库,文本,OLAP 等),对数据结构进行描述,为Cognos 的多维分析,即席查询,报表等各种应用提供统一一致的数据视图,降低对企业数据访问的复杂性,同时提供对各种应用使用的结构的统一的管理。
Cognos BI 10 的最新版本中在Framework Manager 中增加了模型设计加速器,可以帮助开发人员更迅速、更轻松的创建新模型,并且模型优化时系统将充分利用知识库的经验。
它的主要功能是:∙帮助开发人员通过一个向导式的自动化工具,用快速简便的方法创造新的建模框架。
∙从一个包含了知识库经验的模型开始建模,并添加更复杂的模型需求。
∙通过知识库的经验指导建模和帮助纠正和验证的常见错误。
第一个元数据模型1.在开始菜单中启动IBM Cognos Framework Manager,选择Create a newproject using Model Design Accelerator。
模型设计加速器适合于基于关系型数据库星形模型的元数据建模。
星形模型是一种多维的数据关系,它由一个事实表(Fact Table)和一组维表(Dimension Table)组成。
报表制作-制作中国式复杂表格分组交叉复杂表格是中国式报表中通常的格式。
分组交叉复杂报表的制作关键是需要在交叉表格上进行分组,下面的例子中介绍如何通过思达企业报表Style Report制作以下的分组交叉表格。
上面的分组交叉表格是一份销售人员销售情况的汇总表,其中垂直方向是对销售收入来源进行的分组(包括销售地区、客户信息), 而水平方向中则是对销售收入和平均价格进行汇总。
下面具体介绍如何制作一个分组交叉表格。
1. 打开报表编辑器,在工具栏中选择“新建”。
2. 在“新建资源”对话框中,选择“空白表格式报表”。
3. 在报表的空白处点击右键菜单,选择“脚本”选项,然后打开报表脚本编辑窗口。
4. 在报表脚本编辑窗口的“装载”标签下输出脚本:var q1 = runQuery('customers');var q2 = runQuery('Order details');以上脚本是将两个报表数据查询('customers' 和'Order details')中的数据存放在q1,q2两个变量中。
5. 关闭报表脚本编辑窗口,在右侧的工具箱中选择”表格“组件,放入报表中。
6. 点击表格,打开右键菜单,在右键菜单中选择”表格->转换为公式表“。
7. 点击表格,打开右键菜单,在右键菜单中选择”属性”,打开表格属性窗口,选择“标题和结尾”标签,在表格行中输入“6”,在表格列中输入“4”,标题行为“0”。
下面的步骤中进行垂直方向上的数据分组设定,数据分组为两层分组,分别是地区和客户。
8. 点击表格中cell[2,0]单元格(第三行,第一列),在下方的表格属性窗口中选择“数据“标签,然后在公式输入框中输入以下脚本:toList(q1['state']);q1['state']是提取“customers”数据查询中的“state"列的数据,toList 函数的作用是获取q1['state']中没有重复记录的所有数据。
第 4 部分: 制作复杂报表 熟悉 Report Studio Report Studio 是用来制作更加精细的专有报表的工具。IBM Cognos Report Studio 是一个基于 Web 的报表创建工具,专业报表创建者和开发人员可使用此工具针对多个数据库创建复杂的、具有多页并且可以进行多项查询的报表。使用 Report Studio,您可以创建公司所需的任何报表,如发票报表、财务报表以及每周销售和库存报表。报表中可包含任意多个报表对象(例如图表、交叉表和列表)以及非 BI 组件(例如图像、徽标及可链接至其它信息的动态嵌入应用程序)。 IBM Cognos Report Studio 用户界面有两个窗格、一个资源管理器栏和一个工作区,可以帮助您创建报表: 可插入对象窗格包含您可以添加到报表的对象。将对象拖动到工作区即可将它们添加到报表。可插入对象窗格包含以下选项
卡: o “源”选项卡包含来自为报表所选定的数据包中的项目,例如数据项和计算。
o “数据项”选项卡介绍了在报表中创建的查询。
o “工具箱”选项卡包含可以添加到报表的各种对象,例如文本和图形。
属性窗格列出您可以为报表中的对象设置的属性。指定属性的值后,请按 Enter 键、单击其它属性或保存报表以确保保存该
值。 资源管理器栏上的按钮可以处理报表的不同部分:
o 将指针悬停在“页面资源管理器”按钮上可以转至特定的报表页面或提示页面。
o 将指针悬停在“查询资源管理器”按钮上可以处理查询。
o 将指针悬停在“条件资源管理器”按钮上可以处理变量。
工作区是设计报表的区域。
使用 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”,创建参数化过滤器在数据包项目中选择“销售和市场营销(查询) > 销售(查询)> 员工(按区域)> 员工姓名(多脚本)”。点击下一步两次直到完成。
强制分页 您可以创建简单的页面分页符,或创建高级页面集合以将页面与查询结构相关联,从而强制分页。 8. 将指针悬停在“页面资源管理器”按钮上,然后单击“报表页面”。在“可插入对象”窗格的“工具箱”选项卡上,将“页面集合”对象拖动到“报表页面”窗格。 9. 在“属性”窗格中,将“查询”属性设置为要与页面集合关联的查询,即“查询 1”。定义页面集合的分组结构,在“属性”窗格中,双击“分组与排序”属性。在“数据项”窗格中,将“订单号”数据项拖动到“组”窗格中的“组”文件夹。如图 4 所示。
图 4. 页面集属性
10. 您想把您要让新订单的数据在新的一页上,需要将包含明细的页面插入“明细页面”文件夹。明细页面是根据您在下面的步骤中按其分组的项目而重复的页面。您把“页面 1”拖拽到“明细页面”文件夹,同时在“属性”窗格中,将把“页面 1”的“查询”属性设置为“查询 1”。如图 5 所示。
图 5. 明细页面
回页首 表格
您可以在报表中使用表格来控制对象的显示位置。表格可以插入报表中的任意位置,例如页眉、页脚或页面正文。创建表格后,在单元格中插入对象。这部分的效果如图 6 所示。
图 6. 报表抬头
11. 双击“页面 1”,在“可插入对象”窗格中,单击“工具箱”选项卡。将“表格”拖动到报表。在“列数”和“行数”框中,键入表格的列数 2 和行数 1。 12. 再把“表格”拖动到左边单元格,键入表格的列数 1 和行数 5。这样左边的单元格五行用来放置公司的商标和地址。 13. 在“可插入对象”窗格中,单击“工具箱”选项卡将“图像”对象左侧最上边的单元格,然后双击此对象。在“图像 URL”对话框中,键入要插入的图像的 URL “http://localhost:9300/p2pd/samples/images/logo.jpg”。 14. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象分别拖动至左侧下面 4 个单元格。分别键入文本“Great Outdoors 公司”、“南京东路 3755 号”、“上海 中国”和“(021)8888-8888”,然后单击“确定”。 15. 再把“表格”拖动到右边单元格,键入表格的列数 1 和行数 4。这样右边的单元格四行用来放置发票信息。 16. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象分别拖动至右侧 四个单元格。第一行键入文本“发票”,然后单击“确定”。在工具栏的尺寸选择字体为“24 pt”,并且设置为粗体。第二行键入文本“发票号 :”,字体“10 pt”。第三行键入文本“日期 :”,字体“10 pt”。第四行键入文本“页码 :”,字体“10 pt”。 17. 在“可插入对象”窗格中的“数据项”选项卡上,把“查询 1”的“订单号”拖动到文本“发票号 :”之后。 18. 在“可插入对象”窗格中的“工具箱”选项卡上,将“日期”拖动到文本“日期 :”之后。 19. 在“可插入对象”窗格中的“工具箱”选项卡上,将“页码”拖动到文本“页码 :”之后。 20. 通过点击最外面表格左上方的三个小红点,选择最外侧的表格,在左下角的属性窗口设置表格属性,给表格的下方添加实线边框,宽度为 1pt,如图 7 所示。 图 7. 表格边框
21. 由于刚才绘制的边框距离左边表格最后一行太近,您可以通过填充功能增加空隙。您点击左边表格的三个小红点,选择左边表格,按住 Shift 再点击左边表格的下方空白处。在左下角的属性窗口设置填充属性,下方的填充设置为 10pt,如图 8 所示。 图 8. 填充
块 块是可向其中插入其他对象的容器。您接下来利用块制作报表的上部区域,这部分的效果如图 9 所示。
图 9. 块
22. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“块”拖动到报表区域,放置在报表抬头下方。再拖动另一个“块”到报表区域,同样放置在报表抬头下方。 23. 单击“工具箱”选项卡。将“表格”拖动到第一个“块”中,在“列数”和“行数”框中,键入表格的列数 5 和行数 2。 24. 由于新添加的表格和前面的边框太近,您可以通过填充功能增加空隙。您先选择“表格”,再选择“块”,在左下角的属性窗口设置填充属性,上方的填充设置为 20pt。 25. 在“可插入对象”窗格中,单击“工具箱”选项卡。将“文本项目”对象分别拖动至第一行的五个单元格中。键入文本分别为“客户名称”、“销售人员”、“订购方法”、“发货日期”和“条款”。 26. 通过点击表格左上方的三个小红点,选择整个表格,点击工具栏上的“居中”,让文本居中。在左下角的属性窗口设置表格属性,给表格的添加实线边框,宽度为 1pt。