|
Суммирование с условием в отчете на СКД | ☑ | ||
---|---|---|---|---|
0
25-11
09.12.17
✎
14:14
|
http://s019.radikal.ru/i605/1712/2e/35f3944db674.png
Есть отчёт на СКД, в котором некий ресурс (Остаток) имеет на уровне детальных записей как положительные так и отрицательные значения. В пользовательском режиме (без конфигуратора) создано Пользовательское поле для отображения абсолютной величины числа. Выражение для детальных записей: Выбор Когда Остаток < 0 Тогда -Остаток Иначе Остаток Конец Когда пытаюсь в выражении для итоговых записей использовать Сумма(ТоЖеСамоеВыражение), то при формировании отчета получаю сообщение Неверные параметры "-" и отчёт не формируется. Подскажите, как такую задачу решать на пользовательском уровне? Или всё-таки только конфигуратор? |
|||
1
nordbox
09.12.17
✎
14:18
|
(0) Так тебе же ясно сказали
>>Неверные параметры "-" открой глаза и посмотри на код |
|||
2
nordbox
09.12.17
✎
14:20
|
в чем загадочный смысл этого выражения?
Когда Остаток < 0 Тогда -Остаток Иначе Остаток |
|||
3
25-11
09.12.17
✎
14:24
|
(2) А что непонятного-то? Если 3, то выводим 3.
Если -3, то тоже 3. Модуль или абсолютная величина числа - в седьмом классе проходят, кажется :) |
|||
4
25-11
09.12.17
✎
14:28
|
Для детальных записей работает...
Если в выражении для итоговых записей написать Выбор Когда Сумма(Остаток) < 0 Тогда -Сумма(Остаток) Иначе Сумма(Остаток) Конец тоже работает. Но неправильно :) |
|||
5
nordbox
09.12.17
✎
14:38
|
Ну попробуй вот так
Когда Остаток < 0 Тогда (-Остаток) Иначе Остаток |
|||
6
nordbox
09.12.17
✎
14:39
|
или вот так
Когда Остаток < 0 Тогда (Остаток*(-1)) Иначе Остаток |
|||
7
25-11
09.12.17
✎
15:01
|
(6) без разницы - СКД в пользовательском режиме "не понимает" выражение, которое нужно просуммировать.
|
|||
8
nordbox
09.12.17
✎
15:12
|
в СКД есть ВычислитьВыражение
|
|||
9
nordbox
09.12.17
✎
15:14
|
||||
10
25-11
09.12.17
✎
15:34
|
(8) А у тебя ВычислитьВыражение работает в пользовательском режиме? Можешь показать?
Я считал, что это инструмент, применяющийся только в конфигураторе. Но тогда уж лучше сразу в запросе ещё одно поле добавить. Интересует именно возможность без конфигурирования |
|||
11
nordbox
09.12.17
✎
15:35
|
В пользовательском не пробовал, но как то инфа проскакивала что можно
|
|||
12
nordbox
09.12.17
✎
15:42
|
+11 пробовать не буду ))
сам не могу себя заставит доделать отчет и клиент-банк раскурочить, лень )) |
|||
13
25-11
10.12.17
✎
22:16
|
Может быть кто-то из гуру по СКД откликнется? И авторитетно скажет, что в пользовательском режиме этого не добиться?
|
|||
14
2dolist
11.12.17
✎
08:23
|
Я мб что-то не понял в задаче, но что мешает написать
сумма(выбор когда Остаток < 0 тогда -Остаток иначе Остаток конец) |
|||
15
25-11
11.12.17
✎
09:57
|
(14) Мешает только то, что отчёт не формируется. И вдается сообщение об ошибке.Которое приведено в (0)
|
|||
16
25-11
11.12.17
✎
09:58
|
"вдается=выдаётся
|
|||
17
тарам пам пам
11.12.17
✎
10:35
|
(13) в польз. режиме использовать ВычислитьВыражение и вообще все остальные функции СКД можно, это работает и у меня особо продвинутые клиенты даже смогли добавить пару таких польз. полей.
По (0) - раз ругается на параметры "-", значит Остаток где-то имеет тип не число - скорее всего NULL, раз на сравнение с нулем не ругается. Попробуй через ЕСТЬNULL написать. |
|||
18
2dolist
11.12.17
✎
10:44
|
либо у тебя остаток называется не как остаток, либо действительно Null, тогда можешь проверку добавить
сумма(isnull(выбор когда Остаток < 0 тогда -Остаток иначе Остаток конец,0)) |
|||
19
25-11
11.12.17
✎
15:12
|
(18) Анализ на Null не помогает, дело не в этом
(17) ВычислитьВыражение в пользовательском режиме пока не пробовал. Это и в конфигураторе не так просто правильно использовать... Я это раньше применял только на закладке "Ресурсы", не для вычисляемых полей. |
|||
20
Cyberhawk
11.12.17
✎
15:16
|
"0+Остаток" уже пробовал?
|
|||
21
Cyberhawk
11.12.17
✎
15:16
|
Ну или "0-Остаток"
|
|||
22
тарам пам пам
11.12.17
✎
15:35
|
(19) а ты правильно анализ на null сделал? в (18) потому что выражение неправильно написано, нужно сумма(выбор когда естьnull(Остаток, 0) < 0 тогда -естьnull(Остаток, 0) иначе естьnull(Остаток, 0) конец)
|
|||
23
25-11
11.12.17
✎
17:35
|
(22) Я думаю, что анализ на Null правильно написал :)
http://s46.radikal.ru/i111/1712/49/ab8ecaf2350d.png |
|||
24
25-11
11.12.17
✎
17:45
|
Да, и замена Null на 0, как положено, выполнена уже в запросе. Так что это здесь точно не должно играть никакой роли...
|
|||
25
mehfk
11.12.17
✎
18:41
|
Ты что-то делаешь не так, скорее всего у тебя значения поля могут быть нечисловые.
http://ibb.co/mMh4zb |
|||
26
mehfk
11.12.17
✎
18:43
|
Попробуй вот так:
Выбор Когда ТипЗначения(Остаток) <> Тип("Число") Тогда 0 Когда Остаток < 0 Тогда -Остаток Иначе Остаток Конец |
|||
27
25-11
11.12.17
✎
19:01
|
(25) Убедительно... Сейчас попробую.
|
|||
28
25-11
11.12.17
✎
19:05
|
(26) Круто! заработало! Спасибо!
Откуда там не NULL и не число - х.з., но получается, дело именно в этом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |