Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net MS图表-如何在一张图表上叠加2年的数据_Vb.net_Winforms_Mschart - Fatal编程技术网

Vb.net MS图表-如何在一张图表上叠加2年的数据

Vb.net MS图表-如何在一张图表上叠加2年的数据,vb.net,winforms,mschart,Vb.net,Winforms,Mschart,在winforms应用程序中使用VB.net,我创建了2015年财务数据图表,其中包括与本年度未偿应收相关的4个系列。如图所示,所有功能均正常工作: 现在,用户希望将2014年的相同数据叠加在同一张图表上,以便将今年与前一年进行比较 我尝试了以下方法: 1) 用2014年的数据添加第二个数据源,这似乎不是一个好办法 2) 我曾经尝试过使用2015和2014年数据的单一数据源,并对每个集团系列的数据源进行过滤(不含运气) 这是我的密码: chtAR.DataSource = Nothi

在winforms应用程序中使用VB.net,我创建了2015年财务数据图表,其中包括与本年度未偿应收相关的4个系列。如图所示,所有功能均正常工作:

现在,用户希望将2014年的相同数据叠加在同一张图表上,以便将今年与前一年进行比较

我尝试了以下方法:

1) 用2014年的数据添加第二个数据源,这似乎不是一个好办法

2) 我曾经尝试过使用2015和2014年数据的单一数据源,并对每个集团系列的数据源进行过滤(不含运气)

这是我的密码:

     chtAR.DataSource = Nothing
    chtAR.Series.Clear()
    chtAR.DataSource = DS2.Tables(CurrentYear)
    chtAR.ChartAreas(0).AxisX.Interval = 2
    chtAR.ChartAreas(0).AxisY.Interval = 250000
    chtAR.ChartAreas(0).AxisX.Maximum = 52

    '*** Current Year ***

    chtAR.Series.Add("AvgAR$")
    chtAR.Series("AvgAR$").LegendText = CurrentYear + " Avg A/R $"
    chtAR.Series("AvgAR$").ChartType = DataVisualization.Charting.SeriesChartType.Line
    chtAR.Series("AvgAR$").BorderWidth = 3
    chtAR.Series("AvgAR$").Color = Color.Green
    chtAR.Series("AvgAR$").XValueMember = DS2.Tables(CurrentYear).Columns("WeekNo").ToString
    chtAR.Series("AvgAR$").YValueMembers = DS2.Tables(CurrentYear).Columns("AVG A/R").ToString

    chtAR.Series.Add("AvgAR$PastDue")
    chtAR.Series("AvgAR$PastDue").LegendText = CurrentYear + " Avg A/R Past Due $"
    chtAR.Series("AvgAR$PastDue").ChartType = DataVisualization.Charting.SeriesChartType.Line
    chtAR.Series("AvgAR$PastDue").BorderWidth = 3
    chtAR.Series("AvgAR$PastDue").Color = Color.DarkBlue
    chtAR.Series("AvgAR$PastDue").XValueMember = DS2.Tables(CurrentYear).Columns("WeekNo").ToString
    chtAR.Series("AvgAR$PastDue").YValueMembers = DS2.Tables(CurrentYear).Columns("AVG Past Due A/R").ToString

    chtAR.Series.Add("TotalAR$")
    chtAR.Series("TotalAR$").LegendText = CurrentYear + " total A/R $"
    chtAR.Series("TotalAR$").ChartType = DataVisualization.Charting.SeriesChartType.Line
    chtAR.Series("TotalAR$").BorderWidth = 3
    chtAR.Series("TotalAR$").Color = Color.LightGreen
    chtAR.Series("TotalAR$").XValueMember = DS2.Tables(CurrentYear).Columns("WeekNo").ToString
    chtAR.Series("TotalAR$").YValueMembers = DS2.Tables(CurrentYear).Columns("CurrentAR").ToString

    chtAR.Series.Add("PastDueAR$")
    chtAR.Series("PastDueAR$").LegendText = CurrentYear + " Past Due A/R $"
    chtAR.Series("PastDueAR$").ChartType = DataVisualization.Charting.SeriesChartType.Line
    chtAR.Series("PastDueAR$").BorderWidth = 3
    chtAR.Series("PastDueAR$").Color = Color.LightBlue
    chtAR.Series("PastDueAR$").XValueMember = DS2.Tables(CurrentYear).Columns("WeekNo").ToString
    chtAR.Series("PastDueAR$").YValueMembers = DS2.Tables(CurrentYear).Columns("PastDueAR").ToString
有人对我应该如何处理这件事有什么建议吗

像Telerik这样的东西是个不错的选择吗


谢谢

如果有人感兴趣的话,我想出来了

我的解决方案是更改查询返回的数据布局

数据库表如下所示:

日期| WeekNo | CurrentA/R | PastDueAR |等|

我编写了一个丑陋的查询(包含多个子查询),返回如下表:

WeekNo |过去一年当前应收|过去一年应收|过去一年应付账款|过去一年应付账款|等等

这使我能够拥有一个包含我所需的所有系列信息的数据源

新版本如下所示: