Кросс-данные собственный итог

Обсуждение Stimulsoft Reports.NET
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кросс-данные собственный итог

Сообщение HighAley »

Здравствуйте.
Anton.Shetsov писал(а):Да мне нужно именно только для этой строки. Либо вообще не рассчитывать значения для нее, это возможно?
Изменить способ подсчёта Totals нельзя, но вы можете сделать это в событиях ProcessCell. В Cross-Row можно получить номер строки, в Cross-Summary подсчитывать нужное значение, а в Cross-Column Total выводить полученное значение.
Anton.Shetsov писал(а):Все эти статьи я уже читал, толку мало от них. Можно объяснить на примере моего отчета, применительно к моей ситуации?
В процессе построения Кросс-таблицы ещё не подсчитан общий итог, поэтому общее количество компонентов надо считать перед построением Кросс-таблицы и сохранять в переменной. Потом уже в событии ProcessCell будет легко подсчитать процент.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Кросс-данные собственный итог

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравствуйте.
Anton.Shetsov писал(а):Да мне нужно именно только для этой строки. Либо вообще не рассчитывать значения для нее, это возможно?
Изменить способ подсчёта Totals нельзя, но вы можете сделать это в событиях ProcessCell. В Cross-Row можно получить номер строки, в Cross-Summary подсчитывать нужное значение, а в Cross-Column Total выводить полученное значение.
Anton.Shetsov писал(а):Все эти статьи я уже читал, толку мало от них. Можно объяснить на примере моего отчета, применительно к моей ситуации?
В процессе построения Кросс-таблицы ещё не подсчитан общий итог, поэтому общее количество компонентов надо считать перед построением Кросс-таблицы и сохранять в переменной. Потом уже в событии ProcessCell будет легко подсчитать процент.

Спасибо.
Примерчик в приложенном шаблоне можно сделать для подсчета процентов? Про ProcessCell я понял, не могу там получить нужные значения.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кросс-данные собственный итог

Сообщение HighAley »

Здравствуйте, Антон.
Anton.Shetsov писал(а):Примерчик в приложенном шаблоне можно сделать для подсчета процентов? Про ProcessCell я понял, не могу там получить нужные значения.
К сожалению, мы не можем сделать пример без данных.
Что именно у вас не получается?

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Кросс-данные собственный итог

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравствуйте, Антон.
Anton.Shetsov писал(а):Примерчик в приложенном шаблоне можно сделать для подсчета процентов? Про ProcessCell я понял, не могу там получить нужные значения.
К сожалению, мы не можем сделать пример без данных.
Что именно у вас не получается?

Спасибо.
Получить данные из итоговой колонки для строки "Всего компонентов", чтобы потом использовать для расчета процентов других строк.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Кросс-данные собственный итог

Сообщение Anton.Shetsov »

Объясните пожалуйста следующий момент. Хочу использовать хэш-таблицу для сохранения суммарного количества компонентов (строка "количество" из столбца "Итого"). Объявляю ее в коде отчета:

private System.Collections.Hashtable ht = new System.Collections.Hashtable();

В событии ProcessCell CrossTab2_ColTotal1 при первом проходе отчета я ищу эти значения, нахожу их. Пытаюсь записать в хэш-таблицу (и вроде бы это происходит, ошибок никаких не выдается), следующим образом:

ht[PageNumber] = (decimal)VarCompTotal;

Однако, при втором проходе отчета использую значения из хэш-таблицы, вывожу их также внизу страницы и вижу, что это вообще не понятно откуда взявшиеся величины.

Если использовать переменные, то все хорошо, получаю те значения, что нужно. Но это неправильно и применимо только для определенной структуры отчета и при ее изменении работать будет некорректно. Хотелось бы независимости от переменных.

Скажите, пожалуйста, что не так я делаю?

Шаблон отчета и результат работы прикладываю.
Вложения
Report форум.mrt
(44.15 КБ) 359 скачиваний
Report форум итог.mdc
(159.59 КБ) 360 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кросс-данные собственный итог

Сообщение HighAley »

Здравствуйте.
Anton.Shetsov писал(а):Получить данные из итоговой колонки для строки "Всего компонентов", чтобы потом использовать для расчета процентов других строк.
Как уже писали выше, в момент построения ячеек, где вы хотите вывести проценты ещё не подсчитаны данные для строки Всего компонентов.
Можем предложить несколько вариантов выхода из положения.
Один из них получить общую сумму отдельным запросом, если вы используете SQL базу данных.
Можно попробовать положить пустой Бэнд данных перед крос-таблицей, в котором можно будет посчитать значение "Всего компонентов".
Ну или задать значение Double Pass(Два прохода) свойству отчёта Number Of Pass(Количество проходов). На первом проходе получить значение "Всего компонентов", а на втором подсчитывать проценты. Для того, чтобы узнать какой сейчас проход надо использовать системные переменные IsFirstPass и IsSecondPass.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Кросс-данные собственный итог

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравствуйте.
Anton.Shetsov писал(а):Получить данные из итоговой колонки для строки "Всего компонентов", чтобы потом использовать для расчета процентов других строк.
Как уже писали выше, в момент построения ячеек, где вы хотите вывести проценты ещё не подсчитаны данные для строки Всего компонентов.
Можем предложить несколько вариантов выхода из положения.
Один из них получить общую сумму отдельным запросом, если вы используете SQL базу данных.
Можно попробовать положить пустой Бэнд данных перед крос-таблицей, в котором можно будет посчитать значение "Всего компонентов".
Ну или задать значение Double Pass(Два прохода) свойству отчёта Number Of Pass(Количество проходов). На первом проходе получить значение "Всего компонентов", а на втором подсчитывать проценты. Для того, чтобы узнать какой сейчас проход надо использовать системные переменные IsFirstPass и IsSecondPass.

Спасибо.
Вариант я уже выбрал, с двумя проходами по отчету, на последнее сообщение мне ответьте пожалуйста.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кросс-данные собственный итог

Сообщение HighAley »

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

Мы не можем вам помочь не воспроизведя проблему, а мы не можем это сделать без данных.
Пришлите, пожалуйста тестовые данные для вашего отчета.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Кросс-данные собственный итог

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравствуйте.

Мы не можем вам помочь не воспроизведя проблему, а мы не можем это сделать без данных.
Пришлите, пожалуйста тестовые данные для вашего отчета.

Спасибо.
Добрый день.

Шаблон отчета и данные. Посмотрите пожалуйста и ответьте на вопросы по поводу хэш-таблицы. И как убрать сумму из "Итого" по строке ОЧИ (хоть цветом ее закрасить, а то не получается у меня.)
Вложения
tmpBase.rar
Дамп базы данных
(85.42 КБ) 176 скачиваний
Report форум1.mrt
(35.53 КБ) 347 скачиваний
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Кросс-данные собственный итог

Сообщение Anton.Shetsov »

Добрый день!
Что-то удалось прояснить?
Ответить