Foxtable(狐表)用户栏目专家坐堂 → [求助]查询和统计结果结合图表的应用


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

主题:[求助]查询和统计结果结合图表的应用

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/31 20:45:00 [显示全部帖子]

 呃,首先,横坐标是什么,纵坐标是什么?

 

 而且,谁说一定要绑定列值? 看示例二

 

http://www.foxtable.com/help/topics/0968.htm

 

http://www.foxtable.com/help/topics/0970.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/31 23:10:00 [显示全部帖子]

Dim DT As fxDataSource
Dim tbl As Table = e.Form.Controls("Table1").Table
Dim b As New SQLCrossTableBuilder("AA","D")
b.HGroups.AddDef("PID")
'b.HGroups.AddDef("CID")
b.HGroups.AddDef("Per")
b.VGroups.AddDef("Class")
b.Totals.AddDef("V")
b.Totals.AddDef("V","累计",True) '
b.Filter = "PID = 'P1'"
Dt = b.BuildDataSource()
tbl.DataSource  = DT


Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot
Chart.DataSource = tbl.Name  '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.SeriesList2.Clear() '清除图表原来的图系
For Each c As Col In tbl.Cols
    If c.Name <> "PID" And c.Name <> "CID" And  c.Name <> "Per" And  c.Name <> "Class" Then
        If c.Caption Like "*V*" Then
           
           
            Series = Chart.SeriesList.Add() '增加一个图系
            Series.Text = c.Caption '设置图系的标题
            Series.X.DataField = "Per" 'X轴绑定到产品列
            Series.Y.DataField = c.name '设置Y轴的绑定列
        ElseIf c.Caption Like "*累计*" Then
           
            Series = Chart.SeriesList2.Add() '给图表2增加一个图系
            Series.Text = c.Caption '设置图系的标题
            Series.X.DataField = "Per" 'X轴绑定到产品列
            Series.Y.DataField = c.Name '设置Y轴的绑定列
        End If
    End If
Next
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/1 9:29:00 [显示全部帖子]

 回复6楼,方法1,把类型转成字符类型;方法2,不要绑定列的方式生成表,用代码一个一个赋值,看2楼

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/1 17:12:00 [显示全部帖子]

 要指定长度

 

Dim DT As fxDataSource
Dim tbl As Table = e.Form.Controls("Table1").Table
Dim b As New SQLCrossTableBuilder("AA","D")
b.HGroups.AddDef("PID")
'b.HGroups.AddDef("CID")
b.HGroups.AddDef("Per")
b.VGroups.AddDef("Class")
b.Totals.AddDef("V","本期")
b.Totals.AddDef("V","累计",True) '
b.Filter = "PID = 'P1'"
Dt = b.BuildDataSource()
tbl.DataSource  = DT


Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot
Chart.DataSource = tbl.Name  '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.SeriesList2.Clear() '清除图表原来的图系

For Each c As Col In tbl.Cols
    If c.Name <> "PID" And c.Name <> "CID" And  c.Name <> "Per" And  c.Name <> "Class" Then
        If c.Caption Like "*本期*" Then
            Series = Chart.SeriesList.Add() '增加一个图系
        Else
            Series = Chart.SeriesList2.Add() '给图表2增加一个图系
        End If
        Series.Text = c.caption '设置图系的标题
        series.Length = tbl.Rows.Count
        For i As Integer = 0 To tbl.Rows.Count - 1
            series.x(i) = i
            series.y(i) = tbl.Rows(i)(c.Name)
            Chart.AxisX.SetValueLabel(i,tbl.Rows(i)("Per"))
        Next
        '------------数据绑定列的做法
        'Series.X.DataField = "Per" 'X轴绑定到产品列
        'Series.Y.DataField = c.Name '设置Y轴的绑定列
        '--------------数据绑定列的做法结束
    End If
Next

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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/2 16:48:00 [显示全部帖子]

上面加入代码清除


Chart.AxisX.ClearValueLabel


 回到顶部