SQL Server數(shù)據(jù)庫(kù)中正確利用示例報(bào)表服務(wù)報(bào)表
在此篇文章里我們主要向你提供的是在SQL Server數(shù)據(jù)庫(kù)中利用的示例報(bào)表實(shí)際操作流程,以便使你熟悉在基于SQL Server報(bào)表服務(wù)中所展示的更加高級(jí)的圖形設(shè)計(jì)器特性,微軟給廣大公眾提供了三個(gè)基本的示例報(bào)表類型。
***個(gè)在SQL Server中利用AdventureWorks數(shù)據(jù)庫(kù)作為一個(gè)數(shù)據(jù)源,它需要單獨(dú)下載。第二個(gè)演示了點(diǎn)對(duì)點(diǎn)報(bào)表功能(還利用從AdventureWorks數(shù)據(jù)庫(kù)獲得的數(shù)據(jù)),但是,因?yàn)樗鼘?duì)報(bào)表生成器(在SQL Server 2報(bào)表服務(wù)中沒(méi)有)的依賴,它不在我們的討論范圍內(nèi)。
第三個(gè)是用于SQL Server數(shù)據(jù)庫(kù)管理(讓你能夠在任意數(shù)據(jù)庫(kù)中生成schema和表目錄)并依賴于master數(shù)據(jù)庫(kù)作為它的數(shù)據(jù)源。
上面所提到的所有示例都是可免費(fèi)下載的,基于Windows Installer的包SQLServerSamples.msi(在x32和x64位版本中可用)。調(diào)用這個(gè)包會(huì)觸發(fā)InstallShield驅(qū)動(dòng)向?qū)?,提示你接受Microsoft Permissive License和指定一個(gè)目標(biāo)文件夾(它默認(rèn)設(shè)置為Program Files\Microsoft SQL Server\90\Samples)。
安裝進(jìn)程在這個(gè)地址下創(chuàng)建一個(gè)目錄結(jié)構(gòu),在Reporting services\Report Sample文件夾下包含三個(gè)子文件夾叫做AdventureWorks Sample Reports、Report Builder Sample Reports和 Server Management Sample Reports(又分為Execution Log Sample Reports和 Server Management Sample Reports)。你可以從商業(yè)智能開發(fā)套件中訪問(wèn)存儲(chǔ)在這些路徑下的任何報(bào)表(通過(guò)在File菜單選擇Open->Project/Solution…項(xiàng)并指向一個(gè)合適的解決方案或項(xiàng)目文件)。
讓我們?cè)敿?xì)看看AdventureWorks示例報(bào)表(在你詳細(xì)分析它們之前,推薦你參考MSDN Library中包含的描述AdventureWorks schema的文檔,這將幫助你理解它的表的結(jié)構(gòu)和目的,以及它們之間的關(guān)系)。重要的是要注意到,其中一些包含(有時(shí)看起來(lái)是)不穩(wěn)定的輸出,這可能是不必要的混淆引起的。我們將簡(jiǎn)短地分辨它們,但是為了正確地介紹它們的缺點(diǎn),我們首先需要逐步進(jìn)行它們的部署(這反過(guò)來(lái)要求修改它們的默認(rèn)配置)。
通過(guò)從商業(yè)智能開發(fā)套件(記住,如果你使用的是Windows Vista,你應(yīng)該以提升的權(quán)限來(lái)啟動(dòng)它)里打開Adventure Works Sample Reports解決方案(AdventureWorks Sample Reports.sln)來(lái)啟動(dòng)。
當(dāng)這個(gè)解決方案和它的項(xiàng)目被加載后,你應(yīng)該注意到一列預(yù)先定義的報(bào)表(Company Sales.rdl、 Employee Sales Summary.rpl、Product Catalog.rpl、Product Line Sales.rpl、Sales Order Detail.rpl、Sales Reason Comparisons.rpl和 Territory Sales Drilldown.rpl)以及共享數(shù)據(jù)源(AdventureWorks.rds和AdventureWorksAS.rds)出現(xiàn)在Solution Explorer窗口中。為了正確地部署所有這些報(bào)表,你需要調(diào)整項(xiàng)目的Property Pages對(duì)話框中General部分的TargetServerURL項(xiàng)的值,將它從http://localhost/reportserver改為http://localhost/ReportServer$instance_name(instance_name代表存放報(bào)表服務(wù)器數(shù)據(jù)庫(kù)的SQL Server數(shù)據(jù)庫(kù) 實(shí)例的名稱)。
此外,你應(yīng)該將OverwriteDataSources屬性設(shè)置為True。而且,你還需要改變指向AdventureWorks.rds共享數(shù)據(jù)源的本地AdventureWorks數(shù)據(jù)庫(kù)的連接字符串,將它從原來(lái)的Data Source=(local);Initial Catalog=AdventureWorks改為Data Source=localhost\instance_name;Initial Catalog=AdventureWorks。
當(dāng)這些修改被應(yīng)用時(shí),你可以使用Solution Explorer窗口中報(bào)表的上下文敏感菜單中的Deploy選項(xiàng)發(fā)布單個(gè)報(bào)表到本地報(bào)表服務(wù)器網(wǎng)站上(作為結(jié)果,它們將出現(xiàn)在SQL Server報(bào)表服務(wù)首頁(yè)的AdventureWorks Sample Reports文件夾下)。
有問(wèn)題的報(bào)表包括Product Line Sales和Territory Sales Drilldown。***個(gè)本來(lái)是要提供前五名銷售人員和商店(在產(chǎn)品分類和子類的基礎(chǔ)上,在一個(gè)任意階段中),以及相應(yīng)的圖表、表、多值參數(shù)、計(jì)算字段和鉆取鏈接(這些特性的***一個(gè)要求部署Employee Sales Summary報(bào)表)。
不幸的是,用于計(jì)算銷售數(shù)量的基本查詢是不正確的。修正這個(gè)問(wèn)題涉及到根據(jù)T-SQL語(yǔ)句修改TopEmployees和TopCustomers數(shù)據(jù)集(通過(guò)商業(yè)智能開發(fā)套件的設(shè)計(jì)器界面中的Data標(biāo)簽頁(yè))。為
了能夠顯示其它有缺陷的報(bào)表(它的***視圖顯示給你在每一個(gè)基本方面的整個(gè)銷售數(shù)字,以及向下鉆取到銷售人員和訂單數(shù)字級(jí)別,還有向下鉆取到每個(gè)訂單細(xì)節(jié)的能力),你需要部署Territory Sales Drilldown和Sales Order Detail報(bào)表(因?yàn)樗鼈儽绘溄恿?。在這種情況下的主要問(wèn)題是Territory Sales頁(yè)面上顯示的單個(gè)訂單銷售數(shù)字和相應(yīng)的Sales Order Detail間的差異。
顯然,這個(gè)問(wèn)題是由于AdventureWorks數(shù)據(jù)庫(kù)中的錯(cuò)誤而導(dǎo)致的(顯然在SQL Server 2008版本中的示例報(bào)表已經(jīng)解決了這些問(wèn)題)。盡管有這些缺陷,示例AdventureWorks報(bào)表提供了一個(gè)機(jī)會(huì)來(lái)熟悉一些更加高級(jí)的特性,例如有條件的格式化(Product Catalog、Territory Sales)、鉆取和向下鉆取(Company Sales, Employee Sales Summary、Product Line Sales、Sales Order Detail、Territory Sales)、多數(shù)據(jù)集(Employee Sales Summary)、動(dòng)態(tài)或多值參數(shù)(Employee Sales Summary, Product Line Sales)、或文檔地圖(Product Catalog)。
現(xiàn)在讓我們將注意力轉(zhuǎn)移到服務(wù)器管理報(bào)表。正如基于AdventureWorks的示例,它們是作為SQLServerSamples.msi Windows Installer包的一部分來(lái)安裝的,所以假如你已經(jīng)將它安裝在放置SQL Server 2005 Express Edition的機(jī)器上的話,那么你應(yīng)該可以在Reporting Services\Report Samples\Sever Management Sample Reports子文件夾下找到它們(在Program Files\Microsoft SQL Server\90\Samples文件夾下)。
Server Management Sample Reports解決方案包含兩個(gè)我們感興趣的報(bào)表。(你還能在那看到Execution Log報(bào)表,它用于分析報(bào)表服務(wù)器的執(zhí)行日志數(shù)據(jù),這不在我們的討論范圍內(nèi),因?yàn)樗鼈円蕾囉诩煞?wù),而它是在SQL Server數(shù)據(jù)庫(kù)中沒(méi)有的)。***個(gè),叫做Schema Table Extended Properties,列出任意選定數(shù)據(jù)庫(kù)的schema、表、字段和它們的屬性。第二個(gè),標(biāo)簽名為Columns by Table and Schema Subreport,它實(shí)際上是***個(gè)所使用的一個(gè)子報(bào)表(它使得你可以顯示任意表中一個(gè)字段的屬性,只要你指定它的名稱、schema和存放它的數(shù)據(jù)庫(kù))。
為了部署和檢查它們,通過(guò)商業(yè)智能開發(fā)套件的File 菜單中的Open->Project/Solution…項(xiàng)加載Server Management Sample Reports.sln來(lái)啟動(dòng)。與以前一樣,你將需要修改Server Management Sample Reports項(xiàng)目屬性(通過(guò)它的Property Pages對(duì)話框),包括TargetServerURL(它應(yīng)該從它的默認(rèn)改為http://localhost/ReportServer$instance_nam)和OverwriteDataSources屬性(它應(yīng)該設(shè)置為True)。
此外,你需要改變master.rds共享數(shù)據(jù)源的連接字符串,由Data Source=(local);Initial Catalog=master改為Data Source=localhost\instance_name;Initial Catalog=master。
作為結(jié)果,一個(gè)標(biāo)簽為Server Management Sample Reports的新文件夾應(yīng)該出現(xiàn)在你的SQL Server數(shù)據(jù)庫(kù)報(bào)表服務(wù)首頁(yè)中。當(dāng)你顯示了它的內(nèi)容,你將可以在那里看到Schema Table Extended Properties報(bào)表,它允許你選擇一個(gè)你想顯示其schema和字段的目標(biāo)數(shù)據(jù)庫(kù)(從DatabaseName列表框)。在選擇了之后,你可以以向下鉆取的方式探究每個(gè)架構(gòu)和字段(到它的屬性級(jí))。
【編輯推薦】