JRXML - Показать флажок в таблице - PullRequest
2 голосов
/ 21 июня 2011

Мне не удается отобразить флажок в таблице в jrxml .

Вот пример моего кода:

<detail>
    <band height="45" splitType="Stretch">
        <textField isBlankWhenNull="true">
            <reportElement style="MyCustomStyle" stretchType="RelativeToTallestObject" x="650" y="0" width="80" height="35"/>
            <textElement textAlignment="Center"/>
            <textFieldExpression class="java.lang.Boolean"><![CDATA[$F{myBooleanVariable}]]>
            </textFieldExpression>
        </textField>
    </band>
</detail>

В столбце отображаются только true или false . Я предполагал, что указание class="java.lang.Boolean" в элементе textFieldExpression преобразует значение в флажок, но, очевидно, мне нужно нечто большее.

Есть идеи, что я делаю не так?

Ответы [ 4 ]

5 голосов
/ 06 августа 2013

Я только что добавил код Unicode в решение, которое вы уже сделали:

<textFieldExpression><![CDATA[$F{myBooleanVairiable}? "\u2713":"\u2717"]]></textFieldExpression>

u2713 переводится в отметку, а u2717 в крестик

Не забудьте убедиться, что для оператора кодирования в верхней части страницы xml установлено значение UTF8:

2 голосов
/ 20 июля 2016

Просто, сделайте это по тегу -> imageExpression <- </p>

        <componentElement>
            <reportElement x="196" y="109" width="46" height="39"/>
            <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
                <datasetRun subDataset="dataset3">
                    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{fisicos})]]></dataSourceExpression>
                </datasetRun>
                <jr:listContents height="39" width="46">
                    <image>
                        <reportElement x="12" y="0" width="17" height="21"/>
                        <imageExpression><![CDATA[$F{_THIS} == true ? $P{checkboxFisicoOK} : $P{checkboxFisicoNOK}]]></imageExpression>
                    </image>
                </jr:listContents>
            </jr:list>
        </componentElement>

enter image description here

  • checkboxFisicoOK: это параметр пути изображения.

    <parameter name="checkboxFisicoOK" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[new java.lang.String("/Users/ccamol/onprocess/checkboxOK.jpg")]]></defaultValueExpression>
    </parameter>
    
2 голосов
/ 28 июля 2015

Флажок в отчете jasper HTML может быть следующим:

<textFieldExpression><![CDATA[$F{myBooleanVairiable}? "\u2713":"\u2717"]]></textFieldExpression>

Примечание: необходимо использовать шрифт, который поддерживает Unicode

В PDF выше код не может быть использован. Либо мы должны использовать расширение шрифта, либо рисуем линии следующим образом

<frame>
<reportElement x="161" y="73" width="12" height="12"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
    <pen lineWidth="1.0"/>
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
</box>
<line>
    <reportElement x="2" y="7" width="2" height="2">
        <printWhenExpression><![CDATA[Boolean Exprssion]></printWhenExpression>
    </reportElement>
</line>
<line direction="BottomUp">
    <reportElement x="4" y="3" width="6" height="6">
        <printWhenExpression><![CDATA[Boolean Exprssion]]]></printWhenExpression>
    </reportElement>
</line>

1 голос
/ 21 июня 2011

Хорошо, так что, очевидно, невозможно добавить флажок в таблицу с этим языком!

Так что теперь я просто отображаю ДА / НЕТ:

<textFieldExpression class="java.lang.String"><![CDATA[$F{myBooleanVariable}?"YES":"NO"]]></textFieldExpression>

Это лучшее, что я мог найти!

...