2010-08-03 2 views
1

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

IE:

Пункт 1 - 3 августа 2010 - Стоимость $ 1000
Пункт 1 - 4 августа 2010 - (Стоимость подавлено)
Пункт 2 - 3 августа 2010 - $ 100
Пункт 3 - 4 августа 2010 г. - $ 200

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

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

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

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

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

Любые идеи?

ответ

2

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

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

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

+0

re # 1, мне действительно нужны другие данные для отображения (это сложнее, чем просто дата). Я использовал опцию №2, и она работала как шарм, просто добавила итоговую сумму с оценкой «по изменению поля», а затем просто отображалась в разделе группы. Огромное спасибо. Я рассмотрю эту область Кристалла намного больше сейчас. –

+0

Nathan Koop ... Running Total Calculation не очень эффективны в Crystal Reports. Если вообще возможно обработать расчет в вашем SQL-запросе. Самый простой способ объяснить: «Сила и скорость отчета не Crystal Report, а SQL-запрос, используемый для создания набора данных». Crystal Reports может делать много классных вещей, но если вы сможете больше работать на сервере (SQL Server, Oracle), отчет всегда будет работать быстрее. Обычно я беру на себя обязательство сгладить свой набор данных только для того, что необходимо, а затем позволить отчету обрабатывать форматирование. Я редко использую кристаллические формулы –

0

Другой вариант - просто использовать глобальные переменные для отслеживания вашей суммы, используя обратное условие, которое вы используете для подавления. Это должно быть лучше, с точки зрения производительности, чем использование полных результатов Crystal's Complete или Summary.

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

Смежные вопросы