Reporting services SSRS中过滤表达式的类型问题
SQL Server 2008 R2,使用BIDS设计报告 我有一张桌子,我试图只显示某一行。也许有更好的方法可以做到这一点,但我遇到了过滤器表达式的错误,无论我如何完成我的初始任务,我都希望了解过滤 我从过滤器表达式开始(设置为“Integer”类型): 这导致了以下错误: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
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.