Разреженная матрица
Добавлено: 06 окт 2015, 16:03
Здравствуйте.
Не хватает функционала стандартного кросс-таба, приходится эмулировать его руками.
Под "не хватает" понимаю, например, такую проблему:
отчет имеет 3 группировки по Rows, и надо нарисовать итоги по каждой из этих групировок, взяв их с сервера. Т.е. итоги не могут быть вычислены из отображаемых данных, сервер присылает их в виде отдельного датасета.
Например, есть группировка по годам, а внутри нее группировка по месяцам, а внутри группировка по дням. Надо в строке "Итого по месяцу" вывести значение из отдельного DataSource. Проблема в том, что даже с использованием такого подхода
http://support.stimulsoft.com/index.php ... -cross-tab
я не могу, при рисовании промежуточного итога для месяца, вычислить, для какого месяца сейчас рисуется итог.
А, вообще говоря, надо нарисовать по несколько итогов, и для месяца и для каждого года.
"Итого с НДС", "Просто итого" и еще один хитро вычисляемый на сервере.
Считаю, что компонент CrossTab не поддерживает требуемый уровень расширяемости.
Теперь собственно проблема.
Есть набор данных из двух полей:
Date, Value
Предположим, 3 строки, за 10, 15 и 20 февраля.
Надо отобразить их в разреженной матрице, у которой, для февраля, есть все числа от 1 до 28. (а у декабря - от 1 до 31)
Для тех чисел, для которых записей нет, просто пустое место можно нарисовать.
Пока есть идея вывести исходный датасет на бэнде нулевой высоты, и записать в Hashmap.
А потом, при отображении фиксированной сетки выгребать данные из этого Hashmap.
Но как-то это кустарно... Нет ли встроенной функции Lookup(DataSource, Condition)?
Спасибо.
Не хватает функционала стандартного кросс-таба, приходится эмулировать его руками.
Под "не хватает" понимаю, например, такую проблему:
отчет имеет 3 группировки по Rows, и надо нарисовать итоги по каждой из этих групировок, взяв их с сервера. Т.е. итоги не могут быть вычислены из отображаемых данных, сервер присылает их в виде отдельного датасета.
Например, есть группировка по годам, а внутри нее группировка по месяцам, а внутри группировка по дням. Надо в строке "Итого по месяцу" вывести значение из отдельного DataSource. Проблема в том, что даже с использованием такого подхода
http://support.stimulsoft.com/index.php ... -cross-tab
я не могу, при рисовании промежуточного итога для месяца, вычислить, для какого месяца сейчас рисуется итог.
А, вообще говоря, надо нарисовать по несколько итогов, и для месяца и для каждого года.
"Итого с НДС", "Просто итого" и еще один хитро вычисляемый на сервере.
Считаю, что компонент CrossTab не поддерживает требуемый уровень расширяемости.
Теперь собственно проблема.
Есть набор данных из двух полей:
Date, Value
Предположим, 3 строки, за 10, 15 и 20 февраля.
Надо отобразить их в разреженной матрице, у которой, для февраля, есть все числа от 1 до 28. (а у декабря - от 1 до 31)
Для тех чисел, для которых записей нет, просто пустое место можно нарисовать.
Пока есть идея вывести исходный датасет на бэнде нулевой высоты, и записать в Hashmap.
А потом, при отображении фиксированной сетки выгребать данные из этого Hashmap.
Но как-то это кустарно... Нет ли встроенной функции Lookup(DataSource, Condition)?
Спасибо.