1

concatでsqlの関数を使用することは可能ですか?$X{}

($X{IN,(CONCAT(vtiger_usersAccounts.first_name,' ',vtiger_usersAccounts.last_name)),user)

エラーが発生しましたが、どうすればそのようなことができますか?

4

2 に答える 2

1

$ X関数でセミコロン(またはパイプ)区切り文字を使用してみてください。そうすると、正しく解析されます。

$X{IN;CONCAT(vtiger_usersAccounts.first_name,' ',vtiger_usersAccounts.last_name);user)

iReportでこれを使用している場合、Guiでレポートを変更するたびに(たとえば、列のサイズを変更すると)、SQLがコンマ区切り文字に戻ることに注意してください。これは、iReportの厄介なバグのようです。

于 2013-01-29T16:48:46.087 に答える
0

次の表現を試してください。

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

于 2012-10-18T13:36:18.883 に答える