2013-03-12 66 views
4

我需要使用帶有Region名稱的SSRS 2008修改現有報告,並且它可能包含10個不同的區域。該區域只有一列可以包含10個不同的值。我相信這是一個tablix。目前,地區按字母順序排列,但我必須按不同的順序排列,因此我根據所需順序爲CASE語句中的每個地區分配了一個編號。然後,我通過列自身(tablix)中的所需順序對區域進行排序,並且區域在報告中按照所需順序排序,但不幸的是,分配的編號位於報告中,而不是區域名稱。代替SSRS 2008中的排序不起作用

BF CF CO CL等...。我在報告的標題中得到了 1 2 3 4等。

CASE , 
WHEN teamgroup.Name = 'BF' THEN 1 
WHEN teamgroup.Name = 'CF' THEN 2 
WHEN teamgroup.Name = 'CO' THEN 3 
WHEN teamgroup.Name = 'CL' THEN 4 
WHEN teamgroup.Name = 'CN' THEN 5 
WHEN teamgroup.Name = 'GA' THEN 6 
WHEN teamgroup.Name = 'IN' THEN 7 
WHEN teamgroup.Name = 'KY' THEN 8 
WHEN teamgroup.Name = 'MD' THEN 9 
WHEN teamgroup.Name = 'NF' THEN 10 
    END AS Region 

我試圖顯示teamgroup.name作爲區域,然後使用Region_sort作爲CASE語句的別名,但它不起作用。在Tablix屬性中,我用排序方式爲:region_sort,順序爲A到Z,但區域按字母順序排序。 任何幫助將不勝感激。

回答

5

您可以按照與顯示內容不同的方式對Tablix進行排序。

  1. 您應該按照正常情況設置Tablix,並將區域作爲顯示值,即teamgroup.name
  2. 使用tablix上的排序選項將會導致無法工作,具體取決於桌子的構成。最好和最可靠的方法是在分組屬性窗口中右鍵單擊詳細信息行並按選項編輯排序。
  3. 在這裏,您可以編輯排序的表達式,我建議您使用switch函數將名稱更改爲數字,或者如果您有更好的名稱,可以使用SQL region_Sort列。
  4. 然後將順序設置爲a到z。

如果在tablix中有組,您需要爲teamgroup.name區域/組執行此操作,而不是詳細信息。