Ssrs 2008 SSRS 2008基于表达式的限制范围

Ssrs 2008 SSRS 2008基于表达式的限制范围,ssrs-2008,Ssrs 2008,我有一个相当简单的问题,但我认为我对SSR和作用域的理解还不足以解决这个问题 我有一个案例(一个实体),可以有多个预约(另一个实体)。约会有日期和状态。我想显示下一个最快的约会日期及其状态。显示我正在使用的日期 =Min(IIf(Fields!appt_start.Value > Globals!ExecutionTime, Fields!appt_start.Value, Nothing)) 我的想法是,我首先只选择那些在未来发生的约会,然后抓住最快的一个。看起来效果不错 现在,我需要

我有一个相当简单的问题,但我认为我对SSR和作用域的理解还不足以解决这个问题

我有一个案例(一个实体),可以有多个预约(另一个实体)。约会有日期和状态。我想显示下一个最快的约会日期及其状态。显示我正在使用的日期

=Min(IIf(Fields!appt_start.Value > Globals!ExecutionTime, Fields!appt_start.Value, Nothing))
我的想法是,我首先只选择那些在未来发生的约会,然后抓住最快的一个。看起来效果不错


现在,我需要应用相同的过滤逻辑,但是显示约会状态而不是日期。据我所知,这就是作用域的用途。我可以将我的范围限制在我想要的约会上,然后显示它的状态。但是我不明白怎么做。

解决这个特殊问题的一种方法是将过滤器与第一个函数结合使用。向表中添加筛选器,以仅显示大于当前日期的日期。使用没有分组的表行,并使用如下表达式:

=First(Fields!appt_start.Value)
=First(Fields!appt_status.Value)
另一个选项是将计算字段添加到数据集中,以便在日期大于当前日期时仅填充诸如status之类的值。如果以后需要显示更多信息,这将非常有用


编辑:是的,您希望按日期对数据进行排序,以便第一个功能正常工作。实际上,您可以在SSR中的3个不同级别进行过滤。右键单击数据集并转到数据集属性。点击过滤器。单击添加。根据需要填写表达式、运算符和值。您也可以在“组属性”或“表属性”中执行此操作。

我不确定如何执行筛选部分。另外,在使用First()之前,是否需要在appt_date按升序对数据集进行排序?我的数据可能包含未来任何顺序的许多约会。我可能需要报告中其他字段的所有约会。例如,我想显示一个案例总共有多少个预约,包括过去的预约。最好的方法是什么?我是否应该创建两个相同的数据集,一个带有下一个appt数据/状态的过滤器,另一个没有过滤器?或者有更好的方法吗?在这种情况下,我只需要在特定的表或组上放置一个过滤器。不需要复制数据集。好的,谢谢你的帮助。我将看看是否可以在不改变报表外观的情况下让组筛选器正常工作。如果出现最坏的情况,我可以创建另一个数据集并以这种方式工作。