Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting SSRS中不同颜色的分类_Sorting_Reporting Services_Ssrs 2008 R2 - Fatal编程技术网

Sorting SSRS中不同颜色的分类

Sorting SSRS中不同颜色的分类,sorting,reporting-services,ssrs-2008-r2,Sorting,Reporting Services,Ssrs 2008 R2,我有一位客户希望在SSRS报告中使用一些颜色格式。由于客户要求,我无法使用分组。我有按主油箱进行排序的报告,希望排序颜色交替。因此,它将有几排储罐A全部为灰色,然后几排储罐B全部为白色。我目前正在使用它,但它只适用于每种类型的第一行 =iif( Fields!Tank.Value=上一个字段(Fields!Tank.Value), “透明”, “红色” ) 任何帮助都会很好。我会在您的查询中添加一个返回0或1的列来定义颜色概念草图:使用rank获得与排序顺序相关的数字,然后使用MOD 2获得0或

我有一位客户希望在SSRS报告中使用一些颜色格式。由于客户要求,我无法使用分组。我有按
主油箱进行排序的报告
,希望排序颜色交替。因此,它将有几排
储罐A
全部为灰色,然后几排
储罐B
全部为白色。我目前正在使用它,但它只适用于每种类型的第一行

=iif(
Fields!Tank.Value=上一个字段(Fields!Tank.Value),
“透明”,
“红色”
)


任何帮助都会很好。

我会在您的查询中添加一个返回0或1的列来定义颜色概念草图:使用rank获得与排序顺序相关的数字,然后使用MOD 2获得0或1。如果您发布一个示例查询,我们可以帮助您了解具体情况。

我会在您的查询中添加一个返回0或1的列来定义颜色概念草图:使用秩获得与排序顺序相关的数字,然后使用MOD 2获得0或1。如果您发布一个示例查询,我们可以帮助您了解具体情况。

您可以使用自定义代码获取所需的逻辑。在代码中使用一个自定义函数,该函数返回基于储罐值的颜色

进入
报告
菜单,
报告属性
/
代码
选项卡,在文本区域中输入以下代码:

Dim prevColor As String = "Transparent"
Public Function GetColor(ByVal flag As Integer) As String
  If flag = 1 Then
    If prevColor = "Transparent" Then
      prevColor = "Gray"
    Else
      prevColor = "Transparent"
    End If
  End If
  Return prevColor
End Function
现在,在“单元格背景颜色”属性中,使用以下表达式:

=Code.GetColor(iif(Fields!Tank.Value=previous(Fields!Tank.Value),0,1))
它将为背景着色,如下所示:

更新:上述逻辑仅正确地显示第一、第三、第五列等。它是由多次调用
GetColor
函数和覆盖全局变量
prevColor
引起的

通过将行号传递给函数,我成功地解决了这个问题。这是更新后的功能:

Dim prevColor As String = "Transparent"
Dim rowNum As Integer = 0
Public Function GetColor(ByVal flag As Integer, ByVal nRow As Integer) As String
  If flag = 1 And rowNum <> nRow Then
    If prevColor = "Transparent" Then
      prevColor = "Gray"
    Else
      prevColor = "Transparent"
    End If
  End If
  rowNum = nRow
  Return prevColor
End Function
用数据集的实际名称替换
“DataSet3”

它应生成以下表格:


如果有帮助,请告诉我。

您可以使用自定义代码获取所需的逻辑。在代码中使用一个自定义函数,该函数返回基于储罐值的颜色

进入
报告
菜单,
报告属性
/
代码
选项卡,在文本区域中输入以下代码:

Dim prevColor As String = "Transparent"
Public Function GetColor(ByVal flag As Integer) As String
  If flag = 1 Then
    If prevColor = "Transparent" Then
      prevColor = "Gray"
    Else
      prevColor = "Transparent"
    End If
  End If
  Return prevColor
End Function
现在,在“单元格背景颜色”属性中,使用以下表达式:

=Code.GetColor(iif(Fields!Tank.Value=previous(Fields!Tank.Value),0,1))
它将为背景着色,如下所示:

更新:上述逻辑仅正确地显示第一、第三、第五列等。它是由多次调用
GetColor
函数和覆盖全局变量
prevColor
引起的

通过将行号传递给函数,我成功地解决了这个问题。这是更新后的功能:

Dim prevColor As String = "Transparent"
Dim rowNum As Integer = 0
Public Function GetColor(ByVal flag As Integer, ByVal nRow As Integer) As String
  If flag = 1 And rowNum <> nRow Then
    If prevColor = "Transparent" Then
      prevColor = "Gray"
    Else
      prevColor = "Transparent"
    End If
  End If
  rowNum = nRow
  Return prevColor
End Function
用数据集的实际名称替换
“DataSet3”

它应生成以下表格:


让我知道这是否有帮助。

当我将其应用于整行时,这是有效的,但我有多个列具有基于其他变量的自定义填充表达式,因此我必须将您给出的表达式放入我特别想要着色的列中。问题是它只对你的代码的其他每一列起作用。我不完全明白你的意思,它只对一列起作用,是你的问题吗?我还不能链接图片,但它对A列起作用,所有的格式和颜色都是正确的。列B将完全没有颜色。列C将具有正确的颜色。列D将完全没有颜色。是的,我仔细检查了B列和D列在填充部分是否有正确的表达式。@Aerobane,起初我以为你想给一列上色。函数仅在第一列正确着色。现在您可以使用update函数实现所需的结果。当我将其应用于整行时,这是有效的,但我有多个列,其中有一个基于其他变量的自定义填充表达式,因此我必须将您给出的表达式放入我特别想要着色的列中。问题是它只对你的代码的其他每一列起作用。我不完全明白你的意思,它只对一列起作用,是你的问题吗?我还不能链接图片,但它对A列起作用,所有的格式和颜色都是正确的。列B将完全没有颜色。列C将具有正确的颜色。列D将完全没有颜色。是的,我仔细检查了B列和D列在填充部分是否有正确的表达式。@Aerobane,起初我以为你想给一列上色。函数仅在第一列正确着色。现在,您可以使用update函数实现所需的结果。