【发布时间】:2017-10-05 13:20:49
【问题描述】:
我正在尝试将当前行值与前一行值进行比较,但仅限于同一组内。
我有 Group1 (Plant), ChildGroup1 (DeviceTag), Details Group, 我已经在 Fill 属性中尝试过这段代码,但它不起作用,它似乎只是每次每组都会更改第一行的颜色,而不管前一行的值如何。
=IIf(Fields!DeviceTag.Value <> Previous(Fields!DeviceTag.Value), "Yellow", "White")
所以我的数据集是这样的:
工厂设备标签描述位置
A Tag1 ABCD 西
Tag1 WXYZ West DeviceTag 组 1
_____________________________________________
A Tag2 EFGH 东
Tag2 IJKL 东 DeviceTag 组 2
Tag2 IJKL 西
在这两个 DeviceTag 组中,描述都发生了变化,因此我想将 ABCD 的颜色更改为黄色,将 EFGH 的颜色更改为黄色,但不是 WXYZ,因为它与 EFGH 不在同一个组中。第二行说东应该是黄色,因为它与之前的西位置不同。
在 Crystal Reports 中你会这样做:
if {#ChangeCounter}=1 then nocolor else
if currentfieldvalue <> previous({DataSet.Field}) then cryellow else nocolor
公式#ChangeCounter 只是 1
清如泥??
【问题讨论】:
-
=IIF(RUNNINGVALUE(Fields!Description.Value, COUNTDISTINCT,"DataSetName") MOD 2 = 0, "Yellow", "White")不确定这是否是您所追求的.....相应地更改数据集名称 -
“DataSetName”从何而来,在哪里指定?那是 Tablix 的名字吗?
-
无论您在哪里构建报表,都应该有一些报表数据,这将有一个数据源文件夹和一个数据集文件夹。您的数据集的名称将在那里。通常默认为 DataSet1
-
我的是默认的 DataSet1,但是,这似乎是随机给值着色,有时是为了更改,有时是在没有更改的情况下。似乎也与组无关。
-
试试
=IIf(Fields!DeviceTag.Value = Previous(Fields!DeviceTag.Value), Nothing, "Yellow")
标签: visual-studio reporting-services