Foxtable(狐表)用户栏目专家坐堂 → 表达式转计算代码


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

主题:表达式转计算代码

帅哥哟,离线,有人找我吗?
程兴刚
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/11/19 12:48:00 [只看该作者]

及时生效用这个:

if e.col.name = "合格面积" 
     if e.datarow("造林类别")= "退耕" and e.datarow("林种") = "生态林"
           e.datarow("合格面积") =  e.datarow("设计面积")
     else
           e.datarow("合格面积")  is nothing
     end if
end if


放在表属性的datacolchanging事件中!


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2008/11/19 16:56:00 [只看该作者]

表达式:
IIF([造林类别] = '退耕'and [林种] = '生态林',IsNull([设计面积],0) * 20*8,IIF([造林类别] = '退耕'and [林种] = '经济林',IsNull([设计面积],0) * 20*5,Null))
计算代码:
if e.datarow("造林类别") = "退耕"and e.datarow("林种") = "生态林" Then
   e.datarow(e.datacol.name) = e.datarow("设计面积")*20*8
   if e.datarow("造林类别") = "退耕"and e.datarow("林种") = "经济林" Then
   e.datarow(e.datacol.name) = e.datarow("设计面积")*20*5
   end if
else
   e.datarow(e.datacol.name) = nothing
end if
以上代码红色部分不生效,怎么改?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/19 16:59:00 [只看该作者]

  if e.datarow("造林类别") = "退耕"  or e.datarow("林种") = "经济林" Then

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/11/19 22:17:00 [只看该作者]

如果您分不清and和or,这样试试,

列计算代码:

if e.datarow("造林类别") = "退耕"
     if e.datarow("林种") = "生态林" Then
          e.datarow(e.datacol.name) = e.datarow("设计面积")*20*8
     else
          if e.datarow("林种") = "经济林" Then
              e.datarow(e.datacol.name) = e.datarow("设计面积")*20*5
          else
              e.datarow(e.datacol.name) = nothing 
          end if
      end if
end if


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2008/11/19 22:31:00 [只看该作者]

可能没有表述清楚
IIF([造林类别] = '退耕'and [林种] = '生态林',IsNull([设计面积],0) * 20*8,IIF([造林类别] = '退耕'and [林种] = '经济林',IsNull([设计面积],0) * 20*5,Null))

表达式一致的计算代码???


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/11/19 22:40:00 [只看该作者]

前面有点问题,测试这个:

if e.datarow("造林类别") = "退耕"
     if e.datarow("林种") = "生态林" Then
          e.datarow(e.datacol.name) = e.datarow("设计面积")*20*8
     else
          if e.datarow("林种") = "经济林" Then
              e.datarow(e.datacol.name) = e.datarow("设计面积")*20*5
          else
              e.datarow(e.datacol.name) = nothing 
          end if
      end if
else
    e.datarow(e.datacol.name) = nothing 
end if

这样相当于and
if e.datarow("造林类别") = "退耕"
     if e.datarow("林种") = "生态林" Then
满足后再进行下一行的判断!

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2008/11/19 22:44:00 [只看该作者]

代码可执行就是不太好理解,14楼是正确的,16楼不行

[此贴子已经被作者于2008-11-19 22:53:00编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/11/19 23:25:00 [只看该作者]

为什么不行?

if e.datarow("造林类别") = "退耕"
     if e.datarow("林种") = "生态林" Then
          e.datarow(e.datacol.name) = e.datarow("设计面积")*20*8
     else
          if e.datarow("林种") = "经济林" Then
              e.datarow(e.datacol.name) = e.datarow("设计面积")*20*5
          else
              e.datarow(e.datacol.name) = nothing 
          end if
      end if
else
    e.datarow(e.datacol.name) = nothing 
end if

14楼的公式:当“造林类别”列不等于“退耕”的时候是否不会有结果(也就是公式所在列不会为空)?您在公式所在列输入内容,然后删除“造林类别”列的内容,计算一下看看结果对不对?

16楼只是增加了一个当 e.datarow("造林类别") 不等于"退耕"的时候,同样执行  e.datarow(e.datacol.name) = nothing   按理说,不应该是错误的!


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2008/11/20 10:52:00 [只看该作者]

当造林类别是荒山时不应该有补助(为空)。20为每年的补助标准,生态林补8年、经济林补5年,荒山没有补助。
要的就是14楼的公式:当“造林类别”列不等于“退耕”的时候是否不会有结果,而16楼的都有结果。


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/11/20 12:03:00 [只看该作者]

没道理的!

if e.datarow("造林类别") = "退耕"
    ... ...
else
    e.datarow(e.datacol.name) = nothing 
end if


 回到顶部
总数 22 上一页 1 2 3 下一页