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
Reporting services SSRS中过滤表达式的类型问题_Reporting Services_Filter_Row Number - Fatal编程技术网

Reporting services SSRS中过滤表达式的类型问题

Reporting services SSRS中过滤表达式的类型问题,reporting-services,filter,row-number,Reporting Services,Filter,Row Number,SQL Server 2008 R2,使用BIDS设计报告 我有一张桌子,我试图只显示某一行。也许有更好的方法可以做到这一点,但我遇到了过滤器表达式的错误,无论我如何完成我的初始任务,我都希望了解过滤 我从过滤器表达式开始(设置为“Integer”类型): 这导致了以下错误: Cannot compare data of types System.String and System.Int32. 我发现解决方法是将1改为“=1”,因为1作为字符串计算 因此,我当时: RowNumber(Not

SQL Server 2008 R2,使用BIDS设计报告

我有一张桌子,我试图只显示某一行。也许有更好的方法可以做到这一点,但我遇到了过滤器表达式的错误,无论我如何完成我的初始任务,我都希望了解过滤

我从过滤器表达式开始(设置为“Integer”类型):

这导致了以下错误:

Cannot compare data of types System.String and System.Int32.
我发现解决方法是将1改为“=1”,因为1作为字符串计算

因此,我当时:

RowNumber(Nothing) = =1
这并没有改变什么,我也犯了同样的错误

然后我试着对表达式的第一部分这样做:

=RowNumber(Nothing) = =1
这将错误更改为部署问题(仍然生成,这令人沮丧):

然后我尝试在RowNumber上使用CInt: CInt(行数(无)=1

然后我可以部署它,但错误只会变回第一个:

Cannot compare data of types System.String and System.Int32.
似乎无论我在这里尝试什么,我要么无法部署报告,要么得到一个错误,我将字符串与int进行比较

RowNumber返回一个整数,所以看起来应该可以这样做。我尝试用数据集的名称代替“Nothing”,但这并没有改变我看到的结果


我知道有很多方法可以解决我最初的问题,但我很好奇为什么过滤器表达式无效。

最好隐藏一个具有Visibility属性的行。只需单击任意文本框并转到visibily选项卡。现在可以单击show或hode并转到expression

默认值是隐藏的。所以在那里写一个表达式来隐藏行。 =IIf(非(行数=1),真,假)


如果出现任何错误,请告诉我行编号不可用于Tablix筛选器

使用
RowNumber(Nothing)1
作为行可见性属性修复了该问题


使用BIDS时,您不会收到任何指示问题所在的错误,但将报表导入报表生成器并从中部署会产生一个更具描述性的错误,最终帮助我解决问题。

这是哪个版本的SSRS?此外,您是否尝试在数据集属性(代表的属性)中进行筛选ort对象(如表)或其他地方?SQL Server 2008 R2中包含SSR。此筛选器位于tablix中,但我已尝试在行可见性级别应用它,结果相同。实际上,如果我将其放入报表生成器中,至少会返回一个实际错误(在筛选器表达式中不能使用行号),但对于我得到的行可见性表达式:可见性。tablix“TableName”的隐藏表达式包含错误:[BC30203]应为标识符。错误为“未声明RowNumber”-可能是因为它是一个函数。但是,如果我尝试将其用作函数(“=RowNumber(Nothing)!=1”或“=IIF(RowNumber(Nothing)!=1,true,false)”)我得到:“tablix‘TableName’的Visibility.Hidden表达式包含错误:[BC30203]应为标识符。”(请注意,将数据集或tablix名称“Nothing”更改为字符串不会更改错误。)这样做如何向查询中添加一个不影响它的新列(ORDER BY(item.productuse))RNUM“在item.productuse部分中,只需提及查询中您认为行将按其排序的任何列。然后,在avove查询中,通过RNUM=IIf(NOT(RNUM=1)调用,而不是按ROWNUMBER调用,TRUE,FALSE)…试试这个啊-好的,最后一次尝试是我使用!=而不是的错误。使用RowNumber(Nothing)1有效!
Error pvInvalidDefinition : The definition of the report '/ReportName' is invalid.
Cannot compare data of types System.String and System.Int32.