jasper-reports - 如何创建列表控件,jr :list in two columns?

标签 jasper-reports multiple-columns

我有一个 jasper 报告列表控件,我从后端获取动态值。我需要在两列中显示列表值。

我该怎么做?

这是我的jr:list

代码
<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="Horizontal">
    <datasetRun subDataset="accessorialsDataset" uuid="b0e600e0-5797-42b4-8078-12dd4231dd3d">
        <dataSourceExpression><![CDATA[$P{accessorialDataSource}]]></dataSourceExpression>
    </datasetRun>
    <jr:listContents height="12" width="524">
        <textField isStretchWithOverflow="true" isBlankWhenNull="true">
            <reportElement positionType="Float" x="0" y="0" width="259" height="12" uuid="221d3ff4-39a7-4ddd-bc74-50bed600819b"/>
            <textElement>
                <font fontName="Liberation Sans" size="8"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{accessorial}]]></textFieldExpression>
        </textField>
    </jr:listContents>
</jr:list>

最佳答案

要在jr:list组件上实现多列设置printOrder="Horizo​​ntal",然后指定jr:listContents宽度为包含 jr:list

的 reportElement 所需的列数的倍数

2 列示例

<?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="2 columns" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="308cb8ae-e40a-45f4-a347-c6fcdad320b1">
    <subDataset name="Dataset" uuid="ad0d45f0-00f0-495c-bff4-ae70340e05d4">
        <queryString>
            <![CDATA[]]>
        </queryString>
        <field name="_THIS" class="java.lang.String"/>
    </subDataset>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <summary>
        <band height="30">
            <componentElement>
                <reportElement x="0" y="0" width="550" height="30" uuid="f811df99-b6ad-4157-a818-42ed4b77c2f0"/>
                <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="Horizontal">
                    <datasetRun subDataset="Dataset" uuid="30dc2e8a-06f9-4ecf-aa8d-66d5edd6fb95">
                        <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(java.util.Arrays.asList("Item1;Item2;Item3;Item4".split(";")))]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="30" width="275">
                        <textField>
                            <reportElement x="0" y="0" width="270" height="30" uuid="2500a411-7ad6-4148-958f-34dfae2c9346"/>
                            <textElement verticalAlignment="Middle"/>
                            <textFieldExpression><![CDATA[$F{_THIS}]]></textFieldExpression>
                        </textField>
                    </jr:listContents>
                </jr:list>
            </componentElement>
        </band>
    </summary>
</jasperReport>

Note: printOrder="Horizontal" and that jr:listContents width="275" is 1/2 of the reportElement's width="550"

输出

result

关于jasper-reports - 如何创建列表控件,jr :list in two columns?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54077528/

相关文章:

unix - 使用awk提取具有多个名称的列数据(UNIX)

java - 在 jaspersoft studio 中处理多个数据源

java - Jasperreports多个子报表重叠

mysql - 如何在 mySQL 中使用不同的 where 子句更新多个列

python - 如何在 Spark 中分配和使用列标题?

excel - 无法在 Excel VBA 用户窗体中设置多列列表框的选定属性

mysql - 硬编码值工作正常,但是当从参数传递时,在 i-Report 中不会给出相同的结果

java - 如何在Jasper Report中创建树形结构?

jasper-reports - 页眉后的分页符

python - 如何迭代 Pandas 数据框并创建新列