使用SQL2012報表產生器自訂IT資產報表

來源:互聯網
上載者:User

標籤:sccm   sql2012   報表產生器   自訂報表   

本文將介紹如何通過SQL Server 2012 SP1的報表產生器自訂報表,為了更貼近實戰,本文將自訂一張IT資產報表。


一、部署IT資產管理系統

1、本文使用微軟SCCM2012R2(System Center Configuration Manager 2012 R2)作為IT資產管理系統,用來收集用戶端的硬體資訊。具體的部署過程因不是本文重點故略過,網上也有很多關於SCCM安裝部署的資料,感興趣的話可以自行查閱。不過需要注意的是在安裝SQL Server 2012SP1時,必須安裝報表功能組件。


2、部署環境如下:

電腦名稱
IP地址
作業系統
角色
安裝軟體
SCCM-DC
192.168.10.150
Win2012R2
網域控制站、DNS伺服器
DC、DNS
SCCM
192.168.10.151
Win2012R2

資料庫伺服器(含報表功能)、

SCCM伺服器

SQLServer2012SP1、

SCCM2012R2、

IIS等


3、部署好SCCM後,給SCCM-DC和SCCM伺服器安裝用戶端代理。

650) this.width=650;" width="1010" height="586" title="01.PNG" style="width:736px;height:420px;float:none;" alt="wKiom1gRs6HzM5B_AAHCrLGd-80583.png" src="http://s2.51cto.com/wyfs02/M00/89/65/wKiom1gRs6HzM5B_AAHCrLGd-80583.png" />


4、啟用SCCM的硬體清單收集功能,成功收集了SCCM、SCCM-DC兩台伺服器的硬體資訊,這些資訊都寫入在SCCM的資料庫中,我們的IT資產報表就是基於資料庫中的這些硬體資訊資料來進行定製開發。

650) this.width=650;" width="1085" height="606" title="02.PNG" style="width:738px;height:427px;float:none;" alt="wKioL1gRs6HiCR_tAACODqdQGk8955.png" src="http://s2.51cto.com/wyfs02/M02/89/62/wKioL1gRs6HiCR_tAACODqdQGk8955.png" />

650) this.width=650;" width="1081" height="602" title="03.PNG" style="width:739px;height:398px;float:none;" alt="wKioL1gRs6KQYpPJAACRV8Td3lA234.png" src="http://s2.51cto.com/wyfs02/M00/89/62/wKioL1gRs6KQYpPJAACRV8Td3lA234.png" />


二、調試IT資產報表的SQL查詢語句

本文原始出處:江健龍的技術部落格http://jiangjianlong.blog.51cto.com/3735273/1867368

1、SCCM的資料庫中,每台電腦只要安裝了用戶端代理都會被分配一個ResourceID(即資源ID),不同的硬體資訊寫入不同的表中,每張表都會有ResourceID欄位來標識是誰的硬體資訊,因此通過資源ID可以進行多表串連查詢,將我們所要的全部欄位顯示在一張報表中。SCCM的資料庫預設定義了一些視圖,本文的SQL查詢語句其實是通過查詢檢視來完成。的SQL語句就是通過視圖v_R_System查詢到資源ID和電腦名稱的資訊。

650) this.width=650;" width="819" height="544" title="04-1.png" style="width:737px;height:480px;float:none;" alt="wKiom1gRs6LT6Du3AAFV2EcmyiU925.png" src="http://s2.51cto.com/wyfs02/M01/89/65/wKiom1gRs6LT6Du3AAFV2EcmyiU925.png" />


2、的SQL語句是通過視圖V_GS_NETWORK_ADAPTER_CONFIGUR查詢到資源ID、IP地址和MAC地址的資訊。用了for XML path函數是為了合并多行為一行,因為有些用戶端電腦擁有多個IP地址,在SCCM資料庫的表中是作為多行顯示的,該函數可以將多行合并在一行顯示,因此還用了+‘,’就是為了在多個IP地址間加一個逗號做間隔。

650) this.width=650;" width="1057" height="547" title="05-1.png" style="width:737px;height:402px;float:none;" alt="wKiom1gRs6LhqD4ZAAGIc04YX5k806.png" src="http://s2.51cto.com/wyfs02/M00/89/65/wKiom1gRs6LhqD4ZAAGIc04YX5k806.png" />


