以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据点出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79710)

--  作者:lgj716330
--  发布时间:2016/1/7 16:57:00
--  数据点出错
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t1 As Table = Tables("销售预算进度分析") \'定义一个变量t引用数据表
Chart = e.Form.Controls("销售预算1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.SeriesList.Clear() \'清除图表原来的图系
For Each c As Col In t.Cols
    If c.Name <> "所属单位"  And c.Name <> "年" And c.Name <> "月"  And c.Name <> "预算完成比率"   Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t1.Rows.Count  \'设置图系的长度
        For r1 As Integer = 1 To t1.Rows.Count 
            Series.X(r1) = r1
            Series.Y(r1) = t1.Rows(r1)(c.Name)
        Next
    End If
Next
For r1 As Integer = 1 To t1.Rows.Count 
    Chart.AxisX.SetValueLabel(r1, t1.Rows(r1)("月")) \'指定字符表示
Next


问题:位置错位,而且预算数据没显示并提示错误

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

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

--  作者:大红袍
--  发布时间:2016/1/7 16:59:00
--  

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t1 As Table = Tables("销售预算进度分析") \'定义一个变量t引用数据表
Chart = e.Form.Controls("销售预算1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.SeriesList.Clear() \'清除图表原来的图系
For Each c As Col In t.Cols
    If c.Name <> "所属单位"  And c.Name <> "年" And c.Name <> "月"  And c.Name <> "预算完成比率"   Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t1.Rows.Count  \'设置图系的长度
        For r1 As Integer = 0 To t1.Rows.Count -1
            Series.X(r1) = r1
            Series.Y(r1) = t1.Rows(r1)(c.Name)
        Next
    End If
Next
For r1 As Integer = 0 To t1.Rows.Count -1
    Chart.AxisX.SetValueLabel(r1, t1.Rows(r1)("月")) \'指定字符表示
Next


--  作者:lgj716330
--  发布时间:2016/1/7 17:10:00
--  
如何变成1-12月呢

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


--  作者:大红袍
--  发布时间:2016/1/7 17:13:00
--  

不可能这样,加上代码

 

Chart.AxisX.AnnoWithLabels = True \'启用字符标示


--  作者:lgj716330
--  发布时间:2016/1/7 17:19:00
--  
哦,明白了
--  作者:lgj716330
--  发布时间:2016/1/7 17:31:00
--  
另外,双图表且不绑定的情况下,代码要怎样写
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t1 As Table = Tables("销售预算进度分析") \'定义一个变量t引用数据表
Chart = e.Form.Controls("销售预算1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot \'图表2类型该为线形
Chart.SeriesList.Clear() \'清除图表原来的图系
Chart.SeriesList2.Clear() \'清除图表原来的图系
For Each c As Col In t.Cols
    If c.Name <> "所属单位"  And c.Name <> "年" And c.Name <> "月"  And c.Name <> "预算完成比率"   Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t1.Rows.Count  \'设置图系的长度
        For r1 As Integer = 0 To t1.Rows.Count -1
            Series.X(r1) = r1
            Series.Y(r1) = t1.Rows(r1)(c.Name)
        Next
    ElseIf c.Name <> "所属单位"  And c.Name <> "年" And c.Name <> "月"  And c.Name <> "销售实际"  And c.Name <> "销售预算"    Then
        Series = Chart.SeriesList2.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t1.Rows.Count  \'设置图系的长度
        For r1 As Integer = 0 To t1.Rows.Count -1
            Series.X(r1) = r1
            Series.Y2(r1) = t1.Rows(r1)(c.Name)
        Next
    End If
Next

--  作者:大红袍
--  发布时间:2016/1/7 17:32:00
--  
上传实例。
--  作者:lgj716330
--  发布时间:2016/1/7 23:10:00
--  
其中“预算完成比率”要求为折线图
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.foxdb



--  作者:大红袍
--  发布时间:2016/1/7 23:24:00
--  
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t1 As Table = Tables("销售预算进度分析") \'定义一个变量t引用数据表
Chart = e.Form.Controls("销售预算1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot \'图表2类型该为线形
Chart.SeriesList.Clear() \'清除图表原来的图系
Chart.SeriesList2.Clear() \'清除图表原来的图系
Chart.AxisX.ClearValueLabel
For Each c As Col In t1.Cols
    If c.Name <> "所属单位"  And c.Name <> "年" And c.Name <> "月" And c.Name <> "预算完成比率" Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t1.Rows.Count  \'设置图系的长度
        For r1 As Integer = 0 To t1.Rows.Count -1
            Series.X(r1) = r1
            Series.Y(r1) = val(t1.Rows(r1)(c.Name))
        Next
    End If
    If c.Name <> "所属单位"  And c.Name <> "年" And c.Name <> "月" And c.Name = "预算完成比率" Then
        Series = Chart.SeriesList2.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t1.Rows.Count  \'设置图系的长度
        For r1 As Integer = 0 To t1.Rows.Count -1
            Series.X(r1) = r1
            Series.Y(r1) = val(t1.Rows(r1)("预算完成比率"))
        Next
    End If
Next
For r1 As Integer = 0 To t1.Rows.Count -1
    Chart.AxisX.SetValueLabel(r1, t1.Rows(r1)("月") & "月") \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示

--  作者:lgj716330
--  发布时间:2016/1/7 23:32:00
--  
可以了,谢谢。只是还不太明白,先消化下。