Crystal Reports условное форматирование для сводных полей - PullRequest
1 голос
/ 12 марта 2012

Я пытаюсь создать формулу десятичного форматирования в моих полях резюме.Значения в базе данных могут иметь 0, 1 или 2 десятичных знака.Я начал с этого:

If (CurrentFieldValue mod 1 = 0) Then
            0
Else If (CurrentFieldValue mod .1 = 0) Then
            1
Else
            2

В простом одиночном поле данных это работает и отображает значение с 0, 1 или 2 десятичными знаками на основе данных, поступающих из моей базы данных.Эта же формула не работает для поля сводки в моих отчетах с данными группы.Любые идеи?

Редактировать: Поскольку я не знаю, как форматировать код в комментарии, я рассмотрю предложение использования формулы здесь:

Didnне работаетФормула:

Sum ({myTable.dataValue}, {myTable.groupField})

Затем я использовал:

If ({@formula} mod 1 = 0) Then
    0
Else If ({@formula} mod .1 = 0) Then
    1
Else
    2

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

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

ОК - оказывается, это из-за нашего непонимания функции мода:)

Все моды 1 на самом деле возвращает 0. Это формула, которую вам нужно использовать:

if {ER100_ACCT_ORDER.ER100_ORD_TOT} * 100 mod 100 = 0 then
 0
else if {ER100_ACCT_ORDER.ER100_ORD_TOT} * 100 mod 10 = 0 then
 1
else
 2

:)

1 голос
/ 12 марта 2012

Как насчет создания поля формулы вместо использования встроенного поля сводки:

sum({mytable.myfield})

Тогда вы можете использовать условное форматирование:

If ({@formula} mod 1 = 0) Then
        0
Else If ({@formula} mod .1 = 0) Then
        1
Else
        2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...