Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
Sql 导致#错误的RDLC表达式_Sql_Visual Studio 2010_Reporting Services_Reporting_Rdlc - Fatal编程技术网

Sql 导致#错误的RDLC表达式

Sql 导致#错误的RDLC表达式,sql,visual-studio-2010,reporting-services,reporting,rdlc,Sql,Visual Studio 2010,Reporting Services,Reporting,Rdlc,我有两个十进制字段,利润和收入。它们显示在tablix控件中,每个控件都有自己的列。在第三列中,我想将利润除以收入。当这两个字段中的任何一个为零时,结果是#错误,我猜这是由于除以零造成的。我想出了以下表达式来解决这个问题: =iif(Cint(Fields!revenue.Value) = 0 orelse cint(Fields!profit.Value) = 0 ,"",FormatPercent(Fields!profit.Value / Fields!revenue.Value,2))

我有两个十进制字段,利润和收入。它们显示在tablix控件中,每个控件都有自己的列。在第三列中,我想将利润除以收入。当这两个字段中的任何一个为零时,结果是#错误,我猜这是由于除以零造成的。我想出了以下表达式来解决这个问题:

=iif(Cint(Fields!revenue.Value) = 0 orelse cint(Fields!profit.Value) = 0 ,"",FormatPercent(Fields!profit.Value / Fields!revenue.Value,2))
这个表达式仍然会导致错误。我做了一些测试,去掉了表达式的错误部分。表情是这样的:

=iif(Cint(Fields!revenue.Value) = 0 orelse cint(Fields!profit.Value) = 0 ,"No","Divide")
运行该表达式时,原来有#错误的点现在显示“否”。这告诉我表达式的工作方式与我预期的一样,但当我在false条件中添加除法时,为什么它会抛出#错误呢。它不应该击中表达式的该部分。感谢您的帮助。我还尝试了switch语句,但结果是一样的。只要我在表达式中有除法,它就会抛出#错误。

非常类似于:

IIF计算所有参数。如果任何参数生成错误,那么整个函数都将抛出错误,而不管这三个参数中应该返回哪一个

请尝试以下代码:

=iif(Cint(Fields!revenue.Value) = 0,"",FormatPercent(Fields!profit.Value / iif(Cint(Fields!revenue.Value) = 0, Fields!revenue.Value, 1 ),2))
这段代码有第二个iif,可以防止任何参数被零除。 (我将代码直接编辑到浏览器中:可能需要稍作调整。此外,您确实应该使用单元格或占位符属性来设置百分比的格式,而不是您的表达式。)

小心

似乎无法在报表iif表达式中使用不受支持的数据类型

以下是我所拥有的:

=IIf(Fields!MyNotSoComplexObject.Value is nothing, "No object", Fields!MyOtherField.Value )
当“MyNotSoComplexObject”为空时,一切正常,当它被分配到某个位置时,我出现了#错误

我通过尝试在报告中直接显示“MyNotSoComplexObject”发现了这一点


我的工作是在我的数据集中输入一个布尔值,以验证“MyNotSoComplexObject”是否有值。

谢谢。我不知道如何评估表情的两面。哇,我正准备在同样的场景中拔出我的头发。谢谢你的信息!哇!如果M$能抽出时间来解决这个问题,那就太好了,这样我们就不会花那么多时间绞尽脑汁去寻找解决这个问题的方法。荒唐的谢谢,我有负数的问题,我用
Math.Abs((Sum(Fields!Amount.Value))