Я получаю некоторые странные отрицательные значения в своем отчете, которые могут быть из базы данных. Я хочу форматировать поля для отображения нуля, когда значения отрицательны в редакторе выражений. Как это может быть сделано?Как проверить, является ли значение поля BigDecimal отрицательным в JasperReports
0
A
ответ
2
Вы должны использовать метод BigDecimal.signum() для проверки знака BigDecimal.
выражение будет:
<textFieldExpression><![CDATA[$P{bigDecimalValue}.signum() == -1 ? "0" : "Not negative big decimal"]]></textFieldExpression>
Выражение для Двойной проще:
<textFieldExpression><![CDATA[$P{doubleValue} < 0 ? "0" : "Non negative double"]]></textFieldExpression>
Образец:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="BigDecimal check" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<parameter name="doubleValue" class="java.lang.Double" isForPrompting="false">
<defaultValueExpression><![CDATA[1234.567]]></defaultValueExpression>
</parameter>
<parameter name="bigDecimalValue" class="java.math.BigDecimal" isForPrompting="false">
<defaultValueExpression><![CDATA[new BigDecimal(-9.8)]]></defaultValueExpression>
</parameter>
<title>
<band height="70">
<textField>
<reportElement x="10" y="10" width="300" height="15"/>
<textFieldExpression><![CDATA[$P{doubleValue} < 0.0 ? "0" : "Non negative double"]]></textFieldExpression>
</textField>
<textField>
<reportElement x="10" y="25" width="300" height="15"/>
<textFieldExpression><![CDATA[$P{bigDecimalValue}.signum() == -1 ? "0" : "Not negative big decimal"]]></textFieldExpression>
</textField>
</band>
</title>
</jasperReport>
Выходной результат генерируется в Jaspersoft студии будет:
Смежные вопросы
- 1. Проверить, является ли значение BigDecimal целочисленным значением
- 2. Проверить, является ли null JasperReports
- 3. Как проверить, является ли двойное значение отрицательным или нет?
- 4. Как проверить, является ли число положительным или отрицательным в C#?
- 5. Как проверить, действительно ли BigDecimal?
- 6. Как проверить, является ли значение числом?
- 7. Является отрицательным или положительным?
- 8. Как проверить, является ли возвращаемое значение нулевым?
- 9. Как определить, является ли значение поля объектом?
- 10. Проверить, является ли Integer положительным или отрицательным - Objective C
- 11. Как вы проверяете, является ли вход отрицательным числом в VB
- 12. Как определить, является ли шестнадцатеричное число отрицательным?
- 13. Как разобрать рубин BigDecimal проверить?
- 14. Как проверить, является ли переменная с плавающей точкой является отрицательным в Java
- 15. Проверьте, находится ли значение BigDecimal в диапазоне
- 16. Как проверить, является ли значение ключом RDD
- 17. Как проверить, является ли значение логически целочисленным?
- 18. Как проверить, является ли значение виджета «приемлемым»?
- 19. Как проверить, является ли значение таблица
- 20. Как проверить, является ли значение числом
- 21. Как проверить, является ли значение десятичным?
- 22. Как проверить, является ли значение ячейки числом
- 23. Как проверить, является ли значение пустым массивом?
- 24. C++/cli проверить, является ли значение числом
- 25. jQuery: проверка, является ли значение поля пустым
- 26. Проверка для поля BigDecimal
- 27. Как проверить, не является ли значение в массиве NULL?
- 28. При использовании дженериков, как определить, является ли T отрицательным?
- 29. Определите, является ли число отрицательным (на языке URM, как язык)
- 30. Проверить, является ли значение в массив
Выражение будет выглядеть следующим образом: '$ F {} bigDecimalValue .signum() == -1? «0»: «что-то еще» ' –
@AlexK благодарит, что решил. Но когда я попробовал его по двойному значению, я получил ошибку 'метод signum() не определен для типа Double' – Hilarious404
Хорошо, я получил его' $ V {doubleValue} <0? «0»: «что-то еще» – Hilarious404