以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]怎么按月和按年来生产统计图表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88682)

--  作者:bing
--  发布时间:2016/8/7 17:12:00
--  [求助]怎么按月和按年来生产统计图表
怎么按月和按年来生产统计图表
--  作者:大红袍
--  发布时间:2016/8/7 17:14:00
--  

先生成统计表。

 

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

 


--  作者:2900819580
--  发布时间:2016/8/7 17:15:00
--  
Dim yy As WinForm.ComboBox = e.Form.Controls("Com年")
Dim de As String = Nothing
Dim fi As String = Nothing
Dim g As New CrossTableBuilder("月统计", DataTables("订单明细"))
g.HGroups.AddDef("年")
g.VGroups.AddDef("月")
g.Totals.AddDef("总价", "金额")
If yy.Text <> Nothing Then
de = yy.Text & " " 
    fi = "[年] = \'" & yy.Text  & "\'" \'2015年\'"
End If
g.Filter = fi
g.Build()

Tables("统计1_ta统计表").DataSource = DataTables("月统计")
Tables("统计1_ta统计表").AutoSizeCols
Dim Chart As WinForm.Chart = e.Form.Controls("Chart1")


Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("月统计") \'定义一个变量t引用数据表
\'Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.SeriesList.Clear() \'清除图表原来的图系
Chart.SeriesList2.Clear()
Chart.AxisX.ClearValueLabel

Chart.AxisX.AnnoRotation = 0 \'X轴标示逆时针旋转45度
For Each c As Col In t.Cols
    If c.Name <> "年" Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Caption \'设置图系的标题
        Series.Length = t.Rows.Count \'设置图系的长度
        For r As Integer = 0 To t.Rows.Count - 1
            Series.X(r) = r
            Series.Y(r) = t.Rows(r)(c.Name)
            Chart.AxisX.SetValueLabel(r, t.Rows(r)("年")) \'指定字符表示
        Next
        Series.DataLabelText = "{#YVAL}"
    End If
Next

Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)

Chart.BarClusterWidth = 50
Dim fnt As New Font("黑体",22,FontStyle.bold)
If de = Nothing Then de = "月度"
Chart.HeaderText =de &  "业绩分析报告"
Chart.HeaderFont = fnt

--  作者:2900819580
--  发布时间:2016/8/7 17:15:00
--  
以上供你参考,实际的要按实际的来做。最近刚好做销售统计表。
--  作者:bing
--  发布时间:2016/8/7 18:05:00
--  

为什么一点窗口的随意一个任务之后,窗口就不见了


--  作者:大红袍
--  发布时间:2016/8/8 9:13:00
--  
以下是引用bing在2016/8/7 18:05:00的发言:

为什么一点窗口的随意一个任务之后,窗口就不见了

 

你代码怎么写?

 

具体问题,截图,或者上传实例说明。


--  作者:bing
--  发布时间:2016/8/8 9:50:00
--  回复:(大红袍)以下是引用bing在2016/8/7 18:05:00的...

窗口那里我把它设置成共有的之后解决了,但是图表那里,我先生成统计表之后,下一次打开项目的时候还是要再生成一次之后才可以生成图表,有没有办法只要设置一次就可以了

这是代码部分

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


--  作者:大红袍
--  发布时间:2016/8/8 10:18:00
--  
 把代码写到AfterLoad事件
[此贴子已经被作者于2016/8/8 10:18:05编辑过]

--  作者:bing
--  发布时间:2016/8/8 11:21:00
--  回复:(大红袍) 把代码写到AfterLoad事件[al...

但是我的窗口是这样的,
图片点击可在新窗口打开查看此主题相关图片如下:s0w}q6bj0h6t4zz`c0_xp3l.png
图片点击可在新窗口打开查看

,我想要点button之后,统计表才出来


--  作者:大红袍
--  发布时间:2016/8/8 11:22:00
--  

 把代码写到按钮里面啊