Foxtable(狐表)用户栏目专家坐堂 → 这个表达式错在哪?


  共有2159人关注过本帖树形打印复制链接

主题:这个表达式错在哪?

帅哥哟,离线,有人找我吗?
xsq05103
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:234 威望:0 精华:0 注册:2016/1/22 21:59:00
这个表达式错在哪?  发帖心情 Post By:2016/2/2 23:28:00 [只看该作者]

为什么在len()用“十”、“*”都没有错,就是不能用“-”

 


图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
xsq05103
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:234 威望:0 精华:0 注册:2016/1/22 21:59:00
  发帖心情 Post By:2016/2/2 23:39:00 [只看该作者]

我是想将:IsNull('抽样地点:'+[抽样地点] + ',','') + IsNull('收获年限:'+[收获年限]+ ',','') + IsNull('入库时间:'+[入库时间]+ ',','')+ IsNull('代表数量:'+[代表数量]+ ',','')+ IsNull('产地:'+[产地]+ ',','')   这行代码形成的文本最后一个逗号去掉。

 回到顶部
帅哥哟,离线,有人找我吗?
xsq05103
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:234 威望:0 精华:0 注册:2016/1/22 21:59:00
  发帖心情 Post By:2016/2/2 23:46:00 [只看该作者]

这行代码没有出错,但最后一个字符为逗号:SubString(IsNull('抽样地点:'+[抽样地点] + ',','') + IsNull('收获年限:'+[收获年限]+ ',','') + IsNull('入库时间:'+[入库时间]+ ',','')+ IsNull('代表数量:'+[代表数量]+ ',','')+ IsNull('产地:'+[产地]+ ',',''),1,Len(((IsNull('抽样地点:'+[抽样地点] + ',','') + IsNull('收获年限:'+[收获年限]+ ',','') + IsNull('入库时间:'+[入库时间]+ ',','')+ IsNull('代表数量:'+[代表数量]+ ',','')+ IsNull('产地:'+[产地]+ ',','')))))
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:在说明计算列中的表达式中.zip

[此贴子已经被作者于2016/2/2 23:51:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 9:35:00 [只看该作者]

很麻烦的,如果用表达式做

 

iif(iif([抽样地点] is null, 0 , len(抽样地点)+6) + iif(收获年限 is null, 0, len(收获年限)+6) = 0, '', substring(iif([抽样地点] is not null, '抽样地点:'+[抽样地点] + ',','') + iif([收获年限] is not null,'收获年限:'+ [收获年限] + ',',''),1, iif([抽样地点] is null, 0 , len(抽样地点)+6) + iif(收获年限 is null, 0, len(收获年限)+6) - 1))


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 9:40:00 [只看该作者]

建议用代码做

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:检验报告.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
xsq05103
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:234 威望:0 精华:0 注册:2016/1/22 21:59:00
  发帖心情 Post By:2016/2/3 23:47:00 [只看该作者]

以下是引用大红袍在2016/2/3 9:35:00的发言:

很麻烦的,如果用表达式做

 

iif(iif([抽样地点] is null, 0 , len(抽样地点)+6) + iif(收获年限 is null, 0, len(收获年限)+6) = 0, '', substring(iif([抽样地点] is not null, '抽样地点:'+[抽样地点] + ',','') + iif([收获年限] is not null,'收获年限:'+ [收获年限] + ',',''),1, iif([抽样地点] is null, 0 , len(抽样地点)+6) + iif(收获年限 is null, 0, len(收获年限)+6) - 1))

谢谢老师。

在你的启发下,我的代码改为:

SubString(IsNull('抽样地点:'+[抽样地点] + ',','') + IsNull('收获年限:'+[收获年限]+ ',','') + IsNull('入库时间:'+[入库时间]+ ',','')+ IsNull('代表数量:'+[代表数量]+ ',','')+ IsNull('产地:'+[产地]+ ',',''),1,iif([抽样地点] is null, 0 , len(抽样地点)+6 + iif(收获年限 is null, 0, len(收获年限)+6) - 1))

经测试也可以的。

==============================================

小结:

求字符长度有两种方法:

(1)利用函数len()

(2)分段求长度,再将各段长度相加

===================================================

还可以这样做:

SubString(IsNull('抽样地点:'+[抽样地点] + ',','') + IsNull('收获年限:'+[收获年限]+ ',','') + IsNull('入库时间:'+[入库时间]+ ',','')+ IsNull('代表数量:'+[代表数量]+ ',','')+ IsNull('产地:'+[产地]+ ',',''),1,IsNull(len('抽样地点')+len([抽样地点]+1),0)+IsNull(len('收获年限')+len([收获年限]+1),0)+IsNull(len('入库时间')+len([入库时间]+1),0)+IsNull(len('代表数量')+len([代表数量]+1),0)+IsNull(len('产地')+len([产地]+1)-1,0)
)


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/4 9:23:00 [只看该作者]

 嗯嗯,能用就好

 回到顶部