SUM по-прежнему включает подавленные значения

У меня есть отчет, который включает некоторую ограниченную повторяющуюся информацию, возможно несколько дат, но я хочу, чтобы значения в долларах отображались только для первого элемента.

IE:

Элемент 1 – 3 августа 2010 г. — стоимость 1 000 долл. США
Элемент 1 – 4 августа 2010 г. – (стоимость скрыта)
Элемент 2 – 3 августа 2010 г. – 100 долл. США
Элемент 3 – 4 августа 2010 г.

При суммировании это должно отображаться как 1300 долларов США, но вместо этого оно отображается как 2300 долларов США.

Я скрыл раздел затрат, используя формулу:

(
if (Previous({MyReportData;1.MyItemId}) = {MyReportData;1.MyItemId}) then
    true
else
    false
)

Эта формула работает нормально.

Я попытался создать формулу для выполнения пользовательской СУММЫ, которая исключит повторяющиеся элементы, но она продолжает говорить: «Это поле не может быть суммировано.

Любые идеи?


person Nathan Koop    schedule 03.08.2010    source источник


Ответы (2)


У вас есть два варианта

  1. Измените свой SQL, чтобы вводить только те данные, которые вам нужны. Вам явно не нужен ряд за 4 августа 2010 года. Так что не вносите его в отчет. Тогда ваше резюме будет работать так, как ожидалось.

  2. Создайте промежуточный итог и оцените изменение строки, используя формулу, противоположную формуле подавления.

person John Hartsock    schedule 03.08.2010
comment
Что касается № 1, мне действительно нужно отображать другие данные (это сложнее, чем просто дата). Я использовал вариант № 2, и он работал как шарм, просто добавлял промежуточный итог с оценкой изменения поля, а затем просто отображался в разделе группы. Огромное спасибо. Теперь я буду больше изучать эту область Кристалла. - person Nathan Koop; 03.08.2010
comment
Натан Куп... Расчет текущих сумм не очень эффективен в Crystal Reports. Если это вообще возможно, обработайте расчет в своем SQL-запросе. Самый простой способ объяснить: мощность и скорость отчета не в Crystal Report, а в SQL-запросе, используемом для создания набора данных. Crystal Reports может делать много интересных вещей, но если вы можете обрабатывать больше на сервере (SQL Server, Oracle), отчет всегда будет работать быстрее. Обычно я использую подход, заключающийся в том, чтобы свести набор данных только к тому, что необходимо, а затем позволить отчету обработать форматирование. Я редко использую кристаллические формулы - person John Hartsock; 04.08.2010

Другой вариант — просто использовать глобальные переменные для отслеживания вашей суммы, используя обратное условие, которое вы используете для подавления. Это должно быть лучше с точки зрения производительности, чем использование полей «Промежуточные итоги» или «Сводка» в Crystal.

Хотя я бы предположил, что использование SQL-выражения для простого выбора строк с самыми ранними датами по ItemID будет еще быстрее и избавит Crystal от необходимости перебирать данные.

person Ryan    schedule 03.08.2010