2013-02-13 19 views
1

我的Tablix中的排序公式存在问题。排序总是如下:排序表达式中的字段验证错误

cint(Fields!KeyForRows.Value) 

但是现在这些字段可以包含字母数字值。所以我试图改变它:

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

但是这不起作用。据我了解,这是因为我的案例排序是 Fields!KeyForRows.Value,它检查条件的其他部分,并验证失败,我需要保留整数排序。

+0

你能给出一个数据集可能看起来像什么的例子,具体显示你可能获得的* KeyForRows *值的不同类型? – 2013-02-13 15:26:45

回答

1

是的,你是正确的IIF逻辑 - 它计算两个语句。作为一种变通方法,您可以定义自定义IIF或写你的表达如下:

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

感谢第二嵌套IIF你永远不会传递无效数据到CInt函数。如果KeyForRows是字母,然后到CInt您传递Nothing而不是KeyForRows值。

+0

+1我同意但我建议你在第二个'iif'中使用'isnumeric()' – glh 2013-02-14 20:49:53