Validation 排序表达式中的字段验证错误

Validation 排序表达式中的字段验证错误,validation,reporting-services,field,Validation,Reporting Services,Field,我的表格中的排序公式有问题。排序始终如下所示: cint(Fields!KeyForRows.Value) 但现在字段可以包含字母数字值。所以我试着把它改成: iif(Parameters!DrillMain.Value ="...", Fields!KeyForRows.Value, cint(Fields!KeyForRows.Value)) 但这不起作用。据我所知,这是因为我的案件分类 字段!key forrows.Value,它检查条件的另一部分并在验证时失败,我需要将排序保留为整数

我的表格中的排序公式有问题。排序始终如下所示:

cint(Fields!KeyForRows.Value)
但现在字段可以包含字母数字值。所以我试着把它改成:

iif(Parameters!DrillMain.Value ="...", Fields!KeyForRows.Value, cint(Fields!KeyForRows.Value))
但这不起作用。据我所知,这是因为我的案件分类
字段!key forrows.Value
,它检查条件的另一部分并在验证时失败,我需要将排序保留为整数。

是的,您使用iif逻辑是正确的-这是计算两个语句。作为解决方法,您可以定义自定义IIF或编写表达式,如下所示:

IIF(Parameters!DrillMain.Value ="...", Fields!KeyForRows.Value, 
          cint(IIF(Parameters!DrillMain.Value ="...", Nothing, Fields!KeyForRows.Value)))

感谢第二个嵌套iif,您永远不会将无效数据传递到CInt函数。如果KeyForRows是字母顺序的,那么在CInt中,您不传递任何内容,而传递KeyForRows值。

是的,iif逻辑是正确的-它是计算两个语句。作为解决方法,您可以定义自定义IIF或编写表达式,如下所示:

IIF(Parameters!DrillMain.Value ="...", Fields!KeyForRows.Value, 
          cint(IIF(Parameters!DrillMain.Value ="...", Nothing, Fields!KeyForRows.Value)))

感谢第二个嵌套iif,您永远不会将无效数据传递到CInt函数。如果KeyForRows按字母顺序排列,那么在CInt中,您将不传递任何内容,而传递KeyForRows值。

您能否举例说明数据集的外观,特别是显示您可能获得的不同类型的KeyForRows值?您能否举例说明数据集的外观,具体显示您可能获得的不同类型的KeyForRows值?+1我同意,但我建议您在第二个
iif
中使用
isnumeric()
+1我同意,但我建议您在第二个
iif中使用
isnumeric()