式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{}
構文の使用に関する詳細については、クエリ サンプルの投稿を参照してください。