Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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
C# reportviewer中的比较没有';行不通_C#_Reportviewer_Rdlc - Fatal编程技术网

C# reportviewer中的比较没有';行不通

C# reportviewer中的比较没有';行不通,c#,reportviewer,rdlc,C#,Reportviewer,Rdlc,报告中的比较是如何工作的?我尝试了下一个表达: =Iif(IsNothing(Fields!COEF.Value), 0, Fields!SUM.Value - Fields!SUM.Value / Fields!COEF.Value) 从来都不是0。然后,我将sql查询更改为当COEF为null时使COEF=0 =Iif(Fields!COEF.Value = 0, 0, Fields!SUM.Value - Fields!SUM.Value / Fields!COEF.Value) 但它

报告中的比较是如何工作的?我尝试了下一个表达:

=Iif(IsNothing(Fields!COEF.Value), 0, Fields!SUM.Value - Fields!SUM.Value / Fields!COEF.Value)
从来都不是0。然后,我将sql查询更改为当COEF为null时使COEF=0

=Iif(Fields!COEF.Value = 0, 0, Fields!SUM.Value - Fields!SUM.Value / Fields!COEF.Value)

但它总是通过表达式进行计算。

问题是在得到结果之前对
IIf
的真/假部分进行评估。但是您可以编写自己的简单函数来克服这个限制

例如-在您的报告->报告属性->代码中

Public Function SafeDiv(n as decimal, d as decimal) as decimal
  If d = 0
    SafeDiv = 0
  Else
    SafeDiv= n / d
  End If
End Function    
然后在你的房子里

=Fields!SUM.Value - Code.SafeDiv(Fields!SUM.Value, Fields!COEF.Value)

结果集中是否有一行的系数为零?当然。但我在那里犯了错误。它似乎试图用零来分隔…如果我用常数来改变除法器,它会正常工作。这与我使用了另一个IIF类似。
=IIF(Fields!COEF.Value 0,Fields!SUM.Value-Fields!SUM.Value/IIF(Fields!COEF.Value=0,1,Fields!COEF.Value),Nothing)