Foxtable(狐表)用户栏目专家坐堂 → 图表问题


  共有11082人关注过本帖树形打印复制链接

主题:图表问题

帅哥哟,离线,有人找我吗?
狐狸爸爸
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/26 11:30:00 [只看该作者]

Dim Chart As WinForm.Chart = e.Form.Controls("Chart1")
Dim dt As DataTable
Dim g As New GroupTableBuilder("统计表1", DataTables("下单"))
g.Groups.AddDef("材质")
g.Totals.AddDef("裂纹", AggregateEnum.Count)
g.Totals.AddDef("旧角",AggregateEnum.Count)
g.Totals.AddDef("起层",AggregateEnum.Count)
g.Totals.AddDef("不严",AggregateEnum.Count)
g.Totals.AddDef("尺差",AggregateEnum.Count)
g.Totals.AddDef("偏稍",AggregateEnum.Count)
g.Totals.AddDef("粘板",AggregateEnum.Count)
g.Totals.AddDef("其它",AggregateEnum.Count)
g.Filter = Tables("下单").Filter
dt = g.Build(True)

Chart.VisualEffect = True
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型
Chart.Stacked = True
Chart.SeriesList2.Clear() '清除图表原来的图系
Dim nms() As String = {"裂纹","旧角","起层","不严","尺差","偏稍","粘板","其它"}
Dim vls As Double
Dim Series As WinForm.ChartSeries '定义一个图系变量
For n As Integer = 0 To 7
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = dt.DataRows.Count '图系的数据点数等于表的行数
    Series.Text = nms(n)
    For i As Integer = 0 To dt.DataRows.Count - 1 '指定每个数据点的位置
        Series.X(i) = i '指定水平坐标
        Series.Y(i) = dt.DataRows(i)(nms(n)) '指定垂直坐标
        vls = vls + dt.DataRows(i)(nms(n))
    Next
Next
For n As Integer = 0 To 7
    Series = Chart.SeriesList2.Add() '增加一个图系
    Series.Length = dt.DataRows.Count '图系的数据点数等于表的行数
    Series.Text = nms(n)
    For i As Integer = 0 To dt.DataRows.Count - 1 '指定每个数据点的位置
        Series.X(i) = i '指定水平坐标
        Series.Y(i) = dt.DataRows(i)(nms(n)) / vls
    Next
Next
For r As Integer = 0 To dt.dataRows.Count - 1
    Chart.AxisX.SetValueLabel(r, dt.dataRows(r)("材质")) '指定字符表示
Next

 


 回到顶部
帅哥哟,离线,有人找我吗?
7032175
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:383 积分:2757 威望:0 精华:0 注册:2011/9/1 14:26:00
  发帖心情 Post By:2011/10/26 13:01:00 [只看该作者]

非常感谢狐狸爸爸的指导    

 

 

 材质1:裂纹10块  旧角10块 尺差20 等等   相加之和是  40块等

材质2:裂纹10块  旧角20块 尺差20 等等   相加之和是  50块等 

材质3:裂纹10块  旧角20块 尺差20 等等   相加之和是  50块等

 

三个材质的合是140块等 

 

用线型的图表体现是   材质1相加之和 除以 三个材质的总合 得出来的就是占有比例(材质1相加之和占材质总合的%之多少)   这样在图表里面就会出现一条线 如何加进去狐狸爸爸


 回到顶部
帅哥哟,离线,有人找我吗?
7032175
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:383 积分:2757 威望:0 精华:0 注册:2011/9/1 14:26:00
  发帖心情 Post By:2011/10/26 14:48:00 [只看该作者]

请狐狸爸爸帮我解决一下12楼的问题 谢谢您了


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/26 14:58:00 [只看该作者]

Dim Chart As WinForm.Chart = e.Form.Controls("Chart1")
Dim dt As DataTable
Dim g As New GroupTableBuilder("统计表1", DataTables("下单"))
g.Groups.AddDef("材质")
g.Totals.AddDef("裂纹", AggregateEnum.Count)
g.Totals.AddDef("旧角",AggregateEnum.Count)
g.Totals.AddDef("起层",AggregateEnum.Count)
g.Totals.AddDef("不严",AggregateEnum.Count)
g.Totals.AddDef("尺差",AggregateEnum.Count)
g.Totals.AddDef("偏稍",AggregateEnum.Count)
g.Totals.AddDef("粘板",AggregateEnum.Count)
g.Totals.AddDef("其它",AggregateEnum.Count)
g.Filter = Tables("下单").Filter
dt = g.Build(True)

Chart.VisualEffect = True
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型
Chart.Stacked = True
Chart.SeriesList2.Clear() '清除图表原来的图系
Dim nms() As String = {"裂纹","旧角","起层","不严","尺差","偏稍","粘板","其它"}
Dim vls As Double
Dim Series As WinForm.ChartSeries '定义一个图系变量
For n As Integer = 0 To 7
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = dt.DataRows.Count '图系的数据点数等于表的行数
    Series.Text = nms(n)
    For i As Integer = 0 To dt.DataRows.Count - 1 '指定每个数据点的位置
        Series.X(i) = i '指定水平坐标
        Series.Y(i) = dt.DataRows(i)(nms(n)) '指定垂直坐标
        vls = vls + dt.DataRows(i)(nms(n))
    Next
Next
Series = Chart.SeriesList2.Add() '增加一个图系
Series.Length = dt.DataRows.Count '图系的数据点数等于表的行数
Series.Text = "比例"
For i As Integer = 0 To dt.DataRows.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Dim v As Double = 0
    For Each nm As String In nms
        v = v +  dt.DataRows(i)(nm)
    Next
    Series.Y(i) = v / vls
Next
For r As Integer = 0 To dt.dataRows.Count - 1
    Chart.AxisX.SetValueLabel(r, dt.dataRows(r)("材质")) '指定字符表示
Next


 回到顶部
总数 14 上一页 1 2