我正在将ASP.NET Chart控件用于DataBindCrossTable的柱形图。我根据位置获得了本年度和上一年的总销售额。 我不知道分支的数量,分支的数量可以根据查询的条件而改变。 我从查询中获得的示例数据表如下:
在这种情况下,因为丹麦只有一个 值,直到丹麦,它在图表中显示正确的数据,但在丹麦之后,图表显示错误的值,如丹麦其他国家的数据,并且数据的不匹配一直持续到最后。我知道问题是因为值单一。我能想到的解决方案是遍历数据表,检查是否有任何位置具有单个条目,然后为缺失的年份添加一个值为0的新行。
我想知道是否还有其他方法可以做到
这是我的图表的vb.net代码
Public Sub PopulateBranchesSale()
Dim dtTotalSaleDetails As DataTable = Nothing
Dim lsErr As String = ""
Try
cocDashBoard.FetchBranchesSale(csFranchise, csBranch, csDepartment, ciUserEmplCode, dtTotalSaleDetails, lsErr)
Chart12.DataSource = dtTotalSaleDetails
Chart12.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Column
Chart12.ChartAreas("ChartArea12").AxisX.LabelStyle.Interval = 1
Chart12.ChartAreas("ChartArea12").AxisX.MajorGrid.Enabled = False
Chart12.ChartAreas("ChartArea12").AxisY.MajorGrid.Enabled = False
Chart12.DataBindCrossTable(dtTotalSaleDetails.AsEnumerable, "Year", "Branch", "TotalSales", "Label=TotalSales")
Chart12.DataBind()
Catch ex As Exception
Master.AlertMessageBox(ex.Message)
End Try
End Sub