【译】Tablix指南----通向报表服务的阶梯系列(四)
?? “Ah ha,發(fā)現(xiàn)你了!”你的經(jīng)理突然從桌子后面的假花旁冒出來,發(fā)出勝利的叫聲。你沮喪地轉(zhuǎn)過頭看著經(jīng)理。
?? “我已經(jīng)創(chuàng)建了一個基本報表,并抓取了一些數(shù)據(jù),我正打算-”你在他打斷你之前快速的解釋著。
??? “趕緊做完就好,大BOSS需要這個報表,越快越好”留下這些話后,你的經(jīng)理揚(yáng)長而去。
????? 你心情沉重的坐下,打開SQLServerCentral.com,又到了讀本系列文章的時候了。本篇文章闡述如何分組信息,調(diào)整動態(tài)列和行分組以及在Reporting Service中使用Tablix。
?
Table + Matrix + List = Tablix
??? Tablix是SSRS展示數(shù)據(jù)的工具。SQL Server Reporting Services 2008之后才有的報表項。由三個之前具有相似性的報表項組成:表、矩陣、列表。Tablix的視圖如圖4-1所示。
???
??? 圖4-1.Tablix視圖
?
??? 你并不能在Business Intelligence Development Studio (BIDS)的工具箱中找到Tablix工具。取而代之的是,你可以在圖二分別看到表、矩陣和列表項,無論你將這三個項中的哪個項拖入報表,報表服務(wù)其實使用的都是Tablix。
???
???? 圖4-2.工具箱中展現(xiàn)Tablix模板
???? 注意:如果你在BIDS中看不到工具箱,點擊視圖->工具箱選項或者按快捷鍵Ctrl + Alt + X.在工具箱中,所有的報表項都放在“報表項”頭下。
???? 下面我們來看第一個tablix模版:表
?
表
??? 表是一個可以展示分組和聚合后數(shù)據(jù)的簡單對象。如果數(shù)據(jù)包含的列是固定的,則可以使用表項。讓我們從將”表”拽到報表上開始,在上一章中我們已經(jīng)設(shè)置了數(shù)據(jù)集,這里直接為表使用這個數(shù)據(jù)集。每一個表只能從一個數(shù)據(jù)集中抓取數(shù)據(jù)。你可以從屬性窗格中->DataSetName屬性的下拉列表中選擇數(shù)據(jù)集。屬性窗格如圖4-3。
???
???? 圖4-3.屬性窗格和DataSetName屬性
?
??? 現(xiàn)在我們可以使用數(shù)據(jù)集中的字段來涉及表了,我們可以通過如下幾種方式來在表中插入字段:
- ??? 從報表數(shù)據(jù)窗格中拽入字段
- ??? 從每一個格子中右上角的下拉列表中選擇字段,如圖4-4所示
- ??? 在每個格子的屬性窗格里進(jìn)行選擇
???
??? 圖4-4.表字段的選擇
?
??? 使用那種方式設(shè)置字段并不重要,一個簡單表布局如圖4-5所示。
???
??? 圖4-5.簡單的表布局
?
分組
??? Tablix可以通過每一個“詳細(xì)信息”分組來顯示表。“詳細(xì)信息”組為我們提供了一個了解分組原理的基本概念。每一次報表服務(wù)看到一個唯一行,它都會創(chuàng)建一個詳細(xì)信息組。與這個原理相同,每一個所創(chuàng)建的分組都對唯一值再次創(chuàng)建一個詳細(xì)信息組,下面我們來通過實例闡述這個概念。
??? 在分組窗格中。在SSRS2008之前的版本中,你可以在表和矩陣的屬性窗格中看到這個窗格,而在之后的版本中,你直接在BIDS的底部就能看到這個窗格,如圖4-6所示。
???
???? 圖4-6.行和列的分組窗口
?
???? 因為我們在表模版上工作,讓我們來創(chuàng)建一個行組。點擊行組窗格下的詳細(xì)信息右邊的下拉箭頭,你會看到多個選項,包括”添加組”。選擇添加組->父組選項,然后選擇分組的條件列。如果需要添加組頭和組尾,選擇對應(yīng)的Checkbox.完成的截圖如圖4-7所示。
???
??? 圖4-7.完成的Tablix組窗口
?
??? 當(dāng)你點擊完成后,你可以在表設(shè)計界面中看到如圖4-8所示。
???
???? 圖4-8.分組后的表設(shè)計
?
??? 你可以在組頭或組尾加入聚合函數(shù)或敲入一個標(biāo)題來描述這一列。下面通過一個表達(dá)式來創(chuàng)建一個累加聚合。右鍵表格右下角處于行和列最后的那個單元格,右鍵點擊文本單元格屬性,在值那一欄填入:=SUM(Fields!TotalDue.Value),如圖4-9所示。
???
??? 圖4-9 文本框?qū)傩?/p>
?
???? 在開始運(yùn)行報表之前,讓我們來看一下Tablix的矩陣模版。在討論矩陣之前我們首先討論分組是因為這是理解表和矩陣之前區(qū)別的關(guān)鍵點。接下來我們來看矩陣。
?
矩陣(Matrix)
???? 和表類似,矩陣也有對行或列進(jìn)行聚合分組的功能。分組后的結(jié)果在x軸和軸上進(jìn)行增長。創(chuàng)建列組和行組的方法很類似,唯一的區(qū)別是對屬性的設(shè)置一個在行組窗格,一個是在列組窗格。下面例子是使用矩陣的報表按照不同月和銷售地區(qū)對銷售報表進(jìn)行匯總的例子。如圖4-10所示。
???
???? 圖4-10. 矩陣的布局
?
列表(List)
??? 列表在討論tablix時經(jīng)常會被遺忘因為它實在是太簡單了。數(shù)據(jù)集中的每一行都會在列表中生成一行和一列。如果你需要在報表中創(chuàng)建一個不受限于當(dāng)前格式元素,你可以使用列表。你可以在列表中鍵入任何文本框來滿足最終用戶所希望的布局。
?
格式(Formatting)
??? 報表的最終用戶通常都希望數(shù)據(jù)以既定的格式顯示。因為格式所應(yīng)用的最小單元是文本框。所以你可以通過對表格,矩陣和列表來設(shè)置格式從而應(yīng)用到tablix。在對我們已經(jīng)創(chuàng)建好的基于表的報表中,我們對列排序規(guī)則和字體屬性做一些改變。
?
列排序
??? 幾乎每一張報表都需要應(yīng)用列排序從而將數(shù)據(jù)以既定的排序展示。通過點擊tablix的任何一出,在出現(xiàn)灰色框中點擊右鍵,選擇Tablix屬性,如圖4-11所示。
???
??? 圖4-11.選擇Tablix屬性窗口
?
??? 在屬性窗口中,在左邊的選項中選擇排序。選擇希望按照規(guī)則排序的列并選擇排序順序為A-Z,也就是升序。完成的窗口如圖4-12所示。記住分組本身也帶有排序,如果你運(yùn)行報表后發(fā)現(xiàn)排序有問題,檢查以確保其他類型的排序不會覆蓋掉當(dāng)前的排序。
???
????? 圖4-12.完成后的排序窗格
?
字體屬性
??? 下一步,讓我們來看字體屬性。這個設(shè)置可以讓字體更加好看。選擇所有列的頭那行,在屬性窗格中,選擇字體屬性->FontWeight屬性->粗體選項,如圖4-13所示。
???
??? 圖4-13.在屬性窗格中的字體屬性選擇
?
??? 在所有的這些準(zhǔn)備,分組和格式設(shè)置完成后,我們迎來了完成的報表。點擊預(yù)覽標(biāo)簽,可以看到如圖4-14所示。
???
??? 圖4-14.最終的報表視圖
?
接下來:飯后甜點
??? 現(xiàn)在,我們已經(jīng)完成了報表服務(wù)中報表的一些核心概念的學(xué)習(xí)。我們在表和矩陣中展示數(shù)據(jù),并對其進(jìn)行分組,排序和設(shè)置格式。這可以讓我們的報表滿足大多數(shù)用戶的需求。因為我們總是想給用戶最棒的產(chǎn)品,接下來我們學(xué)習(xí)如何在報表中添加圖表和地圖使我們給大BOSS的報表看上去充滿活力。我將在本系列文章的下一篇以圖表展示未知中進(jìn)行闡述。
總結(jié)
以上是生活随笔為你收集整理的【译】Tablix指南----通向报表服务的阶梯系列(四)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实用脚本(二)—— 使用xl
- 下一篇: Chirp信号基础知识及matlab实现