Добрый вечер!
1) Подскажите, как расчитать значение в итоговой колонке. Всё довольно просто, но т.к. рендерит crosstab не строки, а колонки в итогах, то в событии ProcessCell всё это не получается так просто записать, а в ProcessCell итоговой колонки посчитать по указанной формуле, где цифры (1), (2) - номера колонок. Годов может быть произвольное количество.
Прилагаю скриншот.
Оговорюсь, что потратил уже значительное количество времени, но не получилось ничего сделать.
Единственный вариант расчёта по строкам, как я понял, это что-то вроде:
if (e.Cell.SummaryIndex == 5)
{
int yearNum = 0;
Cells[-11 -(6 * yearNum) , 0], где -11 это "Отгрузка" за 2018, а -17 это "Отгрузка" за 2017.
// то есть зная количество лет, можно впринципе всё это расчитать построчно. Но это не очень удобно.
}
Пробовал так же сохранять e.Text (распарсив его в decimal) в массив в событии ProcessCell, но т.к. вначале рендерится 2017-й год, вся колонка Отгрузки, потом 2018, т.е. массив уже идёт не по колонкам, и в итогах уже подсчитать это построчно весь проблематично.
Пожалуйста, очень нужна ваша помощь.
2) Как можно поменять caption заголовка итога (в итоге - на скриншоте слово "Всего) справа), если ставим MergeHeaders = false, то слово "Всего" дублируется, так и надо, я понимаю, но люди хотят кастомный заголовок.
CrossTab Custom Totals
CrossTab Custom Totals
- Вложения
-
- 5075.png (732.18 КБ) 2252 просмотра
Re: CrossTab Custom Totals
Здравствуйте,
1) Сложно так посоветовать решение без примера. Как вариант, использовать 2 прохода, в первом запоминать необходимые значения, а во втором уже на основе их делать необходимые вычисления.
2) Не совсем понятна проблема. В редакторе кросс-таблицы, поменять свойство Text.
Спасибо.
1) Сложно так посоветовать решение без примера. Как вариант, использовать 2 прохода, в первом запоминать необходимые значения, а во втором уже на основе их делать необходимые вычисления.
2) Не совсем понятна проблема. В редакторе кросс-таблицы, поменять свойство Text.
Спасибо.
Re: CrossTab Custom Totals
>>> 1) Сложно так посоветовать решение без примера. Как вариант, использовать 2 прохода, в первом запоминать необходимые значения, а во втором уже на основе их делать необходимые вычисления.
Пример приведён на скриншоте, с указанием колонок по годам и их индексов.
>>> 2) Не совсем понятна проблема. В редакторе кросс-таблицы, поменять свойство Text.
Это очевидно, но я о другом. Ячейка "Всего" (крайняя правая сверху), при сброшенном флаге MergeHeaders (false), - тогда колонок "Всего" будет 6. Так вот, как сделать (вероятно, по индексу колонки), что бы каждая из 6 колонок имела свой заголовок.
Пример приведён на скриншоте, с указанием колонок по годам и их индексов.
>>> 2) Не совсем понятна проблема. В редакторе кросс-таблицы, поменять свойство Text.
Это очевидно, но я о другом. Ячейка "Всего" (крайняя правая сверху), при сброшенном флаге MergeHeaders (false), - тогда колонок "Всего" будет 6. Так вот, как сделать (вероятно, по индексу колонки), что бы каждая из 6 колонок имела свой заголовок.
Re: CrossTab Custom Totals
Здравствуйте,
1) Без примера самого отчета, можем только дать общие рекомендации - Как вариант, использовать 2 прохода, в первом запоминать необходимые значения, а во втором уже на основе их делать необходимые вычисления.
2) Попробовать также использовать события ProcessCell ячеек.
Спасибо.
1) Без примера самого отчета, можем только дать общие рекомендации - Как вариант, использовать 2 прохода, в первом запоминать необходимые значения, а во втором уже на основе их делать необходимые вычисления.
2) Попробовать также использовать события ProcessCell ячеек.
Спасибо.