以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] SQLGroupTableBuilder  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138166)

--  作者:hotday1972
--  发布时间:2019/7/24 11:28:00
--  [求助] SQLGroupTableBuilder
求助,SQLGroupTableBuilder生成查询表后,如何对DataTable排序?以下是代码,谢谢老师!

Dim b As New SQLGroupTableBuilder("统计表_提案数","问题管理表")
b.C
b.Filter = "year(创建日期) = \'" & y & "\' And (状态 = \'生效\' or 状态 = \'批准\' or 状态 = \'退出\')"
b.Groups.AddDef("创建人")
b.Totals.AddDef("问题编号",AggregateEnum.Count,"记录数") \'根据不重复值列来统计记录数,也就是记录数
b.Build(False)
DataTabe("统计表_提案数").LoadOrder = "记录数" \' 
DataTabe("统计表_提案数").Load()
\'绘制柱状图
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.DataSource = "统计表_提案数"

红色代码没起作用

--  作者:有点蓝
--  发布时间:2019/7/24 11:36:00
--  
Dim b As New SQLGroupTableBuilder("统计表_提案数","问题管理表")
b.C
b.Filter = "year(创建日期) = \'" & y & "\' And (状态 = \'生效\' or 状态 = \'批准\' or 状态 = \'退出\')"
b.Groups.AddDef("创建人")
b.Totals.AddDef("问题编号",AggregateEnum.Count,"记录数") \'根据不重复值列来统计记录数,也就是记录数
b.Build()
Tabe("统计表_提案数").sort = "记录数"
\'绘制柱状图
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.DataSource = "统计表_提案数"

--  作者:hotday1972
--  发布时间:2019/7/24 12:52:00
--  
老师,不行的,我想到了,也试了。

Chart引用的是datatable, 不是table

Chart.DataSource = "统计表_提案数"


--  作者:有点蓝
--  发布时间:2019/7/24 13:44:00
--  
我测试没有问题,上传实例说明

Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))
g.Groups.AddDef("产品")
g.Totals.AddDef("数量")
g.Build()
MainTable = Tables("统计表1")

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.DataSource = "统计表1" \'设置绑定表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.X.DataField = "产品" \'X轴绑定到产品列
Series.Y.DataField = "数量" \'Y轴绑定到数量列

--  作者:hotday1972
--  发布时间:2019/7/24 14:15:00
--  
老师,我把这个按钮的代码都贴上来,老师帮我看看问题在哪里,谢谢!

Dim y As String = e.Form.Controls("cbb_年度").Value
\'对后台数据进行统计
Dim b As New SQLGroupTableBuilder("统计表_提案数","问题管理表")
b.C
b.Filter = "year(创建日期) = \'" & y & "\' And (状态 = \'生效\' or 状态 = \'批准\' or 状态 = \'退出\')"
b.Groups.AddDef("创建人")
b.Totals.AddDef("问题编号",AggregateEnum.Count,"记录数") \'根据不重复值列来统计记录数,也就是记录数
b.Build(False)
MainTable = Tables("统计表_提案数")
Tables("统计表_提案数").Sort = "记录数 DESC"
\'绘制柱状图
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.DataSource = "统计表_提案数"
Chart.SeriesList.Clear() \'清除图表原来的图系
Chart.VisualEffect = True
Chart.AxisX.ClearValueLabel
Chart.ChartType = ChartTypeEnum.Bar
Chart.HeaderFont = New Font("微软雅黑",18,FontStyle.Bold)
Chart.HeaderText = "提案数量排行榜 - " & y
Chart.LegendCompass = CompassEnum.South \'图例的位置
Chart.LegendFont = New Font("微软雅黑",10,FontStyle.Bold)
Chart.AxisX.AnnoRotation = 0 \'X轴标示逆时针旋转45度
Chart.AxisX.Font = New Font("微软雅黑",9,FontStyle.Bold)
Chart.LegendVisible = True \'显示图列
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Text = "提案人"
Series.X.DataField = "创建人" \'X轴绑定到产品列
Series.Y.DataField = "记录数" \'Y轴绑定到数量列
e.Form.Controls("Chart1").TopMost = True

结果:见附件


--  作者:hotday1972
--  发布时间:2019/7/24 14:17:00
--  
图片呢?
--  作者:hotday1972
--  发布时间:2019/7/24 14:19:00
--  


--  作者:hotday1972
--  发布时间:2019/7/24 14:20:00
--  
我咋看不见图片,附件添加了啊!图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2019/7/24 14:38:00
--  
上传方法:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78

重复上传直到上传成功

--  作者:有点蓝
--  发布时间:2019/7/24 14:39:00
--  
代码看不出有什么问题,上传实例测试