Есть у меня отчет. Совершенно типичная задача - одноуровневая группировка с итогами под группой и общими итогами под отчетом. Весьма значительная часть отчета заполнена нулями - не хотелось из выводить.
Поставил соответствующую галку в свойствах "текста" на строках и в итогах. Отчет перестал выводится - подвисает даже на стадии формирования предпросмотра в дизайнере (еще одна проблема, которую хотелось бы разрешить).
Галку снял. Формулы в тексте дополнил вызовом самописной функции форматирования. Предпросмотр формируется, нули подавляются, итоги выводятся, но частично - где-то суммы есть, а где-то вместо них текст формулы из "текста" группировки с дополнением "#%#" перед формулой. Вообщем, что-то вида #%#{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.
Не вызывается самописная функция форматирования в итогах
Не вызывается самописная функция форматирования в итогах
- Вложения
-
- Формула не работает, там где пунктирные полоски в итогах - тот самый текст формулы из "текста". Авторазмер шрифта.
- 2.png (145.41 КБ) 2226 просмотров
-
- Нормальное срабатывание формулы и отображение
- 1.png (158.48 КБ) 2226 просмотров
Re: Не вызывается самописная функция форматирования в итогах
Оказывается, подобное поведение возникает, когда из пользовательской функции возвращается пустая строка. Если вернуть пробел, то странной строки с формулой не вылезает.
Шесть лет пишу с использованием Reports.NET и каждый раз узнаю что-то новое.
Но вопрос со встроенным в систему подавлением нулевых значений путем зависания на выводе отчета остается открытым.
Шесть лет пишу с использованием Reports.NET и каждый раз узнаю что-то новое.
Но вопрос со встроенным в систему подавлением нулевых значений путем зависания на выводе отчета остается открытым.
Re: Не вызывается самописная функция форматирования в итогах
Здравствуйте.
Пришлите, пожалуйста, шаблон вашего отчёта с тестовыми данными для анализа обоих ваших проблем.
Спасибо.
Пришлите, пожалуйста, шаблон вашего отчёта с тестовыми данными для анализа обоих ваших проблем.
Спасибо.
Re: Не вызывается самописная функция форматирования в итогах
<Зачеркнуто>Куда именно прислать?<Зачеркнуто>
<Зачеркнуто>Отправил в личку.<Зачеркнуто>
Куда именно и как отправлять? В личке запрещены MRT и XML
Там финансовая информация, которую в открытый доступ просто нельзя.
<Зачеркнуто>Отправил в личку.<Зачеркнуто>
Куда именно и как отправлять? В личке запрещены MRT и XML
Там финансовая информация, которую в открытый доступ просто нельзя.
Re: Не вызывается самописная функция форматирования в итогах
Здравствуйте.
Пришлите ваши данные на support@stimulsoft.com, в письме сошлитесь, пожалуйста, на эту тему.
Спасибо.
Пришлите ваши данные на support@stimulsoft.com, в письме сошлитесь, пожалуйста, на эту тему.
Спасибо.