Таблица данных ASP.NET DataBindCrossTable показывает неверные данные - PullRequest
0 голосов
/ 10 февраля 2019

Я использую элемент управления ASP.NET Chart для столбчатой ​​диаграммы с DataBindCrossTable. Я получаю общий объем продаж за текущий и предыдущий год в зависимости от местоположения.Я не знаю количество веток заранее, и количество ветвей может меняться в зависимости от условия в запросе.Мой образец данных, который я получаю из запроса, выглядит следующим образом:

  • Филиал TotalSale Год
  • Америка 50 2018
  • Америка 40 2017
  • Британия 352018
  • Британия 20 2017
  • Китай 120 2018
  • Китай 68 2017
  • Дания 20 2018
  • Индия 100 2018
  • Индия 50 2017
  • Испания 129 2018
  • Испания 23 2017

В этом случае, поскольку Дания имеет только одно значение, она отображает правильные данные в диаграмме доДания, но после Дании Диаграмма показывает неверное значение, как Данные других стран в Дании, и несоответствие данных продолжается до конца. Я знаю, что проблема из-за единственного значения.Решение, которое я мог придумать, состояло в том, чтобы просмотреть таблицу данных и проверить, есть ли в каком-либо месте одна запись, а затем добавить новую строку со значением 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...