是否可以concat
在表达式中使用sql的功能$X{}
:
($X{IN,(CONCAT(vtiger_usersAccounts.first_name,' ',vtiger_usersAccounts.last_name)),user)
我有错误,但我该怎么做呢?
是否可以concat
在表达式中使用sql的功能$X{}
:
($X{IN,(CONCAT(vtiger_usersAccounts.first_name,' ',vtiger_usersAccounts.last_name)),user)
我有错误,但我该怎么做呢?
尝试在 $X 函数中使用分号(或管道)分隔符,然后它将被正确解析:
$X{IN;CONCAT(vtiger_usersAccounts.first_name,' ',vtiger_usersAccounts.last_name);user)
如果您在 iReport 中使用此功能,需要注意的另一件事是,每次更改 Gui 中的报告(假设您调整列的大小)时,sql 都会恢复为逗号分隔符,这似乎是 iReport 中的一个烦人的错误。
试试这个表达式:
SELECT CONCAT(vtiger_usersAccounts.first_name,' ',vtiger_usersAccounts.last_name) as name FROM table WHERE $X{IN, name, user}
HSQLDB的工作示例:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ..>
<parameter name="cities" class="java.util.Collection">
<defaultValueExpression><![CDATA[Arrays.asList("Dallas 2 Upland Pl.", "Chicago 202 College Av.")]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT id, CONCAT(city, CONCAT(' ', street)) as name FROM address WHERE $X{IN, name, cities}]]>
</queryString>
<field name="ID" class="java.lang.Integer"/>
<field name="name" class="java.lang.String"/>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="100" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
注意:在此示例中,我使用了CONCAT(value1, CONCAT(' ', value2))
表达式而不是您的表达式CONCAT(value1, ' ', value2)
。
您可以在查询示例帖子中找到有关使用$X{}
语法的更多信息。