以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  统计出现空值的计算问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=115580)

--  作者:douglas738888
--  发布时间:2018/3/9 15:33:00
--  统计出现空值的计算问题

请教老师,下面代码的统计如果出现空值(无任何内容),后面的增加列就不会计算,  这样的空值出现场景是相关的数据尚未到期填入,如果有数据了就能统计

 

问题:如果下面黄色的列在空值的情况下,如何补空值默认为0, 生成后用遍历来补空值为0吗? 用ReplaceFor替换是能实现,这样符合写码要求吗?

统计的示例:  员工姓名    类型      任务量    天数     效率       进度

                   老马         A类        10           12      -1        13.0

                   老马         B类        20           10       2         8.0

                   老马         C类        8             8        补空值   

                   老马         D类        7         补空值       3                      

 

 

Dim b1 As New SQLGroupTableBuilder("统计表3","表A")
b1.C
b1.Groups.AddDef("执行人","员工姓名")
b1.Groups.AddDef("类型")
b1.Totals.AddDef("员工编号",AggregateEnum.Count,"任务量")
b1.Totals.AddDef("天数") \'因为未到期尚未填入数据,统计时会出现空值
b1.Totals.AddDef("效率") \'因为未到期尚未填入数据,统计时会出现空值

b1.Filter = "日期 >= \'" & e.Form.Controls("DateTimePicker1").Value & "\' And 日期 <= \'" & e.Form.Controls("DateTimePicker2").Value & "\'And 执行人 Like \'%" & e.Form.Controls("ComboBox1").Text & "%\'" 
b1.GrandProportion = True \'总占比
Tables("信息_Table2").DataSource = b1.BuildDataSource()
Tables("信息_Table2").AutoSizeCols()
DataTables("信息_Table2").DataCols.Add ("进度",Gettype(Double)," 天数 - 效率")
DataTables("信息_Table2").DataCols("进度").SetFormat("#0.0")

[此贴子已经被作者于2018/3/9 15:46:29编辑过]

--  作者:有点甜
--  发布时间:2018/3/9 17:06:00
--  

DataTables("信息_Table2").DataCols.Add ("进度",Gettype(Double)," 天数 - 效率")

 

改成

 

DataTables("信息_Table2").DataCols.Add ("进度",Gettype(Double)," isnull(天数,0) - isnull(效率,0)")

 

http://www.foxtable.com/webhelp/scr/0602.htm