Foxtable(狐表)用户栏目专家坐堂 → 不同列怎么求和?


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

主题:不同列怎么求和?

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


加好友 发短信
等级:童狐 帖子:236 积分:1922 威望:0 精华:0 注册:2017/10/1 12:15:00
不同列怎么求和?  发帖心情 Post By:2017/10/22 19:30:00 [只看该作者]

两列,分别是检测费用和维修费用,只有需要维修的时候才填写维修费用,最后统计总费用的时候要把维修费用也加上,我只找到单列求和的代码,这个求教老师了?

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/10/22 19:49:00 [只看该作者]

空值的判断

按照这个搜索


我们来测试一下,你先在某行输入日期,年、月两列的值确是自动计算得出了,可是如果你删除日期列的内容,按道理年、月列的内容应该为空。
但事实上,年、月都会等于1,原因何在呢?
这是因为在日期列为空的时候,通过行返回的日期值并不是空值,而是等于: #01/01/0001#
同样如果没有输入数量和单价,金额也不会为空,而是等于0,因为数值列为空的时候,其返回的值也不是空值,而是0。

所以为了“完美”,我们将DataColChanged事件代码改为:

Dim dr As DataRow = e.DataRow
Select
Case e.DataCol.Name
    Case "数量","单价","折扣"
       
If dr.IsNull("数量") OrElse dr.IsNull("单价") Then
'如果数量或单价为空
            dr("金额") = Nothing
        Else

   
        dr("金额") = dr("数量") * dr("单价") * (1 - dr("折扣"))
        End If
    Case "日期"
   
    If dr.IsNull("日期") Then
'如果日期列为空
            dr("年") = Nothing
            dr("月") = Nothing
        Else

            dr("年") = dr("日期").Year
            dr("月") = dr("日期").Month
        End If
End
Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/22 20:07:00 [只看该作者]

方法一:分别单列求和,然后,两个和相加。

 

方法二:多加一列表达式列,合计两列行,最后统计表达式列。


 回到顶部