以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  想做一个pie图标,想直接通过代码而非统计表生成统计图怎么办  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60970)

--  作者:nclo
--  发布时间:2014/12/4 15:57:00
--  想做一个pie图标,想直接通过代码而非统计表生成统计图怎么办

。水平太次,看了很久关于直接代码生成图表的帮助还是不得要领。想求大神帮忙写一下按钮代码


想实现的功能如下:1、窗口加一个combobox1,里面内容为(全市,顺庆区,嘉陵区,高坪区),加一个生成按钮。希望选择全市,生成的pie图就是包含顺庆区,嘉陵区,高坪区所有的各个类别专合社各自所占比例。选择顺庆区就是生成的pie图包含顺庆区各个类别专合社各自所占比例。类别就是畜牧养殖类,蔬果种植类,水产养殖类,农机类。麻烦大神解答!!严重感谢!!




图片点击可在新窗口打开查看此主题相关图片如下:2014112722501680574.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:2014112722502844657.png
图片点击可在新窗口打开查看


--  作者:nclo
--  发布时间:2014/12/4 15:59:00
--  
比例就是个数,例如全市总共1000个专合社,畜牧养殖类有324个。求大神解救。
--  作者:有点甜
--  发布时间:2014/12/4 16:02:00
--  

 1、先生成统计表;

 

 2、再根据统计表生成图

 

不会做,就上传例子


--  作者:nclo
--  发布时间:2014/12/4 16:09:00
--  
甜老师,帮助文档里不是说可以不做统计表,直接用代码生成吗?
--  作者:有点甜
--  发布时间:2014/12/4 16:20:00
--  
以下是引用nclo在2014-12-4 16:09:00的发言:
甜老师,帮助文档里不是说可以不做统计表,直接用代码生成吗?

 

最后生成前都是需要先生成统计表,这样取数据方便。

 

你不会做就上传例子吧


--  作者:nclo
--  发布时间:2014/12/4 16:29:00
--  
谢谢甜老师!晚上再请教您上传例子,现在没带狗,打不开。
--  作者:nclo
--  发布时间:2014/12/7 22:29:00
--  
麻烦甜老师周一抽空帮我看看,我实在是搞不定。做了一个窗口(专合社种类统计图表界面),里面有个combobox,一个生产图表按钮。

想实现的功能,当选择combobox为全市,chart显示所有类型专合社所占比例的pie统计图,选择顺庆区时,只显示顺庆区所有类型专合社比例的PIE统计图。另外不想新增统计表,想直接在代码中加入统计代码,。甜老师可以吗?万分感谢您。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


--  作者:nclo
--  发布时间:2014/12/7 22:30:00
--  
帮助里,图表基础那章说可以跳过统计表。可以吗?
--  作者:有点甜
--  发布时间:2014/12/7 22:46:00
--  

Dim filter As String = "1=1"
Dim cbx As WinForm.ComboBox = e.Form.Controls("ComboBox1")
If cbx.Text <> "全市" Then
    filter &= " and 第1列 = \'" & cbx.Text & "\'"
End If

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim dt As DataTable = DataTables("表A") \'定义一个变量t引用数据表
Dim sm As Integer = dt.Compute("count(_Identify)", filter) \'计算总数量
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie \'图表1类型改为Bar(条形)
chart.SeriesList.Clear
For Each lb As String In dt.GetValues("第2列", filter)
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Length = 1 \'一个系列只能包括一个值
    Dim temp As Integer = dt.Compute("count(_Identify)", filter & " and 第2列 = \'" & lb & "\'") \'计算总数量
    Series.Text = lb & "(" & temp & ")" \'设置图系的标题
    Series.Y(0) = temp \'指定值
    Series.DataLabelText = Math.Round(temp*100/sm,2) & "%" \'计算百分比
Next
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.East \'图列显示在东方(右方)


--  作者:nclo
--  发布时间:2014/12/7 23:05:00
--  
感谢得已经不知道说什么好了。来四川成都找我。安排火锅,兔肉串串,白酒。QQ261035892,15808178626