跳轉至內容

XML - 資料交換管理/商業智慧和 XML

來自華夏公益教科書



上一章 下一章
名稱空間 將 MySQL 轉換為 XML



學習目標

[編輯 | 編輯原始碼]

在本節結束後,對於單個實體,您將能夠

  • 為 Cognos ReportNet 建立完全用 XML 編寫的報表規範
  • 更新 XML 格式的報表規範。
  • 識別報表規範中的四個主要部分

在 Cognos ReportNet 中建立的每個報表都具有用 XML 編寫的規範,因此您可以使用 XML 編輯器對其進行自定義,或者完全用 XML 建立報表規範。

報表規範流程

[編輯 | 編輯原始碼]

儲存報表並再次開啟後,報表規範將從內容儲存中提取,如您在圖 28.1 中所見。當您編輯它時,更改將保留在客戶端機器上,直到您儲存它。當您儲存報表時,內容儲存會更新。


圖 28.1 報表規範流程

您可以看到圖 28.2 中的 Web 報表示例,該報表可以從 XML 檔案生成;



圖 28.2 報表示例


報表規範結構中的 XML

[編輯 | 編輯原始碼]

報表規範由四個主要部分組成。

  • 報表部分
    • XML 標記
      • <report>
      • <modelConnection>
  • 查詢部分
    • XML 標記
      • <querySet>
  • 佈局部分
    • XML 標記
      • <layoutList>
  • 變數部分
    • XML 標記
      • <variableList>

至少,報表規範必須包含 <report></report> 標記,以及創作語言和模式資訊。


報表部分中的規範標題包含有關以下資訊


<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 規則,因此它有利於建立和更新標記檔案


終端使用者希望用日語閱讀報表,因此您必須新增日語變數。

華夏公益教科書