共用方式為


第 2 課:加入參數,依日期篩選

新增: 2006 年 7 月 17 日

在報表的查詢中加入開始和結束日期的參數之後,您就可以指定日期範圍,限制從資料來源擷取的資料。您也可以建立其他參數,用來篩選從資料來源擷取的資料。

在這一課,您將加入查詢參數 @StartDate@EndDate。您會看到區分大小寫的報表參數 StartDateEndDate (沒有查詢參數指標 @) 已為您自動建立。請注意,不同的資料提供者會使用不同的查詢參數指標;例如,Oracle 資料提供者會使用冒號 (:),而不使用 at (@) 符號。

您會將參數的資料類型設定為 DateTime,並且會看到日曆控制項與參數文字方塊一起出現在工具列上。您將為參數設定預設值,讓報表能夠自動執行。最後,您會建立未繫結至查詢參數的報表參數 DayofWeek,並用它來篩選從資料來源擷取的資料。

將日期參數加入至查詢

  1. 在 [資料] 檢視中,選取 [AdventureWorks] 資料集。

  2. 以下列查詢取代現有查詢:

    SELECT S.OrderDate, S.SalesOrderNumber, S.TotalDue, C.FirstName, 
        C.LastName
    FROM  HumanResources.Employee E INNER JOIN
          Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
          Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    -- Accurate Enddate would be '20020228 23:59:59.997'
    
    Aa337401.note(zh-tw,SQL.90).gif附註:
    SQL Server 儲存 DATETIME 資料的精確度可達 1/300 秒。如需詳細資訊,請參閱<日期和時間 (Transact-SQL)>。使用 DateTime 變數之後,如果沒收到所預期的篩選結果,可能就必須在查詢參數中使用更精準的時間。

    在本教學課程中,您將使用近似日期時間值。

  3. 按一下工具列上的 [執行] (!)。[定義查詢參數] 對話方塊隨即開啟。

  4. [參數值] 資料行中,輸入 @StartDate 的值。例如,20010101

  5. [參數值] 資料行中,輸入 @EndDate 的值。例如,20030101

  6. 按一下 [確定]。報表參數 StartDateEndDate 就會自動建立,並將資料類型預設為 String。在下列三個步驟中,您會將這些參數的資料類型設定為 DateTime

  7. [報表] 功能表中,按一下 [報表參數][報表參數] 對話方塊隨即開啟。

  8. [參數] 清單方塊中,確認 [StartDate] 已反白顯示。從 [資料類型] 下拉式清單中,選取 [DateTime]

  9. [參數] 清單方塊中,選取 [EndDate]。從 [資料類型] 下拉式清單中,選取 [DateTime]

  10. 按一下 [確定]

  11. 按一下 [預覽]StartDateEndDate 參數分別會與日曆控制項一起出現在工具列上。當參數的資料類型設為 DateTime,並且您尚未定義可用的值清單時,日曆控制項會自動出現。定義可用的值清單即會建立值的下拉式清單,而不會出現日曆控制項。

    在本教學課程中,您將輸入資料的值,而不使用日曆控制項。

  12. [StartDate] 參數文字方塊中,輸入日期 2001-01-01

  13. [EndDate] 參數文字方塊中,輸入日期 2003-01-01

  14. 按一下 [檢視報表]。報表只會顯示介於報表參數值之間的資料記錄。

建立報表的查詢參數之後,就可以加入這些參數的預設值。預設參數可讓報表自動執行,否則,使用者就必須輸入參數值,然後報表才能執行。

設定日期參數的預設值

  1. 在 [配置] 檢視中,從 [報表] 功能表按一下 [報表參數][報表參數] 對話方塊隨即開啟。

  2. [參數] 清單方塊中,確認 [StartDate] 已反白顯示。

  3. 在預設值區段中,選取 [非查詢的],然後輸入 2001-01-01。按下 TAB 鍵以結束文字方塊。

  4. [參數] 清單方塊中,選取 [EndDate]

  5. 在預設值區段中,選取 [非查詢的],然後輸入 2003-01-01。按下 TAB 鍵以結束文字方塊。

  6. 按一下 [確定]

  7. 按一下 [預覽]。報表會立即執行,因為所有參數都定義了預設值。

    報表使用者執行報表時,可以用介於查詢參數範圍內的參數值來設定預設值。例如,您可以提供能將轉譯的資料限制在一個月內的報表參數值。

