Как умножить два строковых поля в JasperReports? - PullRequest
2 голосов
/ 13 сентября 2011

Как мне умножить два поля типа string (скажем, цена и количество), чтобы получить результат типа double? Как записать это в XML-файл?

Я пробовал это в выражении переменной, но оно не работает:

new Double(Double.parseDouble($F{qpa}) * Double.parseDouble($F{price}))]]

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

JasperReports не будет автоматически приводить выражение переменной к классу переменной.@Vicky, ваше выражение переменной работает на меня, как только я изменил класс переменной со значения по умолчанию java.lang.String на java.lang.Double.

Также следует проверить, что классы полей qpa и price являются строковыми, поскольку это то, что ожидает parseDouble().

Кроме того, если вы собираетесь печатать значение переменной в textField, класс выражений также должен быть изменен на java.lang.Double.

(Это применимо только в том случае, если вы пишете свои выражения на Java. Если вы измените язык отчета с java на groovy, эти преобразования будут выполняться автоматически. Однако я не рекомендую это делать.)

0 голосов
/ 14 сентября 2011

Попробуйте использовать это выражение:

Double.valueOf(Double.valueOf($F{qpa}).doubleValue()*Double.valueOf($F{price}).doubleValue())
...