标签: iif-function

Crystal Reports公式:IsNull + Iif

在这个网站上有这个问题的答案提示,但我问的是一个稍微不同的问题.

Crystal Reports在哪里记录此语法不起作用?

Trim({PatientProfile.First}) + " "
    + Trim(Iif(
        IsNull({PatientProfile.Middle}) 
        , Trim({PatientProfile.Middle}) + " "
        , " "
        )
    )  
+ Trim({PatientProfile.Last})
Run Code Online (Sandbox Code Playgroud)

我知道解决方案是

If IsNull({PatientProfile.Middle}) Then
    Trim({PatientProfile.First})
        + " " + Trim({PatientProfile.Last})
Else
    Trim({PatientProfile.First})
       + " " + Trim({PatientProfile.Middle})
       + " " + Trim({PatientProfile.Last})
Run Code Online (Sandbox Code Playgroud)

但我们怎么想弄清楚我们不能使用第一个版本?

IsNull的文档说

  • 计算当前记录中指定的字段,如果该字段包含空值,则返回TRUE

而Iif给出了

  • [返回]如果expression为True则返回truePart,如果expression为False则返回falsePart.返回值的类型与truePart和falsePart的类型相同.

我想如果你盯着关于"返回值类型"的那一行你可以得到它,但是......

iif-function isnull crystal-reports

5
推荐指数
3
解决办法
2万
查看次数

带有是/否字段的IIF声明

我有一个关于使用带有是/否字段的IIF语句的问题.在我的情况下,我试图让声明做一件事,如果是/否字段=是和另一个如果是"否" 我意识到Access将Yes/No字段存储为-1,0并试图以这种方式表达语句.

我做了这个陈述:

NetDonation: IIf([PickupRequired]-1,[DonationValue]-8.75, 0, [DonationValue])
Run Code Online (Sandbox Code Playgroud)

遗憾的是,此声明不区分PickupRequired字段为"No"或"Yes",并且无论PickupRequired字段=否,它都会从所有值中减去8.75.

ms-access iif-function

5
推荐指数
1
解决办法
1万
查看次数

"在检查它不是DBNull之后,从类型'DBNull'转换为'Boolean'类型无效"

在我的ASP.Net Web应用程序中,我收到此错误:

从类型"DBNull"到"布尔"类型的转换无效.

从这个功能:

Namespace atc
    Public Class Nil
        '...
        Public Shared Function Bool(ByVal Item As Object) As Boolean
            Return IIf(Item IsNot Nothing AndAlso Not IsDBNull(Item), CBool(Item), False)
        End Function
        '...
    End Class
End Namespace
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我明确地检查是否ItemDBNull,如果是,那么我回来了False.

没有错误没有发生时Item没有 DBNull的,所以我不明白为什么会这样.

vb.net iif-function ternary-operator

3
推荐指数
1
解决办法
7474
查看次数

vb.net:iif如何给出空引用异常?

一直在看很多关于使用Iif()的帖子/文章.当我尝试像C/C#/ C++等那样使用像条件运算符这样的IIf()时,所有这一切都开始了.

我试图做的完全符合以下帖子的内容:

使用VB.NET IIF我得到NullReferenceException

但是,我实现的解决方案是从以下msdn站点借来的:

http://msdn.microsoft.com/en-us/library/27ydhh0d%28v=vs.80%29.aspx

之后我才了解了vb.net中的If()方法.

所以最后我写了一个函数,它返回适当的值(使用反射)来达到目的.但是那个方法(我写的)没有抛出任何异常.事实上,我能够检查函数内部类型的可空性.

Function ReturnValue(ByVal MyType As SomeType, ByVal PropertyName as String) As Object
    If MyType Is Nothing Then Return String.Empty
    Dim arrPropInfo As PropertyInfo() = MyType.GetType().GetProperties()
    Return arrPropInfo.Where(Function(x) x.Name = PropertyName).Item(0).GetValue(MyType, Nothing)
End Function
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否有一些内容写在Iif()内来抛出这样的错误? - NullReferenceException

If MyType Is Nothing Then Throw New NullReferenceException()
Run Code Online (Sandbox Code Playgroud)

或者这里有更大的工作吗?所以假设我想编写像iif这样的函数,如果参数列表中的某些内容为null,则抛出错误是上述方法的唯一方法吗?

vb.net iif-function nullreferenceexception

2
推荐指数
1
解决办法
1640
查看次数

SSRS Avg函数返回与预期不同的结果

目前我试图平均一组数字,但具有一定的条件.

是否有可能使用iif()avg()并返回正确的结果呢?

此外,截至目前,我的计算返回一个小数返回功率(8.9267 .... E -05).

我尝试AVG通过有条件地求和然后除以条件计数来绕过函数,但它给出了相同的结果.

有人可以解释为什么返回并提供帮助吗?

目前我有:

=avg(iif((This_case) AND (That_case) AND (This_conditional)
  , Fields!ResponseRate.Value
  , 0))
Run Code Online (Sandbox Code Playgroud)

基本上,如果满足某些条件,我想要平均ResponseRate.

sum功能适用于条件但平均值不适用.

iif-function average function reporting-services ssrs-2008

2
推荐指数
1
解决办法
6542
查看次数

SSRS SWITCH语法不起作用

我的数据集中有一列将返回几个不同的值.为了在报告中使用分组,我试图清理数据.在阅读了几篇帖子,我发现这篇文章似乎与我的需求非常接近.

我设置了这样的表达式

=SWITCH(
Left(Fields!T6_TOW_BY.Value,3)="ACE","ACE WRECKER",
Left(Fields!T6_TOW_BY.Value,3)="CAR","CAR STORE",
Left(Fields!T6_TOW_BY.Value,7)="THE CAR","CAR STORE",
Fields!T6_TOW_BY.Value
Run Code Online (Sandbox Code Playgroud)

)

我预览时表达式不会抛出错误,但所有列都显示"错误"任何人都可以告诉我我在哪里出错吗?

谢谢

iif-function switch-statement reporting-services ssrs-2008-r2

1
推荐指数
1
解决办法
1457
查看次数

为什么这不会作为IIF功能,但作为IF声明?

以下作品:

If 1=1
    rdoYes.checked = True
Else
    rdoNo.checked = True
End If
Run Code Online (Sandbox Code Playgroud)

但是,以下不起作用:

IIF(1=1, rdoYes.checked = True, rdoNo.checked = True)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

谢谢!

vb.net asp.net iif-function if-statement asp.net-3.5

0
推荐指数
1
解决办法
1386
查看次数

Function IIF, how to make it take 2N + 1 arguments of logical expressions?, C #

In Visual Basic, there is this IIF Function, as in Crystal Report, etc ...

In C # itself, this function does not exist, but it is the same as doing something like this:

bool a = true;
string b = a ? "is_True" : "is_False";
Run Code Online (Sandbox Code Playgroud)

But for the code to be a bit easier to read I wanted to do it as a function for C #, leaving it like this:

public static T IIf<T>(bool expression, T truePart, T …
Run Code Online (Sandbox Code Playgroud)

c# iif-function iif

-1
推荐指数
1
解决办法
254
查看次数