Wprowadzam wykres Telerik z ogromnymi danymi. Etykiety na osi X wykresu pokrywają się. Przezwyciężyłem ten problem, ale nie jest on wiarygodny na dłuższą metę.Lista zwracających wartości w odstępach czasu dla określonego pola
Są Lista pola mają:
FieldName DataType
Date DATETIME
DateString STRING
Unit DOUBLE
Price DOUBLE
X-Axis wartość etykieta pochodzi od DateString
dziedzinie
Rozwiązanie I wdrożone
- Date
DateString
pole MIN i MAX zawsze wracaj. - Dla reszty, powrót tych wartości, gdzie dzień tygodnia „Monday”
Oto Code
// 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")),
};
Takie rozwiązanie przyczynia się do powrotu nie wszystkie wartości, ale niektóre z nich. Dlatego unikaj nakładania się. Ale w przyszłości, gdy dane będą rosły, nawet to rozwiązanie zakończy się niepowodzeniem.
Rozwiązanie muszę wdrożyć
pomysł, że myślałem, ale nie wiem jak zaimplementować IS-
- MIN i MAX Data
DateString
pole zawsze zwróci. [Tak samo jak teraz] - Zwraca 8 wartości w przedziałach od daty MIN i MAX, niezależnie od całkowitej liczby pozycji w liście.
2.a. Ale jeśli liczba list jest mniejsza niż lub równa 8, zwróć wszystkie wartości.
Na przykład, jeśli na liście mam 32 wartości. Powinno zwrócić mi łącznie 10 wartości w polu DateString, a reszta będzie pustym łańcuchem.
Trudno jest zaproponować rozwiązanie bez przykładowych danych ilustrujących miejsce awarii – Plutonix