以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]求助统计合格率  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91943)

--  作者:紫色幽魂
--  发布时间:2016/10/22 15:28:00
--  [求助]求助统计合格率
我用下面这段代码生统计表,增加了一个合格率,为什么合格率最后生成的不正确呢,还有请问怎么让合格率显示为百分比的样式


Dim b As New SQLGroupTableBuilder("日统计_车间统计", "检测项目")
b.Groups.Adddef("首次检测_检测时间", DateGroupEnum.Day, "日")
b.Groups.AddDef("车间")
b.Totals.AddDef("首次检测_检测量")
b.Totals.AddDef("首次检测_返修量")
b.Totals.AddExp("合格率","1 - 首次检测_返修量 / 首次检测_检测量")
b.VerticalTotal = True
Dim rq As Date
With RibbonTabs("自定义1")("无损日统计表")
rq = .Items("rq1").value
End With
b.Filter = "[首次检测_检测时间] = #" & rq & "#"
b.Build()
MainTable = Tables("日统计_车间统计")


[此贴子已经被作者于2016/10/22 15:27:56编辑过]

--  作者:有点蓝
--  发布时间:2016/10/22 15:40:00
--  
怎样不正确?
你是想先计算合格率在统计,还是想统计后再计算合格率。代码是前者


--  作者:紫色幽魂
--  发布时间:2016/10/22 15:59:00
--  
http://pan.baidu.com/s/1o8jhd3s
统计后再计算
最后生成报表是这个样子的,麻烦看下
[此贴子已经被作者于2016/10/22 15:59:06编辑过]

--  作者:有点蓝
--  发布时间:2016/10/22 15:59:00
--  
后者参考

Dim b As New SQLGroupTableBuilder("日统计_车间统计", "检测项目")
b.Groups.Adddef("首次检测_检测时间", DateGroupEnum.Day, "日")
b.Groups.AddDef("车间")
b.Totals.AddDef("首次检测_检测量")
b.Totals.AddDef("首次检测_返修量")
b.VerticalTotal = True
Dim rq As Date
With RibbonTabs("自定义1")("无损日统计表")
rq = .Items("rq1").value
End With
b.Filter = "[首次检测_检测时间] = #" & rq & "#"
b.Build()
With DataTables("日统计_车间统计").DataCols  \'用表达式列计算库存数据
    .Add("合格率",Gettype(Double), "1 - 首次检测_返修量 / 首次检测_检测量")
End With
DataTables("日统计_车间统计").datacols("合格率")..SetFormat("00.0%")
MainTable = Tables("日统计_车间统计")

--  作者:紫色幽魂
--  发布时间:2016/10/24 10:26:00
--  
非常感谢,已处理