3、以上我們在兩個視圖中分別查詢出了不同的硬體資訊,共同點是都具有資源ID欄位,那麼我們就可以使用left join語句,將兩個視圖進行左外串連查詢,效果如所示。因為我們是以查出電腦名稱的表為左表,需以該表為基準,哪怕某些硬體資訊為空白,也要顯示空白,因此需要使用左外串連。通過left join可以很方便地進行模組化操作,將查詢不同硬體資訊的SQL語句不斷串連進來。

650) this.width=650;" width="1044" height="608" title="06-1.png" style="width:741px;height:425px;float:none;" alt="wKiom1gRs6OBkwWNAAGRxjIcmLU367.png" src="http://s2.51cto.com/wyfs02/M01/89/65/wKiom1gRs6OBkwWNAAGRxjIcmLU367.png" />


4、就是我最終完成的SQL語句,查詢出所有要自訂的欄位,作為下文IT資產報表的基礎。其實一個SQL查詢語句的編寫是需要不斷修改和調試的,並在不同的部署環境中得到應用才能檢驗出bug所在,比如上文的for XML path函數,如果只是在用戶端都只有1個IP的簡單環境中調試時,由於根本不需要進行多行合并,也就不會去使用這個函數,但一旦出現一個用戶端具有多個IP的情況時,就會發現bug出現了,需要再修改調試,不斷改進和完善。

650) this.width=650;" width="797" height="494" title="07.PNG" style="width:738px;height:466px;float:none;" alt="wKioL1gRs6PAv-vXAAB0eDTgP7w705.png" src="http://s2.51cto.com/wyfs02/M01/89/62/wKioL1gRs6PAv-vXAAB0eDTgP7w705.png" />


650) this.width=650;" title="08.PNG" style="float:none;" alt="wKioL1gUvFOj2XEvAAB3VvMbVoA165.png" src="http://s4.51cto.com/wyfs02/M02/89/79/wKioL1gUvFOj2XEvAAB3VvMbVoA165.png" />


650) this.width=650;" title="09.PNG" style="float:none;" alt="wKiom1gUvFbiCtiBAACIiMLbgnY219.png" src="http://s1.51cto.com/wyfs02/M01/89/7B/wKiom1gUvFbiCtiBAACIiMLbgnY219.png" />


5、因具體的SQL語句編寫不是本文重點,故略過,但我也把主要的硬體資訊位於哪些視圖給歸納了一下,僅供參考。

硬體資訊
欄位名
所在視圖
電腦名稱
Netbios_Name0  v_R_System
IP地址
IPAddress0 v_GS_NETWORK_ADAPTER_CONFIGUR
MAC地址
MACaddress0
網卡型號
Name0 v_GS_NETWORK_ADAPTER vgna2
CPU類型 Name0 v_GS_PROCESSOR
每CPU核心數
NumberOfCores0
CPU數量 NumberOfProcessors0 v_GS_COMPUTER_SYSTEM
系統架構 SystemType0
硬體廠商 Manufacturer0
所屬域 Domain0

產品型號

Model0
作業系統 caption0 v_GS_OPERATING_SYSTEM
盤符 DeviceID0 v_GS_LOGICAL_DISK
磁碟格式 filesystem0
磁碟大小 Size0
硬碟型號
caption0 v_GS_disk
顯卡型號 name0 v_GS_VIDEO_CONTROLLER
實體記憶體 TotalPhysicalMemory0 v_GS_X86_PC_MEMORY
硬碟型號
caption0 v_GS_disk


三、自訂IT資產報表

本文原始出處:江健龍的技術部落格http://jiangjianlong.blog.51cto.com/3735273/1867368

1、完成了SQL語句的編寫調試後,我們就可以來建立自訂報表了。使用瀏覽器輸入報表伺服器(SQL Server Reporting Services)的URL:sccm.long.me/Reports,登入後點擊報表產生器。

650) this.width=650;" width="758" height="575" title="10.PNG" style="width:739px;height:560px;float:none;" alt="wKioL1gRs6TijbMWAABwY6G9Oxc188.png" src="http://s2.51cto.com/wyfs02/M02/89/62/wKioL1gRs6TijbMWAABwY6G9Oxc188.png" />


