微軟SQL 報表服務的研究

2021-09-07 22:52:14 字數 1737 閱讀 2974

微軟sql 報表服務的研究

上次發布的關於國內報表設計器的分析,很多看客說遺漏了微軟的報表服務,本人經過一段時間的補充學習,將本人得出的淺淡的研究說一下,本人是初學者,其中觀點可能錯誤,望大家不吝賜教。

整個報表服務概念非常龐大,覆蓋了整個報表的生命週期,包括了報表設計,安全,管理和執行。在此只重點說說報表的執行原理和報表設計器。

實際生產執行中,報表服務系統需要配置乙個報表web伺服器,將報表定義檔案放好,資料庫連線配好,然後使用者就可以在客戶端的ie位址列中敲入報表頁面url就可訪問報表了,因此報表服務算是乙個純粹的web報表解決方案了,非常適合b/s系統。但目前不知如何在c/s系統中使用報表服務。

報表定義檔案是乙個擴充套件名為rdl的xml文件。它儲存了報表的樣式定義和資料來源的定義,是微軟自己定義的一種描述報表定義的xml文件,結構是公開的,因此第三方廠商可以編寫相容報表服務的報表設計器。微軟使用自己的vs.net整合開發環境來設計報表,相信絕大部分人還是用vs.net來設計報表。

微軟提供的報表設計器是基於vs.net的,因此若要設計報表則必須安裝昂貴的vs.net整合開發環境,對報表設計器的廣泛應用有所限制。其實私底下用用盜版的也沒什麼風險,若在公司裡大量使用盜版的則微軟遲早會找上門。微軟做的軟體向來好用,它的報表設計器也相當專業,它採用控制項拖拽的設計模式,但**內部則採用類似excel的編輯方式。目前的報表設計器支援文字框,線條,表,矩陣,矩形,列表,影象,子報表和圖表。好像不支援條形碼。文字框也不支援行間距和字元間距。但報表元素所有的屬性都支援表示式。矩陣實際上是交叉報表,是處理複雜的中國式報表的基礎,但具體怎麼使用則不清楚。

報表設計器的程式檔案安裝在 c:\program files\microsoft sql server\80\tools\report designer ,其中 microsoft.reportingservices.designer.dll 是報表設計器的主程式。使用reflector檢視它的反編譯**,可以看到,其實所有的報表元素都是乙個個windows控制項,這點和developerexpress的xtrareports一樣。在報表設計器中使用windows控制項來實現頁面元素有些效能問題。大家都知道windows控制項是很消耗系統資源的,因為其中涉及到了窗體控制代碼這種重量級的控制代碼。當報表複雜,裡面存在數百個頁面元素時,報表設計器需要動態的載入數百個控制項,如此啟動和操作都比較慢,而且占用大量記憶體(這種事我以前幹過,有體會)。而**的fastreport等類似報表工具則是自己繪製報表元素的,因此沒有這種問題,載入和編輯複雜報表不會很慢。

在資料來源定義方面,根據微軟提供的rdl的xml樣式定義,乙個報表存在若干個dataset的節點,dataset節點提供乙個query,其中定義了乙個sql語句,dataset還提供若干個字段,這些欄位和query的sql查詢結果的字段一一對應。因此個人看來dataset實際只是定義了乙個源自資料庫的二維**,乙個報表內可以定義多個dataset,當這些二維**之間發生關聯時如何處理我這個初學者就猜不出來了。本人覺得報表服務和其他報告工具類似,是基於sql查詢的,資料來源結構是兩層。這在報表設計器設計資料來源的操作上體現出來了。它的資料來源設計介面實際上是乙個sql查詢設計器,無論如何操作,最終結果都是乙個sql查詢語句,包括普通sql查詢語句,表查詢和儲存過程三種型別。sql查詢語句執行的結果肯定是乙個二維**。

報表設計器使用拖拽操作來簡化資料來源的繫結,一般的旁邊有個字段窗體,列出了所有的dataset的字段。將某個字段拖拽到某個報表頁面元素上面,若這個頁面元素為文字框則設定它的文字值使之繫結到指定的字段,否則會在拖拽的位置新增乙個文字框並繫結到指定字段。

好了,小弟這個初學者了解的也就這麼多了,以後還得加強學習。

微軟自帶報表列印的實現

1 建立資料原始檔 uoorderds.xsd 只在資料來源中新增相應的列,不新增查詢語句,在程式中新增 為了方便條件查詢,所以在程式中新增 2 新增報表檔案 prtuporder.rdlc 然後給報表檔案指定資料集 就是上面的xsd檔案 3 也可給報表中的table新增引數 3 建立.aspx檔案...

SQL2005報表伺服器的遷移

從一台計算機遷移reporting services資料庫和reporting services服務到另外一台計算機,您不需要重新配置這些報表,同樣也不需要在目標計算機中重新裝配reporting services。希望同行看了過後能留下自己的意義或見議,希望您不吝賜教 根據不同的需要有下面兩種解決...

微軟sql的建議筆記

微軟sql培訓的建議 一 檔案組的建議 1 單檔案組多檔案 4 8個檔案。2 資料與日誌分別放不用的disk 資料建議 raid5 日誌建議 raid0 1 3 tempdb 多檔案 至少乙個設為自增 4 自增的步長不能太大。二 trace 盡量開伺服器端的 三 雙向複製沒有 只有 peer to ...