以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  统计分析的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91102)

--  作者:douglas738888
--  发布时间:2016/9/29 14:31:00
--  统计分析的问题

请教老师,我的统计表因为列比较多,不适合用SQLCrossTableBuilder进行占比分析,用SQLGroupTableBuilder来分析,系统的合计行又不会显示总占比的百分比,想在合计行下增加一行,名称为“失误比例”进行总占比分析,怎样实现

 

下面是部分例子代码,请老师看看

 

Dim b As New SQLGroupTableBuilder("统计表00001","投标评价")
b.C   
b.Groups.AddDef("项目属地")
b.Groups.AddDef("投标结果")

b.Totals.AddExp("前期准备_任务时间_较紧","前期准备_任务时间_较紧*-1","任务时间_较紧",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_正常","前期准备_任务时间_正常*-1","任务时间_正常",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_充裕","前期准备_任务时间_充裕*-1","任务时间_充裕",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_现场踏勘_一般","前期准备_现场踏勘_一般*-1","现场踏勘_一般",AggregateEnum.Sum)

b.Filter = "投标日期 >= #" & e.Form.Controls("DateTimePicker1").Value & "# And 投标日期 <= #" & e.Form.Controls("DateTimePicker2").Value & "# and 投标结果 Like \'%项目未中标%\'"
b.VerticalTotal = True


Tables("投标评价_Table1").DataSource = b.BuildDataSource()

 

DataTables("投标评价_Table1").DataCols.Add("失误点数",Gettype(Double), "前期准备_任务时间_较紧 + 前期准备_任务时间_正常")

 

 

[此贴子已经被作者于2016/9/29 14:32:45编辑过]

--  作者:有点蓝
--  发布时间:2016/9/29 14:49:00
--  
上传例子测试
--  作者:douglas738888
--  发布时间:2016/9/29 14:54:00
--  

窗口是 投标评价  ,请老师看看,哪种分析更适合,主要想实现,垂直合计和水平合计,同时在垂直合计里面显示总占比百分比

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip


--  作者:有点蓝
--  发布时间:2016/9/29 16:04:00
--  

截图说明一下具体要什么样的效果


Dim b As New SQLGroupTableBuilder("统计表00001","投标评价")
b.C    
b.Groups.AddDef("项目属地")
b.Groups.AddDef("投标结果")

b.Totals.AddExp("前期准备_任务时间_较紧","前期准备_任务时间_较紧*-1","任务时间_较紧",AggregateEnum.Sum) 
b.Totals.AddExp("前期准备_任务时间_正常","前期准备_任务时间_正常*-1","任务时间_正常",AggregateEnum.Sum) 
b.Totals.AddExp("前期准备_任务时间_充裕","前期准备_任务时间_充裕*-1","任务时间_充裕",AggregateEnum.Sum) 
b.Totals.AddExp("前期准备_现场踏勘_一般","前期准备_现场踏勘_一般*-1","现场踏勘_一般",AggregateEnum.Sum)

b.Filter = "投标日期 >= #" & e.Form.Controls("DateTimePicker1").Value & "# And 投标日期 <= #" & e.Form.Controls("DateTimePicker2").Value & "# and 投标结果 Like \'%项目未中标%\'"
b.VerticalTotal = True

b.GrandProportion = True
Tables("投标评价_Table1").DataSource = b.BuildDataSource()

 

DataTables("投标评价_Table1").DataCols.Add("失误点数",Gettype(Double), "前期准备_任务时间_较紧 + 前期准备_任务时间_正常")


--  作者:douglas738888
--  发布时间:2016/9/29 16:57:00
--  

请教老师,如果用SQLCROSS,好像不能实现这样的统计分析,用SQLGROUP也有些属性不能满足,请老师指导指导 ,谢谢!

 

下图,在不增加行的情况下,好像合计不能如此分析数据,如果增加行能处理数据是最好的。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:未标题-1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/9/29 16:58:17编辑过]

--  作者:有点蓝
--  发布时间:2016/9/29 17:29:00
--  
下面代码自己改改放到窗口

Dim b As New SQLGroupTableBuilder("统计表00001","投标评价")
b.C
b.Groups.AddDef("项目属地")
b.Groups.AddDef("投标结果")

b.Totals.AddExp("前期准备_任务时间_较紧","前期准备_任务时间_较紧*-1","任务时间_较紧",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_正常","前期准备_任务时间_正常*-1","任务时间_正常",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_充裕","前期准备_任务时间_充裕*-1","任务时间_充裕",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_现场踏勘_一般","前期准备_现场踏勘_一般*-1","现场踏勘_一般",AggregateEnum.Sum)

\'b.Filter = "投标日期 >= #" & e.Form.Controls("DateTimePicker1").Value & "# And 投标日期 <= #" & e.Form.Controls("DateTimePicker2").Value & "# and 投标结果 Like \'%项目未中标%\'"
b.VerticalTotal = True
b.GrandProportion = True
b.Build
DataTables("统计表00001").DataCols.Add("失误点数",Gettype(Double), "前期准备_任务时间_较紧 + 前期准备_任务时间_正常")
Dim dr As Row
For i As Integer = 0 To Tables("统计表00001").Rows.Count(True) - 1
    dr = Tables("统计表00001").Rows(i,True)
    dr("前期准备_任务时间_较紧gdr") = Format(dr("前期准备_任务时间_较紧") / dr("失误点数"),"0.00")
    dr("前期准备_任务时间_正常gdr") = Format(dr("前期准备_任务时间_正常") / dr("失误点数"),"0.00")
    dr("前期准备_任务时间_充裕gdr") = Format(dr("前期准备_任务时间_充裕") / dr("失误点数"),"0.00")
Next