以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]判断值是否为空的表达式是什么? (http://foxtable.net/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: 表达式 示例 Dim Val As Integer = 1000 上面的语句完全等效于: Dim Val As
Integer = 1000 可以看出,对于一些简单的分支判断,使用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
|