2、點擊運行程式。650) this.width=650;" width="760" height="573" title="11.PNG" style="width:736px;height:564px;float:none;" alt="wKiom1gRs6TCzdyXAAC86mKHtHQ037.png" src="http://s2.51cto.com/wyfs02/M02/89/65/wKiom1gRs6TCzdyXAAC86mKHtHQ037.png" />


3、在啟動報表產生器後,選擇建立一個空白報表。

650) this.width=650;" width="1009" height="607" title="13-1.png" style="width:735px;height:483px;float:none;" alt="wKiom1gRs6XyRZn4AAETEGjNxnU327.png" src="http://s2.51cto.com/wyfs02/M00/89/65/wKiom1gRs6XyRZn4AAETEGjNxnU327.png" />


4、添加資料來源,選擇“使用嵌在我的報表中的串連”,選擇連線類型為“Microsoft SQL Server“,連接字串輸入Data Source=.;Initial Catalog=CM_001,也可以點產生通過圖形介面產生連接字串,最後點擊測試連接,可以看到已成功地建立串連。

650) this.width=650;" width="999" height="606" title="14.PNG" style="width:735px;height:435px;float:none;" alt="wKiom1gRs6WyxgUkAADhzXTAHc4569.png" src="http://s5.51cto.com/wyfs02/M00/89/65/wKiom1gRs6WyxgUkAADhzXTAHc4569.png" />


5、添加資料集,資料來源選擇上文建立的資料來源,在查詢處將我們在前文調試好的SQL語句粘貼進來,馬上就能派上用場了。

650) this.width=650;" width="1001" height="611" title="15.PNG" style="width:741px;height:442px;float:none;" alt="wKioL1gRs6XjLYp3AAD0k-EmLTE100.png" src="http://s5.51cto.com/wyfs02/M00/89/62/wKioL1gRs6XjLYp3AAD0k-EmLTE100.png" />


6、添加完資料集後可以看到欄位都被識別出來了,這時我們再建立表,點擊插入——表——表嚮導。

650) this.width=650;" width="1004" height="600" title="16.PNG" style="width:741px;height:507px;float:none;" alt="wKioL1gRs6biG8S9AAFkArSR_Ns962.png" src="http://s4.51cto.com/wyfs02/M00/89/62/wKioL1gRs6biG8S9AAFkArSR_Ns962.png" />


7、在表嚮導中,選擇資料集預設就行了,因為我們在上文也就建立了一個資料集,直接Next。

650) this.width=650;" width="843" height="602" title="17-1.png" style="width:739px;height:552px;float:none;" alt="wKiom1gRs6aTzCAmAABzTTBOnEc030.png" src="http://s5.51cto.com/wyfs02/M01/89/65/wKiom1gRs6aTzCAmAABzTTBOnEc030.png" />


8、將資源ID拖到行組,再將剩下的全部欄位拖到值。

650) this.width=650;" width="844" height="604" title="18.PNG" style="width:740px;height:530px;float:none;" alt="wKiom1gRs6bCh32QAACQnJ_qAf8947.png" src="http://s4.51cto.com/wyfs02/M01/89/65/wKiom1gRs6bCh32QAACQnJ_qAf8947.png" />


9、將顯示小計和總計、展開/摺疊組的複選框去掉勾選。

650) this.width=650;" width="844" height="601" title="19.PNG" style="width:739px;height:554px;float:none;" alt="wKioL1gRs6eBUOOzAABXkBzUV2Y011.png" src="http://s4.51cto.com/wyfs02/M01/89/63/wKioL1gRs6eBUOOzAABXkBzUV2Y011.png" />


10、選擇自己喜歡的樣式,然後點Finish,完成表的建立。

650) this.width=650;" width="842" height="601" title="20.PNG" style="width:739px;height:557px;float:none;" alt="wKiom1gRs6eT-DO_AABLPiPEUYQ548.png" src="http://s5.51cto.com/wyfs02/M02/89/65/wKiom1gRs6eT-DO_AABLPiPEUYQ548.png" />


11、這樣我們的IT資產報表就基本完成了。

