以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于图表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66268)

--  作者:wymoonwalker
--  发布时间:2015/4/2 11:27:00
--  关于图表
请问有没有关于生成图表的好例子学习一下?
--  作者:Bin
--  发布时间:2015/4/2 11:28:00
--  
帮助整个章节都是例子啊


--  作者:wymoonwalker
--  发布时间:2015/4/2 11:49:00
--  

小白,不大会改代码。

我用代码生成了一个统计汇总表,然后用图表显示这个统计表。

统计汇总表里有一列“合计”,然后图表在统计列也显示出一个“合计”,数据比其他显然大很多,而且也不必要。

我如何在图表中去掉“合计”呢,但统计表中得继续保留。

 

图表的代码:

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Bar \'图表1类型该为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot \'图表2类型该为线形
Chart.DataSource = "统计月报表2" \'设置绑定表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'给图表1增加一个图系
Series.Text = "合计_合同个数"
Series.X.DataField = "签订单位" \'X轴绑定到产品列
Series.Y.DataField = "合计_合同个数" \'Y轴绑定到数量列
Chart.SeriesList2.Clear() \'清除图表原来的图系
Series = Chart.SeriesList2.Add() \'给图表2增加一个图系
Series.Text = "合计_合同额"
Series.X.DataField = "签订单位" \'X轴绑定到产品列
Series.Y.DataField = "合计_合同额" \'Y轴绑定到数量列
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
Chart.AxisY.Text = "合计_合同个数"
Chart.AxisY2.Text = "合计_合同额"

 

统计表的代码:

Dim g As New CrossTableBuilder("统计月报表2", DataTables("合同台帐2015"))
g.HGroups.AddDef("签订单位")
g.VGroups.AddDef("审批", "已签订合同额|未签订合同额")
g.Totals.AddDef("合同个数","合同个数")
g.Totals.AddDef("合同额", "合同额")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()

Dim t As Table = Tables("统计月报表2")
t.DataTable.DataCols.Add("省内项目", Gettype(Double))
t.DataTable.DataCols.Add("省外项目", Gettype(Double))
t.DataTable.DataCols.Add("民用建筑", Gettype(Double))
For Each r As Row In t.Rows
    If r.Index = t.Rows.Count - 1 Then
        r("省内项目") = DataTables("合同台帐2015").Compute("sum(合同额)", "工程所在省 = \'山东省\'")
        r("省外项目") = DataTables("合同台帐2015").Compute("sum(合同额)", "工程所在省 <> \'山东省\'")
        r("民用建筑") = DataTables("合同台帐2015").Compute("sum(合同额)", "项目所属行业 = \'民用建筑\'")
           Else
        r("省内项目") = DataTables("合同台帐2015").Compute("sum(合同额)", "签订单位 = \'" & r("签订单位") & "\' and 工程所在省 = \'山东省\'")
        r("省外项目") = DataTables("合同台帐2015").Compute("sum(合同额)", "签订单位 = \'" & r("签订单位") & "\' and 工程所在省 <> \'山东省\'")
        r("民用建筑") = DataTables("合同台帐2015").Compute("sum(合同额)", "签订单位 = \'" & r("签订单位") & "\' and 项目所属行业 = \'民用建筑\'") 
    End If
Next
MainTable = t

 

 


--  作者:Bin
--  发布时间:2015/4/2 11:52:00
--  
请把文件例子发上来
--  作者:有点甜
--  发布时间:2015/4/2 11:59:00
--  

 呃,必须编写代码生成图表才能额外处理。

 

 具体请上传例子。


--  作者:wymoonwalker
--  发布时间:2015/4/2 16:28:00
--  

嗯,根据帮助和论坛里的例子,我做好了一个窗口图表。

代码就是先生成统计表,然后生成图表。

现在是这个窗口-设计窗口-预览的时候一切正常。

关掉窗口设计器,点击应用窗口时,显示的是代码里第一段写的统计表,而不是图表。

请问这是怎么回事?

 

 


--  作者:有点甜
--  发布时间:2015/4/2 16:30:00
--  

 窗口,设置成独立窗口或者模式窗口看看。

 

 或者,你切换表看看,窗口在其它表里


--  作者:wymoonwalker
--  发布时间:2015/4/2 16:33:00
--  
谢谢甜老师!这两天光学习图表,忘记窗口的知识了。设置成独立窗口就可以啦。