Tôi đang triển khai Biểu đồ Telerik với một dữ liệu khổng lồ. Các nhãn trên trục x của biểu đồ chồng chéo nhau. Tôi đã khắc phục vấn đề này nhưng nó không đáng tin cậy trong thời gian dài.Danh sách trả về các giá trị trong khoảng thời gian cho một trường cụ thể
Đây là danh sách các lĩnh vực có:
FieldName DataType
Date DATETIME
DateString STRING
Unit DOUBLE
Price DOUBLE
X-Axis giá trị nhãn xuất phát từ DateString
lĩnh vực
Giải pháp tôi thực hiện
- Các MIN và MAX ngày
DateString
lĩnh vực sẽ luôn luôn trở lại. - Đối với phần còn lại, trả lại những giá trị mà ngày trong tuần là 'Monday'
Đây là số-
// Get min and max Date
DateTime minDate = DateTime.Now;
DateTime maxDate = DateTime.Now;
if (dtGas.Rows.Count > 0)
{
minDate = Convert.ToDateTime(dtGas.Compute("MIN([Date])", ""));
maxDate = Convert.ToDateTime(dtGas.Compute("MAX([Date])", ""));
}
// Group by 'Date' and 'DateString' | 'SUM' of Unit and 'Price'
var qGas = from x in dtGas.AsEnumerable()
group x by new
{
Date = x.Field<DateTime>("Date"),
DateString = x.Field<string>("DateString")
} into egroup
let isOne = egroup.Key.Date.DayOfWeek.ToString() == "Monday"
select new
{
Date = egroup.Key.Date,
DateString = minDate == egroup.Key.Date ?
(
egroup.Key.DateString
) :
(
maxDate == egroup.Key.Date ?
(
egroup.Key.DateString
) :
(
(isOne) ?
(
egroup.Key.DateString
) :
(" ")
)
),
Unit = egroup.Sum(r => r.Field<double>("Unit")),
Price = egroup.Sum(r => r.Field<double>("Price")),
};
Giải pháp này giúp trở về không phải tất cả các giá trị nhưng một số trong số họ. Do đó tránh chồng chéo. Nhưng trong tương lai khi dữ liệu phát triển, ngay cả giải pháp này cũng sẽ thất bại.
Giải pháp tôi cần phải thực hiện
Một ý tưởng mà tôi đã suy nghĩ nhưng không biết làm thế nào để thực hiện là-
- Các MIN và MAX ngày
DateString
lĩnh vực sẽ luôn luôn trở lại. [Giống như những gì tôi đang làm ngay bây giờ] - Trả về 8 giá trị trong khoảng thời gian từ ngày MIN và MAX bất kể tổng số mục danh sách.
2.a. Nhưng nếu Danh sách đếm nhỏ hơn hoặc bằng 8 thì trả về tất cả các giá trị.
Vì vậy, ví dụ: nếu trong Danh sách tôi có 32 giá trị. Nó sẽ trả lại cho tôi tổng 10 giá trị trong trường DateString và phần còn lại sẽ là chuỗi rỗng.
Thật khó để đề xuất giải pháp không có dữ liệu mẫu minh họa ở nơi không thành công – Plutonix