650) this.width=650;" width="1005" height="606" title="21-1.png" style="width:737px;height:471px;float:none;" alt="wKioL1gRs6fA0ewaAAFxABavezE179.png" src="http://s5.51cto.com/wyfs02/M02/89/63/wKioL1gRs6fA0ewaAAFxABavezE179.png" />


12、當然,我們可以添加標題、插入圖片、調整儲存格的寬度、置中顯示等進行自訂和美化,把位於頁尾的[&ExecutionTime](自動產生時間)拖到表內,就可以在匯出報表時一起匯出。

650) this.width=650;" width="1200" height="515" title="22.PNG" style="width:735px;height:375px;" alt="wKiom1gVmE-TT6k7AAF5gN8i1QY535.png" src="http://s3.51cto.com/wyfs02/M01/89/81/wKiom1gVmE-TT6k7AAF5gN8i1QY535.png" />

13、最後點擊左上方的運行,你將看到我們自訂的IT資產報表的運行效果。

650) this.width=650;" width="1200" height="591" title="23.PNG" style="width:724px;height:442px;float:none;" alt="wKioL1gRs6iQqFN4AAGc8bko_vE803.png" src="http://s1.51cto.com/wyfs02/M00/89/63/wKioL1gRs6iQqFN4AAGc8bko_vE803.png" />


14、最後別忘了儲存,預設是儲存到報表伺服器上。

650) this.width=650;" title="24.PNG" style="float:none;" alt="wKioL1gRs6jigex0AABeJcCdwCA312.png" src="http://s1.51cto.com/wyfs02/M01/89/63/wKioL1gRs6jigex0AABeJcCdwCA312.png" />


15、登入報表伺服器,可以看到我們的IT資產報表,點擊它,將可以看到在瀏覽器中的運行效果,如果頁面顯示不太正常,可以開啟瀏覽器的相容視圖模式。

650) this.width=650;" width="757" height="405" title="25-1.png" style="width:739px;height:406px;float:none;" alt="wKiom1gRs6nzOH-XAACPooi8e98559.png" src="http://s1.51cto.com/wyfs02/M02/89/65/wKiom1gRs6nzOH-XAACPooi8e98559.png" />

650) this.width=650;" width="1200" height="519" title="26.PNG" style="width:724px;height:365px;float:none;" alt="wKiom1gRs6ngZSelAAFwE-Lne3Y973.png" src="http://s5.51cto.com/wyfs02/M01/89/65/wKiom1gRs6ngZSelAAFwE-Lne3Y973.png" />


16、我們可以將該報表匯出,比如匯出為Excel檔案。

650) this.width=650;" width="1200" height="530" title="27.PNG" style="width:733px;height:395px;float:none;" alt="wKioL1gRs6mh_yoKAAF0RDFsQsM244.png" src="http://s5.51cto.com/wyfs02/M01/89/63/wKioL1gRs6mh_yoKAAF0RDFsQsM244.png" />

650) this.width=650;" width="1200" height="533" title="28.PNG" style="width:735px;height:406px;float:none;" alt="wKiom1gRs6rTrXrPAAGA9AmLFzc152.png" src="http://s5.51cto.com/wyfs02/M02/89/65/wKiom1gRs6rTrXrPAAGA9AmLFzc152.png" />


17、匯出後使用WPS或Excel開啟,內容跟在瀏覽器中顯示的一樣。

650) this.width=650;" width="1200" height="521" title="29.PNG" style="width:735px;height:348px;" alt="wKioL1gVmS6BEDZhAAGfwS5RzTE551.png" src="http://s3.51cto.com/wyfs02/M01/89/7E/wKioL1gVmS6BEDZhAAGfwS5RzTE551.png" />


      至此我們的IT資產報表就完成了,只要資料庫中有相應的資料,編寫好SQL查詢語句,使用SQL Server 2012的報表產生器就可以自訂我們想要的任何報表了,並且報表可以在瀏覽器中訪問運行,也可以匯出成報表檔案,非常實用。

本文出自 “江健龍的技術部落格” 部落格,請務必保留此出處http://jiangjianlong.blog.51cto.com/3735273/1867368

使用SQL2012報表產生器自訂IT資產報表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.