2013-03-12 58 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区域/组执行此操作,而不是详细信息。