我有一个报告,当前在Jaspersoft Studio中使用整数。我需要在每个字段中输入13个字符,然后对其进行迭代。不幸的是,该字段一次只允许输入10个字符。我试图将字段更改为字符串输入,但是对这些输入字段的调用很多,需要将其强制转换为整数,如果能够更改最大值,对我来说似乎容易得多该字段中的允许字符为13。
如果愿意,我愿意将每个输入的字符串都强制转换为int,但是我对Jaspersoft还是很陌生,到目前为止,我所做的每一次尝试都失败了。这是我的查询内容:
select lpad(num::text, 13, '0') value1
, num::text value1no0s
, lpad((num+ ($P{RangeEnd}-$P{RangeStart})/3)::text, 13,
'0') value2
, (num+ ($P{RangeEnd}-$P{RangeStart})/3)::text value2no0s
, lpad(( num+ 2*($P{RangeEnd}-$P{RangeStart})/3)::text,
13,
'0') value3
, ( num+ 2*($P{RangeEnd}-$P{RangeStart})/3)::text value3no0s
from generate_series($P{RangeStart},($P{RangeEnd}-$P{RangeStart})/3 + $P{RangeStart} +1) num
这是我的报告中典型表达的示例:
IF(INTEGER_VALUE($F{value3}) > $P{RangeEnd}, null,IF(INTEGER_VALUE($F{value1}) >= (($P{RangeEnd}-$P{RangeStart})/3+$P{RangeStart}), null, $P{SaleName}))
请告知我是否可以提供更多信息。谢谢!
答案 0 :(得分:0)
应该不进行此操作,因为您的数字(13个字符)位于2147483647
的{{3}}上方,因此您需要将参数定义为{{3} }
JasperSoft Studio的开发人员实际上是在尝试通过限制MAX_VALUE
jrxml
<?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="Blank_A4_7" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3c26b137-f63b-46c8-8469-de9f24f291f3">
<parameter name="Parameter1" class="java.lang.Long"/>
<queryString>
<![CDATA[]]>
</queryString>
<title>
<band height="79" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="270" height="30" uuid="41fd4d98-bd1e-48c9-ac8c-d8cfae208a5d"/>
<textFieldExpression><![CDATA[$P{Parameter1}]]></textFieldExpression>
</textField>
</band>
</title>
</jasperReport>
输出