以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  条件计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=32565)

--  作者:caiyt0
--  发布时间:2013/5/4 10:10:00
--  条件计算

当[jth]=JS001或JS006,[sjcn]=[sbms]-[xbms],否则,[sjcn]=[xbmu]-[sbmc]

用Datecolchangde该怎么写


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-5-4 10:53:31编辑过]

--  作者:Bin
--  发布时间:2013/5/4 10:12:00
--  
if e.datacol.name = "jth" then
  if e.newValue="JS001" orelse e.NewValue="JS006" then
   e.datarow("sjcn")= e.datarow("sbms")- e.datarow("xbms")
  else
  e.datarow("sjcn")= e.datarow("xbmu")- e.datarow("sbmc")
  end if
end if

--  作者:Bin
--  发布时间:2013/5/4 10:13:00
--  
严谨一点的话最好判断一下空值问题.
--  作者:caiyt0
--  发布时间:2013/5/4 10:20:00
--  
以下是引用Bin在2013-5-4 10:12:00的发言:
if e.datacol.name = "jth" then
  if e.newValue="JS001" orelse e.NewValue="JS006" then
   e.datarow("sjcn")= e.datarow("sbms")- e.datarow("xbms")
  else
  e.datarow("sjcn")= e.datarow("xbmu")- e.datarow("sbmc")
  end if
end if

我按这个公式下去算,值没显示啊


--  作者:Bin
--  发布时间:2013/5/4 10:23:00
--  
这是不可能的.
但是你不能生搬硬套,更加自己需求要稍微改下.
if e.datacol.name = "jth" then
  if e.newValue="JS001" orelse e.NewValue="JS006" then
   e.datarow("sjcn")= e.datarow("sbms")- e.datarow("xbms")
  else
  e.datarow("sjcn")= e.datarow("xbmu")- e.datarow("sbmc")
  end if
end if
明显的红色部分我写了判断只有更改 JTH的列才会统计.所以你更改 SBMS   XBMS这些列是没反应的.你应该根据自己需求更改判断条件



--  作者:Bin
--  发布时间:2013/5/4 10:25:00
--  
你没有说清楚你所有要求.别人不可能做得符合所有情况的. 你参考一下稍微更改一下,以达到符合自己的要求!