版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本說明及是為了方便廣大 Reporting Servi者共同學(xué)習(xí),特投入大量心血及時間撰寫的系列課程,并免費提供均屬本人所有。閱讀。所有相關(guān)文檔本是由本人結(jié)合文檔及實際開發(fā)經(jīng)驗整理出的一部作品。為了方便大家及時學(xué)習(xí),會加倉促,難免有誤,敬請諒解快撰寫速度并定期本文檔受中民法保護,任何同意的和行為將,任何其他個人或組織均不得以將本文檔用作商業(yè)用途,違者。如果對本文檔有任何疑問及建議,請在博客 /stevenshi/留言或發(fā)郵件到sqlserve。1:sqlserver2008.(三)開發(fā)篇“表 控”件 容內(nèi)容補充上一篇講了 Tablix 控件的使用,這一篇將繼續(xù)講解控件的使用,在上一篇遺漏了一些
2、 Tablix 的功能沒有講到,在此先作一下補充:大家還記得在上篇中的實例(一)的效果嗎?有的朋友提出,Order Date 默認是由小到大排序的,如何讓用戶來控制呢?OK, 讓設(shè)置:來學(xué)下,其實這很簡單,也是在上篇中沒有介紹的功能。首先還是來看一下如何右鍵 OrderDate 的列標題,在菜單中選擇“文本框?qū)傩浴?。進入設(shè)置界面:2:sqlserver2008.選擇“交互式排序”選項卡,然后勾選“對此文本框啟用交互式排序”,選擇需要排序的組,再選擇排序依據(jù)。如果想把該規(guī)則應(yīng)用到其他地方,可以勾選“同樣將此排序應(yīng)用于以下位置中的其他組和數(shù)據(jù)區(qū)域”。點擊“確定”來看一下效果:大家可以看到在 Ord
3、er Date 多出了排序按鈕。點擊試試:3:sqlserver2008.可以看到訂單時間已經(jīng)從小到大,變成了從大到小。當然你也可以把排序功能應(yīng)用于其他的列,或分組,詳細數(shù)據(jù)等。再介紹一下“文本框?qū)傩浴贝翱诘摹安僮鳌边x項卡。如圖在此可以為該文本框啟用超接,點擊跳轉(zhuǎn)到明細報表。功能,可以轉(zhuǎn)到報表,書簽,URL。應(yīng)用場景比如在訂單 ID 上加入超鏈在后面的章節(jié)中會用到這些功能,大家可以先熟悉一下。至于其他的選項卡(數(shù)字,對齊,字體,邊框,填充),大家可以自行熟悉。下面再介紹一下組屬性:4:sqlserver2008.“分頁符”選項卡是做什么的呢?明知故問,肯定是分頁了,你可以設(shè)置分頁符放在組的開頭
4、還是結(jié)尾。5:sqlserver2008.組的排序依據(jù)默認和分組依據(jù)相同,當然你可以在此自己定義規(guī)則??梢娦钥纯春Y選器:在上一篇已經(jīng)介紹過, 再若要細化組中的數(shù)據(jù),可以創(chuàng)建篩選器表達式。報表將在應(yīng)用報表數(shù)據(jù)集、數(shù)據(jù)區(qū)域和父組的篩選器之后 ,才應(yīng)用組篩選器?!白兞俊边x項卡可以在此定義一些變量,供子組使用?!癆dvanced”選項卡可以創(chuàng)建遞歸結(jié)構(gòu)的組結(jié)構(gòu)。6:sqlserver2008.若要在 Tablix 數(shù)據(jù)區(qū)域中創(chuàng)建一個遞歸層次結(jié)構(gòu),必須將組表達式設(shè)置為指定子數(shù)據(jù)的字段,并將該組的 Parent 屬性設(shè)置為指定父數(shù)據(jù)的字段。數(shù)據(jù)集的數(shù)據(jù)要符合遞歸的要求,不要出現(xiàn)死循環(huán)。對Taxlix 的補
5、充就到這里,如果還有其他問題,歡迎給我留言或?!熬仃嚒钡氖褂孟旅孀尷^續(xù)學(xué)習(xí)新知識先學(xué)習(xí)矩陣的使用。上邊有了對“表”控件的理解,矩陣的使用學(xué)起來將會很輕松下面先來學(xué)下矩陣的基本功能。首先新建報表,新建數(shù)據(jù)集: SQL如下:SELECT year(OrderDate) as Oyear,PC.Name AS ProductCategoryName, PSC.Name as ProductSubcategoryName,CountryRegionCode, ST.Group AS SalesTerritoryGroup,LineTotalFROM Sales.SalesOrderHeader O I
6、NNER JOIN Sales.SalesOrderDetail OD ON O.SalesOrderID=OD.SalesOrderID INNER JOIN Production.Product PON OD.ProductID=P.ProductIDINNER JOIN Production.ProductSubcategory PSCON P.ProductSubcategoryID=PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory PCON PSC.ProductCategoryID=PC.ProductCa
7、tegoryID7:sqlserver2008.INNER JOIN Sales.SalesTerritory STON O.TerritoryID=ST.TerritoryIDwhere OrderDate20031001 AND OrderDate“組-下方”。然后可以看到工作區(qū)的變化:10:sqlserver2008.來看看效果OK, 符合的要求。交工去,看了報表后,皺起眉頭說:“我還想知道每個地區(qū)的總銷售額及每個分類總銷售額?!边@還真煩呀,不會一起提出來呀。凈折騰員工繼續(xù)完成吧右鍵 Product Category Name 組,在菜單中選擇,行-“組外部-下方”來為每個地區(qū)匯總所有分
8、類。11:sqlserver2008.右鍵 SalesTerritoryGroup 組,在菜單中選擇,列-“組外部-右方”來為每個分類匯總所有地區(qū)。添加后的設(shè)計界面如下:看看效果:12:sqlserver2008.兩個要求都完成了,這下應(yīng)該滿足的需求了。就是,總有提不完的需求。這不,有來了,提出三條需求:1:計算出地區(qū)的每個國家的銷售額。2:計算出每種分類,子類,每年的銷售額。3:計算出每個子類在總類中占的銷售百分比。哇,這么多需求,而且要在一張報表上完成,也太難了吧,我不入誰入。先需求,再下手這叫上有政策,下有對策( 好像不適用)1:需要計算地區(qū)的國家的銷售額,所以需要修改 SQL,加上地區(qū)
9、條件。再添加子組列。2:計算出每種分類,子類,每年的銷售額,看樣還的加列。3:這個么,看樣還的寫表達式來計算了OK,先修改 SQL寫固定值。:如下中的參數(shù),在實際應(yīng)用中可以提供給用戶自己選擇,這里為了方便,在此SELECT year(OrderDate) as Oyear,PC.Name AS ProductCategoryName,PSC.Name as ProductSubcategoryName,CountryRegionCode,ST.Group AS SalesTerritoryGroup,LineTotalFROM Sales.SalesOrderHeader O INNER JO
10、IN Sales.SalesOrderDetail OD ON O.SalesOrderID=OD.SalesOrderID INNER JOIN Production.Product PON OD.ProductID=P.ProductIDINNER JOIN Production.ProductSubcategory PSCON P.ProductSubcategoryID=PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory PCON PSC.ProductCategoryID=PC.ProductCategoryI
11、DINNER JOIN Sales.SalesTerritory ST13:sqlserver2008.ON O.TerritoryID=ST.TerritoryIDwhere OrderDate20031001 AND OrderDate“子組”。在彈出的設(shè)置窗口,選擇 CountryRegionCode 作為分組依據(jù)。這樣第一個需求就完成了。下面再來完成“計算出每種分類,子類,每年的銷售額”需求。需要添加列組,希望顯示在地區(qū)信息的右邊,所有在下圖中,選擇“右側(cè)相鄰”。14:sqlserver2008.在設(shè)置窗口中,設(shè)置 Oyear 為分組依據(jù)。填充上數(shù)據(jù)( Sum(LineTotal))。
12、這時可以看到工作區(qū)的矩陣已經(jīng)變化成如下:運行一下看看效果吧15:sqlserver2008.基本上符合的要求了,但是年份列,和 Total希望垂直居中,所有這里需要“合并單元”。合并后的,這樣就達到預(yù)期的效果了。下面再來看看最后一個需求怎么完成。也需要添加一個組外列,來存放每個子類占該類的比例。所以如下圖列。然后填入具體的表達式:=SUM(Fields!LineTotal.Value)/SUM(Fields!LineTotal.Value,ProductCategoryName)16:sqlserver2008.設(shè)置好列標題,工作區(qū)應(yīng)該如下圖:迫不及待了,趕緊看看效果吧。耶,基本功能完成了。不
13、過百分比顯示的是小數(shù),那咋辦呢?不用急。來設(shè)置一下:17:sqlserver2008.在文本框?qū)傩灾?,設(shè)置成數(shù)字,百分比就 OK 了。再來看看效果:沒錯,終于完成這個龐然大物了。這下看還說的肯定給你漲工資 o(_)o.休息一下 o(_)o.“列表,的綜合使用今天需要完成什么樣的報表呢?只見笑瞇瞇的說:“要求很簡單,只想根據(jù)訂單號,查Sle,只需要按照Sle 完成就 OK 了。完成了年底就有年終獎”。18:sqlserver2008.詢訂單的下單日期,發(fā)貨日期,及總金額情況,還有相關(guān)的商品信息。來看看矩形,圖像”再來以一個一下“矩形”,“列表”,“圖像”,“子報表”控件的使用??戳?Sle 后,
14、大家就知道是別有用心呀,明擺著不想發(fā)年終獎,這么復(fù)雜的報表如何才能完成?前面學(xué)到的可都是有固定格式的,行行列列的,現(xiàn)在這么任意擺放,無規(guī)律可循的報表該如何下手?不要慌,靜下心來,仔細的研究一下 Sle 到底有哪些東西?!皥D像,線條,文本框,表”,還有不知道啥東西可以任意擺放文本框?OK,下面就來學(xué)下這個主義者“列表”及“矩形”。先簡單的來理解一下兩者:列表:用于創(chuàng)建與網(wǎng)頁上的表單類似的格式布局。矩形:用來放置其他報表項的容器。首先新建報表,新建數(shù)據(jù)集,這里用到兩個數(shù)據(jù)集,一個訂單信息,一個訂單明細信息。SQL如下:兩個數(shù)據(jù)集的參數(shù)都為:SalesOrderNumberOrderInfo:sel
15、ect OrderDate,SalesOrderNumber,a.AddressLine1 as BillToAddress1, a.AddressLine2 as BillToAddress2,a1.AddressLine1 as ShipToAddress1, a1.AddressLine2 as ShipToAddress2,SubTotal,TaxAmt,Freight,TotalDue,DueDate,ShipDatefrom Sales.SalesOrderHeader oinner join.Address aon o.BillToAddre=a.Addre19:sqlserve
16、r2008.inner join.Address a1on o.ShipToAddre=a1.Addrewhere SalesOrderNumber=SalesOrderNumberOrderDetail:SELECT OrderDate,SalesOrderNumb.Name AS ProductName,UnitPrice,UnitPriceDiscount,OrderQty,LineTotal FROM Sales.SalesOrderHeader OINNER JOIN Sales.SalesOrderDetail OD ON O.SalesOrderID=OD.SalesOrderI
17、D INNER JOIN Production.Product PON OD.ProductID=P.ProductIDwhere SalesOrderNumber=SalesOrderNumber“列表”使用建好數(shù)據(jù)集后,把 List控件拖入工作區(qū)。調(diào)整適當?shù)拇笮 =壎?List的數(shù)據(jù)集為 OrderInfo。如圖:初步工作完成后,來擺放 List 中需要的元素,按照前面章節(jié)學(xué)習(xí)的方法,拖入文本框作為標題。如圖:20:sqlserver2008.通過右鍵文本框,再彈出的菜單中選擇“表達式”。希望標題顯示為“訂單號”+訂單信息字樣,填寫表達式內(nèi)容為:=Fields!SalesOrderNumb
18、er.Value+訂單信息。然后按照相同的方式來完成,訂單日期,發(fā)貨日期,消費情況的設(shè)置。設(shè)置好后工作區(qū)的變化如下:“矩形”使用下面來設(shè)置訂單的相關(guān)地址,希望地址顯示在一個區(qū)塊內(nèi),并且在地址周圍添加邊框。所以需要拖入“矩形”控件。并設(shè)置顯示邊框。21:sqlserver2008.在矩形區(qū)塊放入文本框來顯示地址內(nèi)容。如下圖:List 中的內(nèi)容設(shè)置完了,不對,好像少了什么?對的,少了。來看看如何添加。“圖像”使用首先從拖入“”控件到相應(yīng)位置,會彈出如下窗口。22:sqlserver2008.在此窗口,可以設(shè)置圖像名稱,大小,可見性,邊框,操作等。圖像源:“外部”:是對在 Web 服務(wù)器中的圖像的
19、URL“嵌入”:對嵌入的圖像數(shù)據(jù),“數(shù)據(jù)庫”:是對數(shù)據(jù)庫中的二進制圖像數(shù)據(jù)。Reporting Servi支持 .bmp、.jpeg、.gif 和.png 文件。在此選擇“嵌入”,點擊導(dǎo)入按鈕來導(dǎo)入。調(diào)整的位置及大小??梢娙缦滦Ч?3:sqlserver2008.這樣,LIST 才算設(shè)置完成。下面在 LIST 的下面添加一個“表”控件來顯示該訂單的所買商品信息。添加“表”控件,綁定數(shù)據(jù)源為:OrderDetail,并填充字段。最終設(shè)計效果如下:24:sqlserver2008.點擊“預(yù)覽”,填入訂單號來看一下效果是否符合的要求??梢姾颓懊娴?Sle 一樣。這下虧大了,拿著報表去領(lǐng)年終獎了剛要
20、開口,卻先說了“我知道你完成的很好,你總不能讓我一個一個訂單輸入來查看吧,何況我也記不得那么多訂單號呀,所以得完善一下報表,可以從所有訂單點擊進去查看明細”。還有,還有看到每個商品的。所以還得繼續(xù)做OK,先給商品加上。修改 OrderDetail 數(shù)據(jù)集如下:SELECT OrderDate,SalesOrderNumb.Name AS ProductName,UnitPrice,UnitPriceDiscount,OrderQty,LineTotal,ThumbNailPhoto FROM Sales.SalesOrderHeader OINNER JOIN Sales.SalesOrder
21、Detail OD ON O.SalesOrderID=OD.SalesOrderID INNER JOIN Production.Product PON OD.ProductID=P.ProductIDinner join Production.ProductProductPhoto ppp25:sqlserver2008.on p.ProductID=ppp.ProductIDinner join Production.ProductPhoto ppon ppp.ProductPhotoID=pp.ProductPhotoID where SalesOrderNumber=SalesOrd
22、erNumber在OrderDetail 報表的訂單明細中增加一列來放置商品的。如下圖:從拖入圖像控件到該列將出現(xiàn)如下圖的圖像屬性窗口:設(shè)置“圖像源”為數(shù)據(jù)庫,字段為:【ThumbNailPhoto】,MIME類型選擇為:image/jpeg。26:sqlserver2008.在“大小”選項卡設(shè)置為“原始大小”。點擊確定來看一下效果:可見已經(jīng)從數(shù)據(jù)庫里讀出來。這里也可以在列中先放入“矩形”控件再放入圖像,達到的效果一樣。為報表添加下面在來做一張所有訂單的列表,可以點擊訂單 ID 查看詳細信息。27:sqlserver2008.新建一張報表名稱為:Order 的報表。數(shù)據(jù)集如下:Order:se
23、lect SalesOrderNumber,OrderDate,TotalDuefrom Sales.SalesOrderHeader在工作區(qū)拖入“表”控件,綁定數(shù)據(jù)集并填充數(shù)據(jù)。如下圖:下面來為 Sales Order Number 添加在彈出的菜單中,選擇文本框?qū)傩?。跳轉(zhuǎn)到前面完成的 OrderDetail 報表。右鍵訂單號的文本框 ,功能,并選擇轉(zhuǎn)到報表,在下拉列表中選擇“OrderDetail”報表。在“操作”選項卡,設(shè)置啟用超并添加 SalesOrderNumber 參數(shù)。同時在“字體”選項卡中設(shè)置顏色為“藍色”,帶下劃線。28:sqlserver2008.點擊“確定”,來看一下效果:當把鼠標放在“訂單號”上將出現(xiàn)可點狀。點擊將跳轉(zhuǎn)到明細表。好了,可以交差了,沒想到這還真是懶呀。連點都不想點。只想訂單的明細導(dǎo)出在一個文件中。通過書簽可以查看到訂單明細汗。好吧,這你也難不到我,程序員最大的能耐就是可以忍受所有的折磨“子報表”下面來介紹一下子報表,它可以幫完成的還不算太的要求。首先看一下“子報表”的定義:29:sqlserver2008.子報表:子報表顯示保存到父報表的報表服務(wù)器中的報表。子報表可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版搬運企業(yè)節(jié)能減排合同范本3篇
- 2025年度木材加工設(shè)備租賃及維護服務(wù)合同范本4篇
- 2025版民爆物品裝卸作業(yè)環(huán)境保護合同4篇
- 2025年度個人消費分期付款合同范本(2025版)3篇
- 農(nóng)業(yè)機械化與農(nóng)村振興人才培育考核試卷
- 2025版事業(yè)單位聘用合同正規(guī)范本(含試用期)2篇
- 2025版人工智能研發(fā)中心錄用合同范本3篇
- 2025年公益活動加盟合同
- 2025年大型活動合作協(xié)議
- 2025年度高科技實驗室租賃合同4篇
- 【探跡科技】2024知識產(chǎn)權(quán)行業(yè)發(fā)展趨勢報告-從工業(yè)轟鳴到數(shù)智浪潮知識產(chǎn)權(quán)成為競爭市場的“矛與盾”
- 《中國政法大學(xué)》課件
- GB/T 35270-2024嬰幼兒背帶(袋)
- 遼寧省沈陽名校2025屆高三第一次模擬考試英語試卷含解析
- 2024-2025學(xué)年高二上學(xué)期期末數(shù)學(xué)試卷(新題型:19題)(基礎(chǔ)篇)(含答案)
- 2022版藝術(shù)新課標解讀心得(課件)小學(xué)美術(shù)
- Profinet(S523-FANUC)發(fā)那科通訊設(shè)置
- 醫(yī)學(xué)教程 常見化療藥物歸納
- 統(tǒng)編版九年級歷史下冊第一單元教案教學(xué)設(shè)計
- GB/T 25000.51-2016系統(tǒng)與軟件工程系統(tǒng)與軟件質(zhì)量要求和評價(SQuaRE)第51部分:就緒可用軟件產(chǎn)品(RUSP)的質(zhì)量要求和測試細則
- 外科學(xué)試題庫及答案(共1000題)
評論
0/150
提交評論