![]() |
![]() |
![]() |
|
Можно ли в построителе установить отбор по значению NULL? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
16.12.06
✎
13:20
|
В платформе 8.0 построитель не умеет устанавливать отбор по Null.
Периодически натыкаюсь на этот камень и каждый раз приходится хромая его обходить. Особенно неприятно спотыкаться расшифровках в отчетах, когда нужно запускать новый отчет и в него передавать все текущие значения группировок. |
|||
1
Advan
16.12.06
✎
13:22
|
Не Null
|
|||
2
TormozIT
гуру
16.12.06
✎
13:26
|
(1) Не понял.
|
|||
3
Kalambur
16.12.06
✎
13:33
|
(0) не понял
|
|||
4
Buran
16.12.06
✎
14:02
|
(0) NULL - это совсем ничего, то есть в данном поле запроса нет данных
отбор нужно устанавливать по пустым значениям ссылок соответствующий типов. Притом, если тип составной, то сначала приводить к одному Или я не понял вопроса? Пример можно? |
|||
5
TormozIT
гуру
16.12.06
✎
14:03
|
Пример.
Есть отчет. В нем есть группировка по одному измерению. Я делаю расшифровку по значению измерения NULL. В результате получаю пустой результат, т.к. отбор устанавливается по значению NULL, приведенному к типу значения элемента отбора этого измерения. |
|||
6
TormozIT
гуру
16.12.06
✎
14:04
|
Неужели нельзя было реализовать специальное значение элемента отбора, чтобы оно построителем заменялось на "Измерение1 ЕСТЬ NULL"?
|
|||
7
megalodon
16.12.06
✎
14:04
|
сделай еще одно поле в запросе
естьnull(ТвоеПоле,"null мля") и в построителе делай отбор на это поле со значением "null мля" |
|||
8
TormozIT
гуру
16.12.06
✎
14:14
|
(7) Спасибо. Я так и делаю, но НастроитьРасшифровку в таком случае уже не получится автоматом, не говоря уже об универсальных отчетах. Опять придется писать код... =)
|
|||
9
TormozIT
гуру
16.12.06
✎
14:18
|
(7) Пардон! Ты прав, расшифровка будет настраиваться. Стормозил.
|
|||
10
TormozIT
гуру
16.12.06
✎
14:28
|
(9) Просто для иерархических измерений будет устанавливаться тип сравнения "В иерархии". После вызова НастроитьРасшифровку нужно просто заменить его на "Равно".
|
|||
11
TormozIT
гуру
16.12.06
✎
14:51
|
ИТАК, в очередной раз благодаря старожилам форума и настоящим профессионалам нашего дела (в данном случае megalodon) родилось решение описанной проблемы.
В тексте запроса для измерений, которые могут содержать NULL, всегда писать
И после вызова НастроитьРасшифровку() для нужного построителя отчета вызывать эту функцию:
|
|||
12
Neco
16.12.06
✎
15:38
|
Предложу решение. Добавить в запрос такую конструкцию:
Если в отборе РеквизитЕстьNull = Истина, то построитель отберет только те строки у которых Реквизит = Null Например, запрос с отбором контрагентов у которых введена/не введена контактная информация: |
|||
13
TormozIT
гуру
16.12.06
✎
16:36
|
(12) Такое решение не подходит, потому автоматическая расшифровка такого отчета выдаст пустой результат.
Я уже применил решение (11) в универсальном отчете и консоли отчетов. Оно прекрасно работает. Только нужно не забыть
написать не только в секции выбранных полей, но и в секции условий. |
|||
14
TormozIT
гуру
16.12.06
✎
16:39
|
(13) + имелись в виду секции построителя отчета
|
|||
15
TormozIT
гуру
20.12.06
✎
17:16
|
Немного исправил (11).
|
|||
16
dimoff
20.12.06
✎
17:19
|
отбор к расшифровке отношения не имеет, в отборе можно ставить ЕСТЬNULL
|
|||
17
TormozIT
гуру
20.12.06
✎
17:41
|
(16) Разъясни пожалуйста, в каком это отборе у тебя можно ставить ЕСТЬ NULL, а не ЕСТЬNULL кстати.
|
|||
18
dimoff
20.12.06
✎
17:49
|
ПостроительОтчетаОтчет.Текст =
"ВЫБРАТЬ | Контрагенты.Ссылка, | Контрагенты.Представление, | Счет.Пользователь, | ПРЕДСТАВЛЕНИЕ(Счет.Пользователь) |{ВЫБРАТЬ | Ссылка.*, | Пользователь.*} |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет КАК Счет | ПО Счет.Контрагент = Контрагенты.Ссылка |{ГДЕ | ЕСТЬNULL(Счет.Пользователь, 0) КАК Пользователь}"; В условии ты можешь выбрать 0, и расшифровка от этого не пострадает |
|||
19
TormozIT
гуру
20.12.06
✎
17:53
|
(18) Проверь сначала =)
Ты предложил практически то же самое, что и (11). Прочитай внимательнее. К тому же "0" менее наглядное значение, чем "<Отсутствует>". И проблема установки вида сравнения Виерархии для иерархических группировок при расшифровке в твоем случае тоже возникает. |
|||
20
TormozIT
гуру
20.12.06
✎
17:58
|
(18) Кстати расшифровка по отсутсвующему пользователю в твоем случае не получится, т.к. значение поля Пользователь=NULL и отбор установится такой -
"ЕСТЬNULL(Счет.Пользователь, 0) = NULL"/ |
|||
21
dimoff
20.12.06
✎
18:01
|
я наверное вопрос неправильно понял, извиняюсь если что
|
|||
22
TormozIT
гуру
21.12.06
✎
20:29
|
dimoff, беру свои слова назад. В (18) ты был прав. Грустно, но v8: Не выводится иерархия элементов в построителе.
Придется писать свою настройку построителя по расшифровке. |
|||
23
TormozIT
гуру
21.12.06
✎
21:04
|
Вот новое решение.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |