2

我正在使用 JasperReports 4.6.0 和 JDK 1.6 来生成我的 .docx 报告。

Jasper 实际上默认以单列表的形式生成报告,其中每个组件(例如 TextField)占用一行。我在目前情况下面临的问题是,每当我想编辑我的输出报告并在某些文本字段中手动添加新行时,我必须通过加宽表格行来加宽给定文本字段的高度(即单击并滑动) .

这似乎是一项乏味的任务。所以我查看了一个随意的 MS Word 表格的属性,我注意到一个名为“指定高度”的属性

![例子] 1

这在我的碧玉输出报告中默认启用。如果禁用,可以简单地添加一个 CR,下面的所有行也会移动。话虽如此,我想在我的 jasper 中禁用此属性(无论是来自 java 还是 jrxml)。

这是我的 jrxml :

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="profile_report" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0" uuid="40a9d14e-f38a-4588-b1d3-216588ae5e9a">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>  
    <style name="backgroundStyle" mode="Opaque" backcolor="#009AB7" forecolor="#FFFFFF"/>   


    <parameter name="experience" class="java.lang.String"/>

    <parameter name="skills" class="java.lang.String"/>
    <parameter name="skillsDataSource" class="java.util.List"/>
    <parameter name="subreport_mainCat_parameter" class="net.sf.jasperreports.engine.JasperReport"/>
    <parameter name="subreport_subCat_parameter" class="net.sf.jasperreports.engine.JasperReport"/>
    <parameter name="subreport_skill_parameter" class="net.sf.jasperreports.engine.JasperReport"/>

    <detail>
        <band height="50">

            <textField isStretchWithOverflow="true">
                <reportElement positionType = "Float" x="50" y="0" width="455" height="20" uuid="ce308940-e950-4d33-97b9-47d6fb10ee08"/>
                <textElement>
                    <font size="10" />
                    <paragraph lineSpacingSize="0"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{experience}]]></textFieldExpression>
            </textField>

            <textField> 
                <reportElement positionType = "Float" style="backgroundStyle" x="50" y="22" width="455" height="20" uuid="ce308940-e950-4d33-97b9-47d6fb11ee08"/>
                <textElement>
                    <font fontName="Calibri"  size="12" />
                    <paragraph lineSpacingSize="0"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{skills}]]></textFieldExpression>
            </textField>

            <subreport>
                <reportElement positionType = "Float" x = "50" y = "44" width = "455" height = "3" isRemoveLineWhenBlank = "true" backcolor = "#99ccff"/>
                <subreportParameter name="subreport_subCat_parameter">
                    <subreportParameterExpression><![CDATA[$P{subreport_subCat_parameter}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="subreport_skill_parameter">
                    <subreportParameterExpression><![CDATA[$P{subreport_skill_parameter}]]></subreportParameterExpression>
                </subreportParameter>
                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{skillsDataSource})]]></dataSourceExpression>
                <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{subreport_mainCat_parameter}]]></subreportExpression>
            </subreport>
        </band>
    </detail>

</jasperReport>
4

1 回答 1

2

要禁用“指定高度”属性,您应该设置属性

net.sf.jasperreports.export.docx.flexible.row.height=true, 默认为false

jrxml

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="afeb1e80-f428-4ec0-930e-64d32f4d7e57">
    <property name="net.sf.jasperreports.export.docx.flexible.row.height" value="true"/>
....
</jasperReport>

IDE(JasperSoft 工作室)

在大纲中选择报告,在属性中切换到高级选项卡,单击选择属性属性时出现的按钮

查找属性

这将打开一个对话框,按“添加”,然后插入属性

添加属性

于 2017-05-06T00:14:14.420 回答