在查詢中加入新欄位,以用於篩選

  1. 在 [資料] 檢視中,選取 [AdventureWorks] 資料集。

  2. 在查詢中,透過在 SELECT 陳述中加入下列命令,即可定義其他導出資料行作為一週中產生銷售的一天:DATENAME(weekday, S.OrderDate) as Weekday。

    以下列文字取代現有查詢:

    SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
          S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
    FROM  HumanResources.Employee E INNER JOIN
          Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
          Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    
  3. 按一下 [執行] (!)。您應該會看到標示為 Weekday 的新資料行以及一週中的星期幾。

  4. 在 [資料集] 視窗中,確認 [Weekday] 是一個欄位。

    Aa337401.note(zh-tw,SQL.90).gif附註:
    如果看不到 [資料集] 視窗,請在 [檢視] 功能表上,選取 [資料集]

    現在,您已經加入其他資料集欄位 Weekday。當您手動建立報表參數並繫結至此欄位時,使用者可以依照一週中的星期幾來篩選報表資料。

加入新的報表參數

  1. 按一下 [配置] 索引標籤。

  2. [報表] 功能表中,選擇 [報表參數][報表參數] 對話方塊隨即開啟。

  3. 按一下 [加入]。新的參數 Report_Parameter_2 隨即以預設值出現。

  4. [屬性] 區段的 [名稱] 文字方塊中,以 DayoftheWeek 取代 Report_Parameter_2。確認資料類型是 String

  5. [提示] 文字方塊中,輸入 Filter on which day of the week:

  6. 清除 [允許空白] 選項。

  7. [可用的值] 區段中按一下 [非查詢的]。將項目保留為空白。

  8. [預設值] 區段中按一下 [非查詢的]。在文字方塊中,輸入 Sunday

  9. 按一下 [確定]

使用參數運算式設定資料表篩選

  1. 在 [配置] 檢視中選取資料表。資料表隨即以灰色外框出現。

  2. 以滑鼠右鍵按一下資料表外框,並選取 [屬性][資料表屬性] 對話方塊隨即開啟。

  3. 按一下 [篩選] 索引標籤。

  4. [運算式] 資料行中,從下拉式清單中選取 [=Fields!Weekday.Value]

  5. 確認 [運算子] 是等號 (=)。

  6. 按一下 [值] 文字方塊,並從下拉式清單中選取 [運算式]<>。[編輯運算式] 對話方塊隨即開啟。

  7. 在全域變數窗格中,按一下 [參數]。目前的參數清單隨即出現在對面窗格中。

  8. 按兩下 [DayoftheWeek]。參數運算式隨即加入運算式文字方塊中。現在,下列運算式會出現在運算式文字方塊中:=Parameters!DayoftheWeek.Value。

  9. 按一下 [確定]

  10. 按一下 [確定]

    資料表的篩選現在設定為比較 [Weekday] 欄位的值與 DayoftheWeek 的參數值。例如,在報表工具列中,輸入 Sunday 作為 DayoftheWeek 的值時,報表處理器將只會處理資料表中 [Weekday] 欄位的值為 Sunday 的資料列。

  11. 按一下 [預覽]。由於所有參數都有預設值,因此,報表會自動執行。資料表只顯示介於 StartDateEndDate 所定義日期範圍內以及落在星期日的值。

  12. 在下一個選擇性程序中,您會將格式加入資料表頁首。

(選擇性) 設定資料表頁首資料列的背景和字型色彩

  1. 按一下 [配置] 索引標籤。

  2. 按一下資料表。資料表控點隨即出現。

  3. 按一下資料表頁首資料列。在配置工具列上按一下 [背景色彩] 按鈕。[選擇色彩] 對話方塊隨即開啟。

  4. [Web] 索引標籤選擇 [DarkRed]

  5. 按一下 [確定]

    接下來,選擇字型色彩。

  6. 在配置工具列上按一下 [前景色彩] 按鈕。[選擇色彩] 對話方塊隨即開啟。

  7. [Web] 索引標籤選擇 [White]

  8. 按一下 [確定]

  9. 按一下 [預覽]。資料表隨即以為資料表頁首資料列所選擇的色彩呈現。

後續的步驟

您已順利定義查詢參數和報表參數、設定參數的預設值,並將報表參數繫結至導出欄位。在下一課,您將學習如何為參數建立可用值 (或稱為有效值) 清單。請參閱<第 3 課:利用可用的值清單加入單一值參數>。

請參閱

工作

第 1 課:為參數教學課程建立報表伺服器專案

其他資源

ISO 8601 格式

說明及資訊

取得 SQL Server 2005 協助