我得到了这个表情:
=Switch(Fields!Kod.Value=1, "text",
Fields!Kod.Value=2, "text",
Fields!Kod.Value=3, "text",
Fields!Kod.Value=4, "text",
Previous(Fields!Kod.Value) = 4 and (Fields!Kod.Value = 5 or
Fields!Kod.Value = 6 or fields!Kod.Value = 7 or
fields!Kod.Value=8), "more text",
Fields!Kod.Value=5, " text",
Fields!Kod.Value=6, " text",
Fields!Kod.Value=7, " text",
Fields!Kod.Value=8, " text",
Fields!Kod.Value=9, "text")
此行
Previous(Fields!Kod.Value) = 4 and (Fields!Kod.Value = 5 or Fields!Kod.Value = 6 or fields!Kod.Value = 7 or fields!Kod.Value=8)
导致错误:
“必须将scope参数设置为一个字符串常量,该字符串常量等于包含组的名称,包含数据区域的名称或数据集的名称。” >
有问题的行是尝试翻译此水晶报表的公式,该公式来自一个威胁:
if {SP;1.Kod} = 4 and
(next({SP;1.Kod})=5 or
next({SP;1.Kod})=6 or
next({SP;1.Kod})=7 or
next({SP;1.Kod})=8
)
then false
else true
但是我当时想我可以将这两个公式放在一起,并获得“更多文本”以显示上一个(kod = 4)和下一个(kod)= 5、6、7、8。
如何使该表达式起作用?还是我做错了方法?
答案 0 :(得分:1)
您需要将范围添加到上一个功能。例如,这可能只是您的数据集名称(也可以是组名称等)。
PREVIOUS(Fields!Kod.Value, "dataset1")
注意:必须使用引号 。
答案 1 :(得分:0)
好的,谢谢这个网站 https://www.codykonior.com/2011/04/04/duh-moments-previous-and-cross-apply/ 和阿兰斯回答上面 我们终于做到了!
他解释说,当该行位于组中时,它不知道从该组中的哪个实例获取前一个。在表达式中添加First()即可。
Previous(First(Fields!X.Value),"Group")
感谢评论中的帮助,希望对您有所帮助!