powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Подсчет итога по двум полям
17 сообщений из 17, страница 1 из 1
Подсчет итога по двум полям
    #33278813
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток, формучане!

Имеется RecordSet , каждая запись которого содержит поля [KRTRO] и [PKol].

Подсчитываем итог по двум полям.
В отчете на Access формула выглядела бы так:
=Sum(IIf([KRTRO]=0;[PKol];0))

Как это можно сделать в Crystal Report ?

Помогите преодалеть препятствие!
(Пробовал через переменные. В моем случае получается их очень много! Нет ли такого же красивого решения как в Access?)
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33278916
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему много, поля то всего два ?

создай формулу
if {KRTRO} = 0 then
{PKol}
else
0

вот появилась еще одна колонка, которую помещаем в Details, чтобы считалась в каждой строчке.

потом можно создать Running Total Field или просто выбрать сумирование по правой кнопке на полученном филде.

можно и более извращенно с применением мною горячо любимых WhilePrintingRecords и иже с ними. Про такие технологии подробно в этом форуме написано.
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33278999
Прохожий111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanDzen
Пробовал через переменные. В моем случае получается их очень много!

Не так уж и много. В общем случае:
1) Объявляете переменные выше секции Details, например в Header(секция не должна на следующей странице печататься, иначе значение обнулиться).
Shared numberVar x := 0;
2) Накапливаете сумму в секции Details
Shared numberVar x;
x:=x+[KRTRO]+[PKol];
Здесь можете реализовать Ваш алгоритм суммирования(судя по приведенной формуле идет не просто сумма)
3) Выводите переменную с накопленной суммой в необходимом Вам месте.
Shared numberVar x;
x;
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280264
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо, за помощь!

Для моего случая наиболее удобным способом оказался первый из предложенных.

Что касается второго.
Прохожий111Не так уж и много.
Одно дело, когда необходимо подсчитать 2 итога по одной группе.
В моем отчете имеется 5 групп, в каждой необходимо подсчитать:
4 итога по количеству (поскольку KRTRO имеет 4 значения);

4 итога по значению поля.
От сюда - большое количество переменных.

Не думал, что всё окажется так просто! :-)
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280544
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появилась еще одна проблема:
Если создавать Running Total Field выполняющий операцию суммирования .
То в случае отсутствия записей (соответствующих условию отбора) поле не отображает 0 .

Нужно компактное решение. Кто может помочь?
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280606
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не должна бы она так ...

посмотри нет ли в свойствах филда, полученного через Total в закладке Number установленной галочки Supress If Zero, если есть, то это берется из установок по умолчанию, которые скорее всего уже правились для других целей.
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280701
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опишу по подробнее ситуацию

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
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280781
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ах вот как ....
ну тогда поиграйся с параметрами отчета File/Report Options
убери галочки с "Convert Database(Other) NULL Values to Default"
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280786
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вернее наоборот - поставь !
сорри...
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280814
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Галку на Convert NULL Field Value to Default поставил.
Но пока результата не вижу.
Где этот NULL Field Value искать?
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280840
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ключевой галкой является для твоего случая "Other"
см картинку
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33280867
Прохожий111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanDzen Причем подобное творится только с функцией sum . Если то же самое проделать с count , всё будет нормально.

Возможна следующая ситуация:
Данное поле у Вас имеет значение NULL. Функция count - подсчитает это поле, т.к. она считает количество полей, а не их содержимое. Ф-я sum считает их содержимое т.е. возможна ситуация Null + 124 + 13 - что не допустимо.
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33281213
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня Crystal 8.5

И в Report Options нет "Other"
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33281266
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жаль...
тогда остается только воспользоваться схемой, которую я предложил в первом посте и добавить туда проверку на IsNull.
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33281997
Прохожий111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте два вычисляемых поля вместо KRTRO и PKol(если второе поле то же принимает значение NULL).
1)
if isNull({KRTRO}) then
0
else
{KRTRO}
2)
if isNull({PKol}) then
0
else
{PKol}

И дальше работайте придерживаясь той же схемы, используя созданные поля.
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33283620
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это тоже не помогает.
Видимо просто складывать нечего
( в результате фильтрации данных по значению поля, записи с указанным значением отстутствуют )
...
Рейтинг: 0 / 0
Подсчет итога по двум полям
    #33283653
Прохожий111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если складывать нечего, а количество полей>0 должны получить 0.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Подсчет итога по двум полям
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]