以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]统计表效率问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191728) |
-- 作者:洮沙 -- 发布时间:2024/5/6 11:00:00 -- [求助]统计表效率问题 有以下统计表代码,关于效率问题,麻烦问一下老师是否有改进的的方法或者思路? 因为同时需要生成的统计表比较多,整体上感觉特慢。 \'左边图表1 If FrWidth >= 1600 Then \'业务统计图表数据生成 Dim g As New SQLGroupTableBuilder("日常业务按年统计", "任务指派") g.C g.Filter = "申报期_年 > 2017" g.Groups.AddDef("申报期_年", "年份") g.Totals.AddDef("业务编号", AggregateEnum.Count, "业务量") g.Build() If DataTables.Contains("日常业务按年统计") = True Then Dim sum As Integer = DataTables("日常业务按年统计").Compute("sum(业务量)") Dim n As Integer = DataTables("日常业务按年统计").DataRows.Count Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Chart = fr.Controls("Chart1") \' 引用窗口中的图表 \'Chart.ChartType = ChartTypeEnum.Bar \'设置图表类型为柱状 Chart.ChartType = ChartTypeEnum.XYPlot \'设置图表类型为折线 Chart.VisualEffect = True \'改变样式 Chart.DataSource = "日常业务按年统计" \'设置绑定表 Chart.SeriesList.Clear() \'清除图表原来的图系 Chart.AxisX.GridMajorVisible = False \'不显示网格线 Chart.AxisY.GridMajorVisible = False \'不显示网格线 Chart.AxisY.Min = 0 \'指定Y轴的最小值 Chart.AxisX.Text = "年份(共" & n & "年)" Chart.AxisY.Text = "业务量" & vbcrlf & "(" & sum & ")" Series = Chart.SeriesList.Add() \'增加一个图系 Series.X.DataField = "年份" \'X轴绑定到月份列 Series.Y.DataField = "业务量" \'Y轴绑定到数量列 Series.DataLabelText = "{#YVAL}" End If End If
|
-- 作者:有点蓝 -- 发布时间:2024/5/6 11:02:00 -- 没啥改进的了 |
-- 作者:洮沙 -- 发布时间:2024/5/6 14:38:00 -- 老师,我改用异步函数能够分别生成统计表了,麻烦问一下图表如何调用Build(True)生成的统计表数据? |
-- 作者:有点蓝 -- 发布时间:2024/5/6 14:42:00 -- 方法1、http://www.foxtable.com/webhelp/topics/0985.htm Chart.DataSource = "日常业务按年统计" \'设置绑定表 改为 Chart.DataTable = Build(True)生成的统计表 2、改为遍历:http://www.foxtable.com/webhelp/topics/0967.htm,看方法一
|
-- 作者:洮沙 -- 发布时间:2024/5/6 14:52:00 -- 这两种方法都不能用,因为异步生成的统计表不显示,请老师帮忙! 帮助中: 要在异步函数中正常使用这四个类,必须将Build方法的可选参数设置为True,这样生成的表就不会出现在主界面中,例如: Dim g As New SQLGroupTableBuilder("统计表1", "订单") [此贴子已经被作者于2024/5/6 14:52:16编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/5/6 14:53:00 -- 建一个全局变量,异步列里调用同步把生成的统计表赋值给全局变量 |
-- 作者:洮沙 -- 发布时间:2024/5/6 15:20:00 -- 老师按照指点修改后执行代码不报错了,但是绑定表不执行(红色代码分别测试后不行),不知什么原因? \'统计生成 Dim g As New SQLGroupTableBuilder("日常业务按年统计", "任务指派") g.C g.Filter = "申报期_年 > 2017" g.Groups.AddDef("申报期_年", "年份") g.Totals.AddDef("业务编号", AggregateEnum.Count, "业务量") _TJtable1 = g.Build(True) Functions.BeginSyncExecute("主页数据刷新_左边图表1") \'主页数据刷新_左边图表1函数 Dim n As Integer = _TJtable1.DataRows.Count If n > 0 Then Dim sum As Integer = _TJtable1.Compute("sum(业务量)") Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Chart = fr.Controls("Chart1") \' 引用窗口中的图表 Chart.ChartType = ChartTypeEnum.XYPlot \'设置图表类型为折线 Chart.VisualEffect = True \'改变样式 Chart.DataSource = "日常业务按年统计" \'设置绑定表 Chart.DataSource = _TJtable1.name \'设置绑定表 Chart.SeriesList.Clear() \'清除图表原来的图系 Chart.AxisX.GridMajorVisible = False \'不显示网格线 Chart.AxisY.GridMajorVisible = False \'不显示网格线 Chart.AxisY.Min = 0 \'指定Y轴的最小值 Chart.AxisX.Text = "年份(共" & n & "年)" Chart.AxisY.Text = "业务量" & vbcrlf & "(" & sum & ")" Series = Chart.SeriesList.Add() \'增加一个图系 Series.X.DataField = "年份" \'X轴绑定到月份列 Series.Y.DataField = "业务量" \'Y轴绑定到数量列 Series.DataLabelText = "{#YVAL}" End If [此贴子已经被作者于2024/5/6 15:22:30编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/5/6 15:36:00 -- \'统计生成 Dim g As New SQLGroupTableBuilder("日常业务按年统计", "任务指派") g.C g.Filter = "申报期_年 > 2017" g.Groups.AddDef("申报期_年", "年份") g.Totals.AddDef("业务编号", AggregateEnum.Count, "业务量") dim dt as datatable = g.Build(True) Functions.BeginSyncExecute("主页数据刷新_左边图表1",dt ) \'主页数据刷新_左边图表1函数 _TJtable1 = args(0) Dim n As Integer = _TJtable1.DataRows.Count If n > 0 Then Dim sum As Integer = _TJtable1.Compute("sum(业务量)") …… Chart.VisualEffect = True \'改变样式 Chart.DataTable =_TJtable1 \'设置绑定表 Chart.SeriesList.Clear() \'清除图表原来的图系 …… [此贴子已经被作者于2024/5/6 15:37:03编辑过]
|
-- 作者:洮沙 -- 发布时间:2024/5/6 17:06:00 -- 合适了,谢谢老师! 问题出在: Chart.DataSource = _TJtable1.name \'设置绑定表(显示的表) Chart.DataTable =_TJtable1 \'设置绑定表(内存中的表)
[此贴子已经被作者于2024/5/6 17:22:31编辑过]
|