SQL BI關系數據報表

發表于:2008-05-07來源:作者:點擊數: 標簽:sqlSQLSql關系數據
在幾乎任何情況下,報表都是以某種數據源為基
在幾乎任何情況下,報表都是以某種數據源為基礎。所以,在設計報表時的第一件事就是創建一個連接,定義必要的查詢來獲取報表數據。本章將討論報表設計必需的第一 步——如何使用數據。盡管設計數據源和查詢時一般很簡單直接,但仍有大量選項需要考慮。雖然SQL Server報表服務是和SQL Server數據庫產品一起提供的,但是它同樣可以將其他數據庫產品作為數據源。本章討論了如下主題:

● 創建獨立和共享的數據源。

● 設計查詢和數據集。

● 在數據庫中使用參數來篩選數據。

● 在報表服務器上使用參數來篩選數據。

● 使用分析服務和MDX查詢生成器。

● 從其他數據源獲取數據。

  每個報表至少有一個數據源(也有極少數用于特殊目的的報表不使用任何數據)。最簡單的報表有一個單一數據集提供的數據源。數據源定義了一個文本字符串的連接,把它存儲在報表定義文件中或者一個分離的、幾個報表共享的數據源文件中。這個連接信息可以包括安全認證。數據集定義了一個查詢表達式或者一個用于查詢數據庫中對象的引用。數據集也包括在報表定義中。下圖5-1描述了數據如何流向報表。數據源提供了連接到數據庫的能力,數據集包括了一個為報表產生數據的查詢表達式。

  更多復雜的報表需要多個數據集來為報表中的不同數據范圍或者數據項提供數據或為參數值選擇列表賦值。數據集可以基于同一數據源的查詢表達式,如圖5-2所示。


  多個數據集可以從多個數據源獲得數據。這個模型可以使報表能夠從本地數據庫獲得參數值而從中央數據存儲中獲得報表數據。在某些情況下,數據區域、子報表和不同的報表項可以通過相關數據集的多個數據源來獲得數據,如圖5-3所示。

  正如所看到的,幾乎可以用任何方式組合數據源和數據集。數據源實際上可以是任何數據庫產品或者任何通過標準連接庫或者驅動查詢的數據源。報表服務使用. NET數據提供程序來利用數據,它包括了對SQL Server、Oracle以及所有OLE DB提供程序的支持。這些幾乎包括了所有支持ODBC訪問或者ISAM驅動的數據庫產品。報表服務中的數據集通常是只讀的,所以不需要指定光標類型或者鎖定選項。
5.1 關系數據報表

  在前一章中,我們簡單查看了怎樣使用查詢生成器?,F在可以進一步看看如何創建查詢和怎樣為報表提供數據。在這里,理解報表的基本構建塊是重要的。討論將從這些基礎開始。讀者將會遇到幾個短的練習,從中體會它是如何工作的。這里假設讀者已經使用過了Visual Studio 2005,并且已經用報表向導創建過報表。

  如果讀者和我一樣是一個.NET的程序員,可能見過“數據集”這個詞,并想,“我知道數據集是什么,而且我一直在通過.NET數據訪問程序代碼來使用它,所以我在報表服務的數據訪問上已經領先了一步?!比绻x者不是一個.NET程序開發人員,比那些需要重新學習一遍這個詞的程序員也領先了一步。附帶說一下,如果不是.NET應用程序開發人員,讀者根本不需要考慮這個問題。

  為什么術語“數據集”會代表兩種完全不同的事物?我們很久以前已經用完了英語中的所有新詞。每個人都知道根據環境判斷,我們需要再利用。所以這就是我們所做的——回收詞匯和短語。這個詞就是一個經典的例子。在報表服務中,已經有了報表定義中查詢的概念,就是為報表輸出提供數據值;我們在Microsoft的好朋友決定稱之為“數據集”。如果讀者在.NET Framework中通過編程方式訪問過數據庫,應該知道數據集是一個存放緩沖數據的對象,它在內存中是一個XML定義的結構體。雖然這里提到的兩個“數據集”都是用來處理數據、查詢、結果集以及綁定報表中顯示的數據,但它們是兩個完全不同的概念?,F在,因為我們已經明確了這些概念,看看這句話:如果要在程序代碼中定義一個數據源擴展,可以使用ADO.NET數據集來作為生成報表的一個數據集。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97