Я создаю диаграмму DotNet.Highcharts, в которой используются данные из двух таблиц: "Расходы" и "Входы". Я использую оператор SQL для создания DataTable
для каждого. Первый (для входящих) под названием Dt
содержит IncCost
и IncDate
. Второй (для расходов) под названием Dt2
содержит ExpCost
и ExpDate
.
Я могу составить график IncCost
против IncDate
и ExpCost
против ExpDate
. Проблема возникает, когда я пытаюсь объединить IncDate
и ExpDate
(окончание), поскольку стоимость для IncCost
и ExpCost
отображается в зависимости от положения даты в (окончание), а не фактической даты, с которой она связана.
Вот вызовы, которые я использую для создания каждой DataTable:
SqlDataAdapter Adp = new SqlDataAdapter("select CONVERT(DATETIME, IncDate, 103) AS IncDate, SUM(IncCost) AS IncCost from Incomings GROUP BY CONVERT(DATETIME, IncDate, 103) ORDER BY CONVERT(DATETIME, IncDate, 103)", con);
SqlDataAdapter Adp2 = new SqlDataAdapter("select CONVERT(DATETIME, ExpDate, 103) AS ExpDate, SUM(ExpCost) AS ExpCost from Expenditures GROUP BY CONVERT(DATETIME, ExpDate, 103) ORDER BY CONVERT(DATETIME, ExpDate, 103)", con);
Вот код для вызова каждого из них из datatable
var dateArr = Dt.AsEnumerable().Select(r => r.Field<DateTime>("IncDate")).ToArray();
var objectArr = Dt.AsEnumerable().Select(r => r.Field<object>("IncCost")).ToArray();
var dateArr2 = Dt2.AsEnumerable().Select(r => r.Field<DateTime>("ExpDate")).ToArray();
var objectArr2 = Dt2.AsEnumerable().Select(r => r.Field<object>("ExpCost")).ToArray();
var res = dateArr.Concat(dateArr2).ToArray();
var final = res.Select(d => d.ToString(@"dd\/MM\/yyyy")).ToArray();
А вот код, который я использую для создания своего highchart:
Highcharts chart = new Highcharts("graph")
.SetTitle(new Title { Text = "Incoming Stats" })
.SetXAxis(new[] { new XAxis { Categories = final } })
.SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Amount Incoming" } })
.SetSeries(new[]
{
new Series { Name = "inc", Data = new Data(objectArr)},
new Series { Name = "exp", Data = new Data(objectArr2) }
});
Как видите, ряды создаются, но строятся по номеру в массиве, а не по дате, к которой он должен быть привязан.
Я не уверен, насколько я близок или далек от решения, но любая помощь приветствуется. Вот мои данные о поступлениях
Вот мои данные о расходах
Искренне не знаю, как это сделать. любая информация очень ценится