Crystal Reports 2008 - Сводка полей неаддитивных формул - PullRequest
1 голос
/ 19 января 2011

Мои извинения, если на этот вопрос уже был дан ответ; Возможно, это так, но я не нашел его более часа в поиске Google и SO.

У меня есть поле неаддитивной формулы (Cost / Qty). Он отлично работает со строками подробностей, но когда я добавляю его в нижние колонтитулы группы, он возвращает значения из последней строки подробностей, а не вычисления на уровне группы. Что мне нужно сделать, чтобы вычислить формулу по всем строкам в группе? Я удивлен, что это не поведение по умолчанию при добавлении поля в верхний или нижний колонтитул группы.

Вот что я получаю:

Category    Cost Qty Avg Cost
Detail A-1  $100   1 $   100
Detail A-2  $200   3 $    67
Footer A    $300   4 $    67

Я ожидаю увидеть среднюю стоимость в нижнем колонтитуле 75 долларов: 300/4. Если я использую агрегат, я получу неправильное значение (например, 167 долларов для суммы, 83 доллара для средней). В Cognos я бы использовал «Выражение» в качестве формулы агрегации.

Может ли какой-нибудь опытный пользователь CR сказать мне, что мне нужно сделать?

1 Ответ

2 голосов
/ 19 января 2011

Необходимо создать новое поле формулы только для нижнего колонтитула отчета.

Итак, если ваша детальная формула такая:

{Test.Cost} / {Test.Qty}

Затем вам нужно создать новую формулу со следующим:

Sum ({Test.Cost}) / Sum ({Test.Qty})

и поместите его в нижний колонтитул отчета. Это вернет правильное среднее значение (300/4 = 75)

EDIT:

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

Если бы вы группировали, например, по полю Category, тогда ваша формула для вычисления среднего по группе выглядела бы так:

Sum ({Test.Cost}, {Test.Category}) / Sum ({Test.Qty}, {Test.Category})

...