以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  呼叫------程版.........这样的图表看上去很别扭..能按要求做出所需要的图表吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10771)

--  作者:qhczy
--  发布时间:2011/6/22 18:26:00
--  呼叫------程版.........这样的图表看上去很别扭..能按要求做出所需要的图表吗?


图片点击可在新窗口打开查看此主题相关图片如下:图表疑问.bmp
图片点击可在新窗口打开查看

想让月份停在X轴,年份为图标.年份显在下面.

 

 

数据如下:


图片点击可在新窗口打开查看此主题相关图片如下:图示数据.bmp
图片点击可在新窗口打开查看

 

代码如下,望高手指点.

Dim q As new QueryBuilder

q.TableName = "订单销售汇总"
q.SelectString = "select 年份,sum (销售金额) 销售金额,月份 from  {订单} group by 年份,月份 "

q.Build
MainTable = Tables("订单销售汇总")
Dim g As New CrossTableBuilder("终端订单销售汇总", DataTables("终端订单销售汇总"))
g.Caption = "订单销售汇总"
g.HGroups.AddDef("年份")
g.VGroups.AddDef("月份")
g.Totals.AddDef("销售金额", "销售金额")
g.Build()
MainTable = Tables("订单销售汇总")
Tables("订单销售汇总").AutoSizeCols()
MainTable.Font = New Font("宋体",10,FontStyle.Regular)


Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("订单销售汇总") \'定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot \'图表类型改为XYPlot(线形)
Chart.DataSource = "订单销售汇总" \'设置绑定表
Chart.SeriesList.Clear() \'清除图表原来的图系
For Each c As Col In t.Cols
    If c.Name <> "销售金额" Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Caption \'设置图系的标题
        Series.X.DataField = "年份" \'X轴绑定到产品列
        Series.Y.DataField = c.Name \'设置Y轴的绑定列
       Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度
       Series.TooltipText = "X = {#XVAL}, Y = {#YVAL}"

    End If
Next
Chart.VisualEffect = False \'不采用Visual风格
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
MainTable = Tables("订单销售汇总")
MainTable.Font = New Font("宋体",10,FontStyle.Regular)

 

 

希望能生成这样的图表.一年一条线,右边的图示表示年份.

 


图片点击可在新窗口打开查看此主题相关图片如下:图表.bmp
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-6-23 19:12:42编辑过]

--  作者:mr725
--  发布时间:2011/6/22 18:49:00
--  
y 轴 ÷ 10000 试试。
--  作者:qhczy
--  发布时间:2011/6/22 18:51:00
--  

给个数据,谁能改改?

 

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


--  作者:易服
--  发布时间:2011/6/23 9:14:00
--  
开发版做的很多人无法帮你
--  作者:qhczy
--  发布时间:2011/6/23 19:13:00
--  
呼叫----程版!
--  作者:qhczy
--  发布时间:2011/6/23 20:23:00
--  

附:xls文档

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


--  作者:狐狸爸爸
--  发布时间:2011/6/24 8:10:00
--  

呵呵,为啥不呼叫狐爸呢?

 

Dim Chart As WinForm.Chart
Dim Series As WinForm.ChartSeries
Chart= e.Form.Controls("Chart1")
Chart.SeriesList.Clear()
Dim nms() As String = {"一","二","三","四","五","六","七","八","九","十","十一","十二"}
For Each r As Row In Tables("订单销售汇总").Rows
    Series = Chart.SeriesList.Add()
    series.Text = r("年份")
    Series.Length = nms.length
    For i As Integer = 0 To nms.Length - 1
        Series.X(i) = i
        Series.Y(i) = r(nms(i))
    Next
Next
For i As Integer = 0 To nms.Length - 1
    Chart.AxisX.SetValueLabel(i,nms(i))
Next
Chart.AxisX.AnnoWithLabels = True
Chart.LegendVisible = True

 

图片点击可在新窗口打开查看


--  作者:程兴刚
--  发布时间:2011/6/24 9:41:00
--  
就是的,还是狐狸他爸厉害!
--  作者:qhczy
--  发布时间:2011/6/24 9:50:00
--  
做个示例上来看看啊,我这边做出来怎么会报错呢?
--  作者:狐狸爸爸
--  发布时间:2011/6/24 10:02:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目80.foxdb