|
СКД. Исключить отрицательные в общих итогах. | ☑ | ||
---|---|---|---|---|
0
dextermorgan777
18.05.15
✎
11:41
|
Добрый день. Нужен совет. В отчете на скд надо чтобы в сумму в общих итогах не попадали отрицательные числа из верхних уровней. Например таблица такая:
Контрагент 1 -20 (итог по контрагенту) запись 1 10 запись 2 20 запись 3 -50 Контраген 2 10 запись 1 10 Контрагент 3 60 запись 1 30 запись 2 30 Общий итог 50 на уровне контрагентов должно остаться так же, а вот в общих итогах надо откинуть -20 чтобы стало 70 (т.е. только по контрагентам с положительным итогом выводить) Спасибо за советы |
|||
1
Basilio
18.05.15
✎
11:46
|
еще одну колонку добавь. в ней отрицательные значения заменяй на 0 (выбор когда поле1 < 0 ТОГДА 0 конец).
|
|||
2
dextermorgan777
18.05.15
✎
12:24
|
Тут дело в том, что цифра в группировке получается на основании двух колонок Сумма(ЕстьNULL(Сальдо,0))-Сумма(ЕстьNull(СуммаОстаток,0))
Для общих итогов я сделал так ВычислитьВыражение("Выбор Когда (Сумма(ЕстьNULL(Сальдо,0))-Сумма(ЕстьNull(СуммаОстаток,0)))<0 Тогда 0 Иначе (Сумма(ЕстьNULL(Сальдо,0))-Сумма(ЕстьNull(СуммаОстаток,0))) Конец ", ,"ОбщийИтог") В общем итоге вывело такую же сумму как и изначально. Поправьте меня пожалуйста, не могу понять где ошибку сделал. |
|||
3
Basilio
18.05.15
✎
12:32
|
(2) вроде все правильно.... попробуй вынести расчет "без минусов" в отдельную колонку (новый ресурс). Тогда увидишь это ошибка в формуле или СКД не ту формулу применяет для общих итогов...
|
|||
4
dextermorgan777
18.05.15
✎
12:34
|
(3) я так и сделал. В двух колонках одинаковые цифры в общем итоге.
|
|||
5
dextermorgan777
18.05.15
✎
12:35
|
Мне кажется что с 0 сравнивает уже итоговое число. Т.е. считает так же как и было, а полученное сравнивает с нулем. А надо как-то сделать чтобы с нулем сравнивало на каждой строке группировки по контрагенту.
|
|||
6
Basilio
18.05.15
✎
12:38
|
(4)не прав. с 0 сравнивается детали. если конечно ты их в формуле указал. должно работать.
|
|||
7
Basilio
18.05.15
✎
12:39
|
+(6) покажи скрин ресурсов
|
|||
8
dextermorgan777
18.05.15
✎
12:41
|
Вычисляемое поле ИтогБезОтрицательных сделал так:
ВычислитьВыражение("Выбор Когда (Сумма(ЕстьNULL(Сальдо,0))-Сумма(ЕстьNull(СуммаОстаток,0)))<0 Тогда 0 Иначе (Сумма(ЕстьNULL(Сальдо,0))-Сумма(ЕстьNull(СуммаОстаток,0))) Конец ", ,"ОбщийИтог") К оплате остаток в ресурсах написал так : Сумма(ЕстьNULL(Сальдо,0))-Сумма(ЕстьNull(СуммаОстаток,0)) В о общем итоге по этим колонкам выводит одно и то же. |
|||
9
dextermorgan777
18.05.15
✎
12:41
|
http://firepic.org/images/2015-05/18/kyu5bliucmhl.png
вот скрин группировок. сейчас сделаю ресурсы еще. |
|||
10
dextermorgan777
18.05.15
✎
12:43
|
||||
11
dextermorgan777
18.05.15
✎
12:50
|
||||
12
ИС-2
naïve
18.05.15
✎
12:53
|
Попробуй использовать функция ВычислитьВыражениеСГруппировкой для расчета значения именно на уровне контрагента.
Чтобы исключить минусовые значения на общем итоге Выбор когда Сум < 0 тогда null иначе Сум конец т.е преобразовывай минуса в null Как вывести свой общий итог - посмотри примеры в инете |
|||
13
dextermorgan777
18.05.15
✎
12:53
|
(12) ок. Спасибо. Сейчас попробую.
|
|||
14
Basilio
18.05.15
✎
13:10
|
(8) по-мойму в формуле ошибка - Сумму нужно вынести за условие выбора. т.е. сначала разность сравниваешь с 0 а потом суммируешь
|
|||
15
Basilio
18.05.15
✎
13:11
|
+(8) примерно так - "сумма(выбор когда поле1 - поле2 < 0 тогда 0 иначе поле1 - поле2)"
|
|||
16
dextermorgan777
18.05.15
✎
13:14
|
Сумма(ВычислитьВыражениеСГруппировкойМассив("Выбор Когда ЕстьNULL(Сальдо,0)-ЕстьNull(СуммаОстаток,0) < 0 Тогда
0 Иначе ЕстьNULL(Сумма(Сальдо),0)-ЕстьNull(Сумма(СуммаОстаток),0) Конец","ОсновнойПартнер")) Так получилась нужная сумма. Сейчас еще потестирую на других данных и проверю. |
|||
17
dextermorgan777
18.05.15
✎
13:26
|
Странно. На другом примере вывело итог меньше чем с отрицательными.
|
|||
18
ИС-2
naïve
18.05.15
✎
13:52
|
(16) что-то смущает что, то используется агрегат сумма, то не используется
|
|||
19
dextermorgan777
18.05.15
✎
14:59
|
(18) ну да, сейчас с обеда пришел и сам по другому взглянул. Дадут доступ к серверу, перепишу и гляну еще раз.
|
|||
20
Basilio
18.05.15
✎
15:30
|
(16) ЕстьNULL(Сумма(Сальдо),0) - здесь косяк. Если у тебя в одной из агрегируемых значений будет NULL то и вся сумма 0.
вынеси сумму за естьNULL: Сумма(ЕстьNULL(Сальдо,0)) |
|||
21
dextermorgan777
18.05.15
✎
15:51
|
(20) та же сумма осталась.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |