Рассчёт итоговых значений полей Cross-tab

Обсуждение Stimulsoft Reports.NET
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Рассчёт итоговых значений полей Cross-tab

Сообщение Леонид »

В продолжении темы http://forumru.stimulsoft.com/Default.a ... sts&t=1148.

Более конкретно: "Нельзя рассчитать процентное соотношение значений 2-х итоговых полей."

Близится срок сдачи нашего проекта, и в кросс-табах нам просто позарез необходимо рассчитывать проценты в итоговых колонках. Это очень важно! Поскольку всё уже заточено под Stimul, то нет смысла переходить на какую-либо другую отчётную систему, да мы и не хотим, т.к. всё устраивает и всё нравится, но реально не хватает этой функции.
Кроме того, не поверю в то, что такая фича нужна только нам, т.к. при создании каких-нибудь, скажем бухгалтерских отчётов понадобится тоже самое.

Скажите, есть ли какое-нибудь продвижение в этом направлении?
Anton Lozovskiy
Сообщения: 264
Зарегистрирован: 12 ноя 2007, 08:16

Рассчёт итоговых значений полей Cross-tab

Сообщение Anton Lozovskiy »

Здравствуйте,

К сожалению, мы не смогли найти решение, чтобы решить вашу проблему. В ближайший квартал никаких серьезных изменений в cross-tab вноситься не будут.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Рассчёт итоговых значений полей Cross-tab

Сообщение Леонид »

Весьма печально это слышать. И это не избавляет нас от проблемы, поскольку срок скоро сдавать проект, а это примерно месяц. :boom:

И что же делать в такой ситуации? :waaaht:

Ещё я не пойму, почему это невозможно сделать. Ведь у Вас там есть на выбор различные варианты агрегатных функций. Так почему же нельзя сделать, скажем, ещё одну функцию (т.е. добавить в список Summary), назвать её, к примеру, CustomGroupAction, а в поле Value дать возможность программисту получать значения всех столбцов (т.е. это может быть массив колонок) для произвольного расчёта, и занесения в итоговую ячейку расчётного значения.
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Рассчёт итоговых значений полей Cross-tab

Сообщение Andrew »

Здравствуйте,

Мы обсудили и внесли Ваш запрос в наш список задач. В ближайшую неделю-две появится возможность необходимая Вам.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Рассчёт итоговых значений полей Cross-tab

Сообщение Леонид »

О, супер! :biggrin:

Ждём с нетерпением появления такой возможности! :dreamer:
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Рассчёт итоговых значений полей Cross-tab

Сообщение Леонид »

Добрый день, уважаемые!

Скажите, пожалуйста, как продвигаются дела в решении моей проблемы?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Рассчёт итоговых значений полей Cross-tab

Сообщение Jan »

Здравствуйте,

Мы отвечали на Ваш вопрос на тикет-системе. Возможно ответ не дошел. Ведем разработку. В план работ включили еще несколько просьб от других пользователей. Доступно будет в течение этой недели.

Спасибо.
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Рассчёт итоговых значений полей Cross-tab

Сообщение Jan »

Здравствуйте,

Пожалуйста, скачайте билд от 19 июля (когда он будет доступен). В билде у кросс-полей добавлено событие ProcessCellEvent. Событие позволяет обработать значение ячеек после построение кросс-таблицы. Пример обработки события для ячейки суммирования:

if (e.Value > 100)
e.Value = e.Value / 100;
else
e.Text = "NONE";

В этом событии также можно обращаться к другим ячейкам. Например:

Cells[0, 0] - числовое значение в текущей ячейке
Cells[-1, 0] - числовое значение в ячейке слева от текущей
Cells[1, 0] - числовое значение в ячейке справа от текущей
Cells[0, -1] - числовое значение в ячейке сверху от текущей
Cells[0, 1] - числовое значение в ячейке снизу от текущей

Пример кода:

e.Value = Cells[-1, 0] / 2;

Для того чтобы подписаться на это событие для изменения итогов нужно подписываться не к ячейке суммирования, а к ячейке итога (надпись Total). В этом случае дополнительно можно использовать следущие переменные:

e.Cell.SummaryIndex - индекс итога, начинается с 0. К примеру, если используются две суммирующие ячейки в кросс-таблице, то первая будет иметь индекс 0, вторая - 1. Если ячейка не имеет индекса (не является итогом), то -1.
e.Cell.IsCrossSummary - угловая ячейка итога, ячейка на пересечении горизонтальной и вертикальной строк итогов.

Также можно узнать общий индекс ячейки по горизонтали и вертикали:

e.Column
e.Row

Индексы ведут счет с 0.




Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Рассчёт итоговых значений полей Cross-tab

Сообщение Леонид »

Супер!

Как только появится билд, скачаю и сразу попробую. Обязательно сообщу о результатах.
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Рассчёт итоговых значений полей Cross-tab

Сообщение Andrew »

Сообщите нам о результатах.

Спасибо.
Ответить