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 規則,因此它有利於建立和更新標記檔案 |
終端使用者希望用日語閱讀報表,因此您必須新增日語變數。