Не вызывается самописная функция форматирования в итогах

Обсуждение Stimulsoft Reports.NET
Ответить
neo-xil
Сообщения: 4
Зарегистрирован: 07 май 2013, 11:06

Не вызывается самописная функция форматирования в итогах

Сообщение neo-xil »

Есть у меня отчет. Совершенно типичная задача - одноуровневая группировка с итогами под группой и общими итогами под отчетом. Весьма значительная часть отчета заполнена нулями - не хотелось из выводить.
Поставил соответствующую галку в свойствах "текста" на строках и в итогах. Отчет перестал выводится - подвисает даже на стадии формирования предпросмотра в дизайнере (еще одна проблема, которую хотелось бы разрешить).
Галку снял. Формулы в тексте дополнил вызовом самописной функции форматирования. Предпросмотр формируется, нули подавляются, итоги выводятся, но частично - где-то суммы есть, а где-то вместо них текст формулы из "текста" группировки с дополнением "#%#" перед формулой. Вообщем, что-то вида #%#{DecimalFix2(Sum(Данные1,dtDetails.StoreSumDeb))

Форматирование осуществляется кодом следюющео вида:

public static string DecimalFix(decimal arg, int scale, char decSeparator, char grSeparator, string rgSizes)
{
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NumberDecimalDigits = scale;
nfi.NumberDecimalSeparator = new string(decSeparator, 1);
nfi.NumberGroupSeparator = new string(grSeparator, 1);
List<int> grSeps = new List<int>();
foreach (string sep in rgSizes.Split(new char[] { ',' }))
if(sep.Trim()!="")
grSeps.Add(int.Parse(sep.Trim()));
nfi.NumberGroupSizes = grSeps.ToArray();
return arg.ToString("N",nfi);
}

string DecimalFix(decimal arg)
{
return DecimalFix(arg, 2, '.', ' ', "");
}

string DecimalFix2(decimal arg)
{
return arg == 0.0m ? "" : DecimalFix(arg, 2, '.', ' ', "");
}

В исходных данных ошибки нет. Используется System.Data.DataTable с типизированными колонками. Тип значений перед передачей в отчет я проверил - везде decimal.
Вложения
Формула не работает, там где пунктирные полоски в итогах - тот самый текст формулы из &quot;текста&quot;. Авторазмер шрифта.
Формула не работает, там где пунктирные полоски в итогах - тот самый текст формулы из "текста". Авторазмер шрифта.
2.png (145.41 КБ) 2222 просмотра
Нормальное срабатывание формулы и отображение
Нормальное срабатывание формулы и отображение
1.png (158.48 КБ) 2222 просмотра
neo-xil
Сообщения: 4
Зарегистрирован: 07 май 2013, 11:06

Re: Не вызывается самописная функция форматирования в итогах

Сообщение neo-xil »

Оказывается, подобное поведение возникает, когда из пользовательской функции возвращается пустая строка. Если вернуть пробел, то странной строки с формулой не вылезает.
Шесть лет пишу с использованием Reports.NET и каждый раз узнаю что-то новое.

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

Re: Не вызывается самописная функция форматирования в итогах

Сообщение HighAley »

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

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

Спасибо.
neo-xil
Сообщения: 4
Зарегистрирован: 07 май 2013, 11:06

Re: Не вызывается самописная функция форматирования в итогах

Сообщение neo-xil »

<Зачеркнуто>Куда именно прислать?<Зачеркнуто>
<Зачеркнуто>Отправил в личку.<Зачеркнуто>

Куда именно и как отправлять? В личке запрещены MRT и XML :o

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

Re: Не вызывается самописная функция форматирования в итогах

Сообщение HighAley »

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

Пришлите ваши данные на support@stimulsoft.com, в письме сошлитесь, пожалуйста, на эту тему.

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