При настройке фильтра для параметра, как правило, может быть задано значение по умолчанию, которое передается в отчет в момент его открытия.
Фиксированное значение по умолчанию. |
Значение по умолчанию вычисляется смарт-выражением. |
В пользовательском интерфейсе для параметров типа Выпадающий список невыбранное (пустое) значение обозначается значением "-", а для параметров типа Период — также значением "-" или значением "Другой" с двумя пустыми датами.
Значения по умолчанию и значения, выбранные пользователем в процессе работы с отчетом, передаются в отчет одинаково:
•если значение выбрано, то оно передается в отчет в виде пары дат для Периода, в виде числа для Числа и в виде строки для остальных типов.
•если значение не выбрано, то в отчет в соответствующий параметр типа Пользователь, Группа, Оргстурктура, Категория передается пустая строка "", а для Выпадающего списка, Строки, Числа и Периода — значение null.
Пустое значение по умолчанию
Если для отчета настроен фильтр, то соответствующие ему параметры создаются в отчете в момент открытия отчета в дизайнере. Даже если вы в дизайнере вручную удалите параметр из отчета, при следующем открытии нужный параметр автоматически создастся снова. Однако если в настройке фильтра для параметра в качестве значения по умолчанию задано пустое значение, то соответствующий параметр не всегда создается в отчете автоматически. Если вам все же необходимо задать по умолчанию пустое значение, выполните следующие подготовительные действия:
I способ:
1.откройте отчет в дизайнере, вручную создайте нужный параметр нужного типа (String, DateTime или Int32). Имя параметра должно соответствовать шаблону Filter<имя> (для Периода — Filter<имя>From и Filter<имя>To), где <имя> — это имя параметра, как оно задано в настройках фильтра.
2.сохраните отчет.
II способ:
1.выберите в фильтре в качестве значения по умолчанию любое непустое значение и сохраните настройки фильтра;
2.откройте отчет в дизайнере, убедитесь что нужные параметры автоматически создались и сохраните отчет;
3.вернитесь в настройки фильтра и укажите пустое значение по умолчанию.
Работа с пустыми значениями в Выражениях (Expression)
Если в параметр передано значение null, то при работе с такими параметрами на странице отчета (например, при форматировании) будет возникать ошибка. Поэтому необходимо выполнять дополнительные проверки, например:
Обработка пустых значений в выражении.
В данном случае используется тернарный оператор языка С#, который является аналогом условной функции IIf() и состоит из трех частей:
<булево условие> ? <выражение, которое вычисляется если условие = true> : <выражение, которое вычисляется если условие = false>
На примере со скриншота выше результатом выражения будет прочерк если дата пустая (null), а если дата не пустая, то она будет отформатирована.
Часто в выражениях предпочтительнее использовать именно тернарный оператор, а не функцию IIf(), см. здесь. |
---|
Работа с пустыми значениями в SQL запросах
Если в качестве источников данных используются SQL-запросы, то для проверки периода можно использовать, например, такую конструкцию:
WHERE (@from is null OR t.Date>= @from) AND (@to is null OR t.Date <= @to)
В таком условии проверяются и ограниченные, и открытые периоды.
При обработке SQL-запроса если значение параметра не может быть вычислено (например, оно равно null), то вместо такого параметра подставляется значение, заданное по умолчанию:
Значения по умолчанию для параметров запроса.
Чтобы в случае открытого периода в отчет попадали все записи, значения по умолчанию нужно подбирать так, чтобы они заведомо были меньше самой ранней даты в вашей базе данных (например, "01.01.1900") или больше самой поздней возможной даты (например, "01.01.2900"). Обратите внимание, что значение самого параметра отчета при этом не изменяется и остается равным null, а значение по умолчанию подставляется только при обработке SQL-запроса.
Полезные ссылки