Добавление строковых полей в Crystal Reports

У меня есть имя столбца Amount, значения которого иногда равны 400 (300), и, следовательно, тип данных в отчете Crystal является строкой.

Теперь я хочу суммировать столбец суммы. Как это сделать?

форум Sum(FieldName) не работает, потому что это строка. Я никак не могу преобразовать его в числовое..

Дайте мне знать, если требуются какие-либо входные данные.

Спасибо..


comment
Во что вы хотите преобразовать 400 (300)? 400? 300? 400 300?   -  person PowerUser    schedule 07.01.2011


Ответы (2)


Создайте новую формулу в своем отчете следующим образом:

if (IsNull({Testing.Amount}) or not IsNumeric({Testing.Amount}) or {Testing.Amount} = "")
Then 0 
Else
ToNumber({Testing.Amount})

И отобразить формулу в отчете.

person codingbadger    schedule 07.01.2011
comment
еще раз спасибо! :-) но toNumber не работает. при отображении формулы в отчете выдается сообщение об ошибке, что строка не является числовой (при предварительном просмотре отчета) - person xorpower; 07.01.2011
comment
@Romil - в данных должны быть пробелы или буквенные символы. Я обновил свой ответ, чтобы разрешить нули и пустые строки. Можете ли вы подтвердить, есть ли в ваших данных какие-либо альфа-символы? - person codingbadger; 07.01.2011
comment
Да вы правы. Значения содержат пробелы, а также специальные символы, такие как скобки '(' и ')'. Я обновил ваш код, но он показывает ту же ошибку. Благодарность! - person xorpower; 07.01.2011
comment
@Romil - скобки не проблема, поскольку они интерпретируются как отрицательная цифра. Я добавил проверку, чтобы убедиться, что он не пытается преобразовать какие-либо значения, содержащие альфа-символы. Это означает, что значение 12nk или one будет преобразовано в ноль. - person codingbadger; 07.01.2011

Поздно, но так как я застрял на этом, так что

  • Создайте новое поле формулы (скажем, имя «abc»)
  • Преобразуйте строковый столбец в число в этом поле следующим образом (ToNumber({tablename.yourfield})
  • Затем создайте новый промежуточный итог. В этом поле выберите «Сумма (abc)» и поместите этот промежуточный итог в нужное место.
person Huzaifa    schedule 22.11.2020