JRXML - 在表格中显示一个复选框

Hal*_*Hal 2 checkbox jasper-reports xmltable

我无法在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>
Run Code Online (Sandbox Code Playgroud)

该列只显示truefalse.我认为class="java.lang.Boolean"textFieldExpression元素中指定会将值转换为复选框,但显然,我需要更多.

我知道我做错了什么?

小智 7

很简单,在标签 ->imageExpression<- 上执行此操作

        <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>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • checkboxFisicoOK:是图像路径的参数。

    <parameter name="checkboxFisicoOK" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[new java.lang.String("/Users/ccamol/onprocess/checkboxOK.jpg")]]></defaultValueExpression>
    </parameter>
    
    Run Code Online (Sandbox Code Playgroud)


小智 5

我刚刚为您已经制作的解决方案添加了一些unicode:

<textFieldExpression><![CDATA[$F{myBooleanVairiable}? "\u2713":"\u2717"]]></textFieldExpression>
Run Code Online (Sandbox Code Playgroud)

u2713转换为刻度线和u2717十字架

请记住确保您在xml页面顶部的编码语句设置为UTF8:

  • 不幸的是,当您将报告导出为 pdf 格式时,这似乎不起作用。我尝试了几种字体类型,但似乎没有一种可以工作。 (2认同)