|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
Доброе время суток, формучане! Имеется RecordSet , каждая запись которого содержит поля [KRTRO] и [PKol]. Подсчитываем итог по двум полям. В отчете на Access формула выглядела бы так: =Sum(IIf([KRTRO]=0;[PKol];0)) Как это можно сделать в Crystal Report ? Помогите преодалеть препятствие! (Пробовал через переменные. В моем случае получается их очень много! Нет ли такого же красивого решения как в Access?) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 13:46 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
почему много, поля то всего два ? создай формулу if {KRTRO} = 0 then {PKol} else 0 вот появилась еще одна колонка, которую помещаем в Details, чтобы считалась в каждой строчке. потом можно создать Running Total Field или просто выбрать сумирование по правой кнопке на полученном филде. можно и более извращенно с применением мною горячо любимых WhilePrintingRecords и иже с ними. Про такие технологии подробно в этом форуме написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 14:13 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
RomanDzen Пробовал через переменные. В моем случае получается их очень много! Не так уж и много. В общем случае: 1) Объявляете переменные выше секции Details, например в Header(секция не должна на следующей странице печататься, иначе значение обнулиться). Shared numberVar x := 0; 2) Накапливаете сумму в секции Details Shared numberVar x; x:=x+[KRTRO]+[PKol]; Здесь можете реализовать Ваш алгоритм суммирования(судя по приведенной формуле идет не просто сумма) 3) Выводите переменную с накопленной суммой в необходимом Вам месте. Shared numberVar x; x; ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 14:32 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
Всем огромное спасибо, за помощь! Для моего случая наиболее удобным способом оказался первый из предложенных. Что касается второго. Прохожий111Не так уж и много. Одно дело, когда необходимо подсчитать 2 итога по одной группе. В моем отчете имеется 5 групп, в каждой необходимо подсчитать: 4 итога по количеству (поскольку KRTRO имеет 4 значения); 4 итога по значению поля. От сюда - большое количество переменных. Не думал, что всё окажется так просто! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 08:56 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
Появилась еще одна проблема: Если создавать Running Total Field выполняющий операцию суммирования . То в случае отсутствия записей (соответствующих условию отбора) поле не отображает 0 . Нужно компактное решение. Кто может помочь? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 10:40 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
а не должна бы она так ... посмотри нет ли в свойствах филда, полученного через Total в закладке Number установленной галочки Supress If Zero, если есть, то это берется из установок по умолчанию, которые скорее всего уже правились для других целей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 11:04 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
Опишу по подробнее ситуацию 1. Создаю Running Total Field Field to summarize: поле [PKol] Type of summary: sum Evalute Use a formula: вставляю формулу [KRTRO]=0 Reset Never 2. Вставляю созданное поле в Report Header . Результат: 1. Если записи, для которых выполняется условие [KRTRO]=0, имеются, сумма отображается 2. Если записей нет, 0 не отображается . Причем подобное творится только с функцией sum . Если то же самое проделать с count , всё будет нормально. Может версия Crystal устарела? Пользуюсь Crystal Report 8.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 11:29 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
ах вот как .... ну тогда поиграйся с параметрами отчета File/Report Options убери галочки с "Convert Database(Other) NULL Values to Default" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 11:50 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
вернее наоборот - поставь ! сорри... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 11:52 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
Галку на Convert NULL Field Value to Default поставил. Но пока результата не вижу. Где этот NULL Field Value искать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 12:01 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
ключевой галкой является для твоего случая "Other" см картинку ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 12:07 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
RomanDzen Причем подобное творится только с функцией sum . Если то же самое проделать с count , всё будет нормально. Возможна следующая ситуация: Данное поле у Вас имеет значение NULL. Функция count - подсчитает это поле, т.к. она считает количество полей, а не их содержимое. Ф-я sum считает их содержимое т.е. возможна ситуация Null + 124 + 13 - что не допустимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 12:18 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
У меня Crystal 8.5 И в Report Options нет "Other" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 13:55 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
жаль... тогда остается только воспользоваться схемой, которую я предложил в первом посте и добавить туда проверку на IsNull. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 14:13 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
Создайте два вычисляемых поля вместо KRTRO и PKol(если второе поле то же принимает значение NULL). 1) if isNull({KRTRO}) then 0 else {KRTRO} 2) if isNull({PKol}) then 0 else {PKol} И дальше работайте придерживаясь той же схемы, используя созданные поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 17:04 |
|
Подсчет итога по двум полям
|
|||
---|---|---|---|
#18+
Это тоже не помогает. Видимо просто складывать нечего ( в результате фильтрации данных по значению поля, записи с указанным значением отстутствуют ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2005, 13:49 |
|
|
start [/forum/topic.php?fid=31&fpage=169&tid=1539470]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 181ms |
0 / 0 |