以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]判断值是否为空的表达式是什么?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88466)

--  作者:527383691
--  发布时间:2016/8/3 14:20:00
--  [求助]判断值是否为空的表达式是什么?

在IFF()函数中

根据值是否为空判断要怎么编写代码?,

比如

要根据【章节号】这一列是否有值返回值应该怎么编写?

是我下面这样吗?

IIF(【章节号】><"",TRUEVALUE,FALSEVALUE)


--  作者:jerry85618
--  发布时间:2016/8/3 14:34:00
--  

IIF

IIF函数根据一个表达式的计算结果,返回两个值中的一个。

语法:

IIF(expression, TrueValue, FalseValue)

expression: 表达式
TrueValue: 表达式成立的时候,返回此值
FalseValue:表达式不成立的时候,返回此值

示例

Dim Val As Integer = 1000
Dim
m As String = IIF(Val > 500, "大", "小")

上面的语句完全等效于:

Dim Val As Integer = 1000
Dim
m As String
If
Val > 500 Then
    m =
"大"
Else

    m =
"小"
End
If

可以看出,对于一些简单的分支判断,使用IIF函数能够让代码显得更为简洁。


--  作者:jerry85618
--  发布时间:2016/8/3 14:39:00
--  

关于空值

表达式用Null表示空值,例如将折扣列的表达式设为:

IIF([数量] > 1000, 0.1, Null)

意思是:如果数量大于1000,折扣设为0.1,否则无折扣。

可以用 Is Null语句判断某列内容是否为空

例如在订单表中,金额列的公式可以设为:

IIf([折扣] Is Null, [数量] * [单价], [数量] * [单价] * (1 - [折扣]))

意思是,如果折扣列没有输入内容,那么金额等于:

[数量] * [单价]

如果已经输入折扣,那么金额等于:

[数量] * [单价] * (1 - [折扣])

实际上,上面的公式用IsNull函数来编写更为简单:

[数量] * [单价] * (1 - IsNull([折扣], 0))

但是有的时候,我们是没有办法用IsNull函数的,只能用Is Null语句,例如使用表达式筛选时,需要从订单表中筛选出折扣为空的行,那么筛选表达式为:

[折扣] Is Null

关于筛选,会有专门的章节讲述。

IsNull函数可以返回列的值,所以多用于计算,而Is Null语句返回一个逻辑值,所以多用于条件筛选,关于Is Null语句的实际应用,我们将在开发指南中接触到。

如果要判断内容是否不为空,可以加上Not关键词,例如:

[折扣] Is Not Null


--  作者:527383691
--  发布时间:2016/8/3 15:05:00
--  

<IIF([@a,章节号] is Null, " SSSSSSSSSS",  [@A,大纲] & "" & [@A,章节号] & "节及SSSSSS")>

为何这个表达式在WORD报表中不能得到值呢?


--  作者:大红袍
--  发布时间:2016/8/3 15:25:00
--  

试试改一下,分别测试

 

[@a,章节号]

 

<[@a,章节号] = "">

 

<IIF([@a,章节号] = "", " SSSSSSSSSS",  "AAAAAA")>

 

<IIF([@a,章节号] = "", " SSSSSSSSSS",  [@A,大纲] & "" & [@A,章节号] & "节及SSSSSS")>


--  作者:527383691
--  发布时间:2016/8/3 15:34:00
--  

好像都不行


--  作者:527383691
--  发布时间:2016/8/3 15:38:00
--  

Word报表模板中表达式是这样的

<IIF([@开案表,章节号] = "",  [@开案表,测试大纲] ,  [@开案表,测试大纲] & "" & [@开案表,章节号] & "节及FLTM  BO 131-03-2014") >

生成的报表时时这样的

<IIF(4.1 = "",  WSS-M99P2222-C1 ,  WSS-M99P2222-C1 & "" & 4.1 & "节及FLTM  BO 131-03-2014") >


--  作者:大红袍
--  发布时间:2016/8/3 16:45:00
--  

 转一下半角

 

http://www.foxtable.com/webhelp/scr/2885.htm