XML - 数据交换管理/商业智能和 XML
外观
上一章 | 下一章 |
← 命名空间 | 将 MySQL 转换为 XML → |
在本节结束后,对于单个实体,您将能够
- 为 Cognos ReportNet 创建完全用 XML 编写的报表规范
- 更新 XML 格式的报表规范。
- 识别报表规范中的四个主要部分
在 Cognos ReportNet 中创建的每个报表都具有用 XML 编写的规范,因此您可以使用 XML 编辑器对其进行自定义,或者完全用 XML 创建报表规范。
保存报表并再次打开后,报表规范将从内容存储中提取,如您在图 28.1 中所见。当您编辑它时,更改将保留在客户端机器上,直到您保存它。当您保存报表时,内容存储会更新。
图 28.1 报表规范流程
您可以看到图 28.2 中的 Web 报表示例,该报表可以从 XML 文件生成;
图 28.2 报表示例
报表规范由四个主要部分组成。
- 报表部分
- XML 标记
- <report>
- <modelConnection>
- XML 标记
- 查询部分
- XML 标记
- <querySet>
- XML 标记
- 布局部分
- XML 标记
- <layoutList>
- XML 标记
- 变量部分
- XML 标记
- <variableList>
- XML 标记
至少,报表规范必须包含 <report></report> 标记,以及创作语言和模式信息。
报表部分中的规范标题包含有关以下信息
- 创作语言,“en-us” 表示美式英语。您可以使用英语以外的语言进行报表
- 命名空间:http://developer.sample.com/schemas/report/1
- 包名:GSR
- 模型版本:@name='model'
<report xml:lang="en-us" xmlns="http://developer.sample.com/schemas/report/1/"><!--RS:1.1--> <modelConnection name="/content/package[@name='GSR']/model[@name='model']"/> |
查询部分包含有关以下信息
- 立方体元素由 <cube></cube> 标记表示,其中可能包含
- 事实 (<factList></factList>)。国家、姓名和姓氏是事实。
- 维度 (<dimension></dimension>) 由级别 (<level></level>) 组成
- 过滤器 (<filter></filters>) 由条件 (<condition></conditions>) 组成。国家是本报表的过滤器,等于德国。
- 表格模型包含在 <tabularModel></tabularModel> 标记中。
- 每个表格模型都包含数据项 (<dataItem></dataItem>),由完全限定的表达式 (<expression></expression>) 组成
- 报表中的查询部分包含在 <querySet></querySet> 标记中。
- 查询部分可以包含多个查询,每个查询都包含在 <BIQuery></BIQuery> 标记中。
向报表规范添加页面
- 您可以向报表添加多个页面。每个页面都包含在 <pageSet> </pageSet> 标记之间。
- 每个页面都可以包含
- 主体(必需)
- 页眉
- 页脚
- 每个页面都可以包含
向报表添加布局对象
- 向报表布局添加一个或多个页面后,您可以添加各种布局对象,例如
- 文本项
- 块
- 列表
- 图表
- 交叉表
- 表格
指定布局对象的样式
- 您可以使用层叠样式表 (CSS) 属性来确定布局中对象的样式。
- CSS 值在 <style></style> 标记之间指定。
- CSS 值可以应用于字体大小、背景颜色等。
向报表添加变量
- 您可以在报表规范的 <variableList></variableList> 标记之间指定变量,每个变量都包含 <expression></expression> 标记之间的表达式。
- 我们可以使用包含可能值列表的变量 1,例如值:fr 用于使用法语;
<variableList> <variable name=”Variable1” type=”locale”> <expression>ReportLocale()</expression> <variableValueList> <variableValue value=”fr”/> </varialeValueList> </variable> </variableList> |
以下是图 28.3 中报表的完整 XML 文件
<report xml:lang="en-us" xmlns="http://developer.sample.com/schemas/report/1/"> <!--RS:1.1--> <modelConnection name="/content/package[@name='GSR']/model[@name='model']"/> <querySet xml:lang="en-us"> <BIQuery name="Query1"> <cube> <factList> <item refItem="Country" aggregate="none"/> <item refItem="First name" aggregate="none"/> <item refItem="Last name" aggregate="none"/> </factList> </cube> <tabularModel> <dataItem name="Country" aggregate="none"> <expression>[gsrs].[addr].[Country]</expression> </dataItem> <dataItem name="First name" aggregate="none"> <expression>[gsrs].[Person].[First name]</expression> </dataItem> <dataItem name="Last name" aggregate="none"> <expression>[gsrs].[Person].[Last name]</expression> </dataItem> <filter> <condition>[gsrs].[addr].[Country]='Germany'</condition> </filter> </tabularModel> </BIQuery> </querySet> <layoutList> <layout> <pageSet> <page name="Page1"> <pageBody> <list refQuery="Query1"> <listColumnTitles> <listColumnTitle> <textItem> <queryItemRef refItem="Country" content="label"/> </textItem> </listColumnTitle> <listColumnTitle> <textItem> <queryItemRef refItem="First name" content="label"/> </textItem> </listColumnTitle> <listColumnTitle> <textItem> <queryItemRef refItem="Last name" content="label"/> </textItem> </listColumnTitle> </listColumnTitles> <listColumns> <listColumn> <textItem> <queryItemRef refItem="Country"/> </textItem> </listColumn> <listColumn> <textItem> <queryItemRef refItem="First name"/> </textItem> </listColumn> <listColumn> <textItem> <queryItemRef refItem="Last name"/> </textItem> </listColumn> </listColumns> <style> <CSS value="border-collapse:collapse"/> </style> <XMLAttribute name="RS_ListGroupInfo" value=""/> </list> </pageBody> <pageHeader> <block class="reportTitle"> <textItem class="reportTitleText"> <text/> </textItem> </block> <style> <CSS value="padding-bottom:10px"/> </style> </pageHeader> <pageFooter> <table> <tableRow> <tableCell> <textItem> <expression>AsOfDate()</expression> </textItem> <style> <CSS value="vertical-align:top;text-align:left;width:25%"/> </style> </tableCell> <tableCell> <textItem> <text>- </text> </textItem> <textItem> <expression>PageNumber()</expression> </textItem> <textItem> <text> -</text> </textItem> <style> <CSS value="vertical-align:top;text-align:center;width:50%"/> </style> </tableCell> <tableCell> <textItem> <expression>AsOfTime()</expression> </textItem> <style> <CSS value="vertical-align:top;text-align:right;width:25%"/> </style> </tableCell> </tableRow> <style> <CSS value="border-collapse:collapse;width:100%"/> </style> </table> <style> <CSS value="padding-top:10px"/> </style> </pageFooter> </page> </pageSet> </layout> </layoutList> </report> |
节摘要:由于报表规范遵循 XML 规则,因此它有利于创建和更新标记文件 |
最终用户希望用日语阅读报表,因此您必须添加日语变量。