Reporting services 从Vriable中的数据集引用字段

Reporting services 从Vriable中的数据集引用字段,reporting-services,Reporting Services,我正在创建一个变量,试图使用数据集中的字段,但它抛出了一个错误。“DATAFields”是数据集的名称 =Year(Fields!Year.Value, "DATAFields")-9 错误: 报告的定义无效。的变量表达式 报告“正文”直接指“年”字段,不包括 指定数据集聚合。当报告包含多个 数据集,必须包含数据区域之外的字段引用 在指定数据集范围的聚合函数中 请有人帮忙…因为在您的问题中,您使用的是数据集名称,我假设您是从数据集2调用数据集1。您正试图从dataset1中的该字段获取年份 这

我正在创建一个变量,试图使用数据集中的字段,但它抛出了一个错误。“DATAFields”是数据集的名称

=Year(Fields!Year.Value, "DATAFields")-9
错误:

报告的定义无效。的变量表达式 报告“正文”直接指“年”字段,不包括 指定数据集聚合。当报告包含多个 数据集,必须包含数据区域之外的字段引用 在指定数据集范围的聚合函数中


请有人帮忙…

因为在您的问题中,您使用的是数据集名称,我假设您是从数据集2调用数据集1。您正试图从dataset1中的该字段获取年份

这个表达是错误的:

=Year(Fields!Year.Value, "DATAFields")-9
你可以试试这个:

=First(Fields!Year.Value, "DATAFields")
=Year(First(Fields!DatePreparedBy.Value, "DSBUser"))-9 & " Total is"
  • 右键单击表达式>占位符属性>数字>日期>选择所需的日期格式
*如果您不是从另一个数据集调用它,您可以使用:

=Fields!Year.Value
然后重复如何设置日期格式

*注意:还有另一种方法可以在表达式中格式化日期,但对我来说,这种方法更简洁

更新: 您也可以尝试以下方法:

=First(Fields!Year.Value, "DATAFields")
=Year(First(Fields!DatePreparedBy.Value, "DSBUser"))-9 & " Total is"

我使用了一个参数来引用。现在它可以工作了

=Year(Variables!Short_Month.Value)-9
在我使用的文本框中

=Variables!v1.Value & " Total is"

我也有同样的问题如果报表有多个数据集,则不能在变量表达式中使用“first()”函数。


我也不想将该值作为参数传递。我最终在同一数据集中创建了一个计算字段,该字段与我试图引用的数据相同,并且对我有效。

请发布完整的错误消息。在你的问题中包括一个你想要的结果的例子。谢谢,我试过了。我将表达式添加到变量中。我需要将变量与文本框中的一些文本一起使用。如何将数据格式化为yyyy?示例=变量!v1.Value+“Total is”我在没有格式化的情况下运行代码来查看它的功能。我得到一个错误:报表主体的变量(v1)值表达式使用聚合函数First、Last或Previous。这些聚合函数不能在变量值表达式中使用。更新:我遇到错误:我遇到错误:报表正文的变量(v1)值表达式使用聚合函数First、Last或Previous。这些聚合函数不能在变量值表达式中使用。我将尝试此操作…尝试过,但出现相同错误。一定是我做错了什么。理想情况下,我不想在变量中添加文本。之后我需要在其他地方使用过滤器中的变量。非常感谢您的帮助。谢谢。