我想水平显示元素(在一个"行"中).我想象这个问题就像一个有一行和动态列数的表.此表中的每个单元格包含相同的子报表但具有不同的数据源.
一开始我尝试组合组件列表和子报表.但事实证明,列表组件不支持水平布局.我在某处读到了使用交叉表.但是,当我尝试将子报表插入度量单元格时,iReport会显示一条消息,表示我无法执行此操作.那我该怎么办?
根据您的上述评论,我会说水平打印元素列表并不困难.List组件基本上是子报表.因此,您还可以创建自定义List组件,该组件可以水平打印元素列表.您所需要的只是创建一个没有任何边距的新报告,将其" 打印顺序 "设置为" 水平 "并根据您的要求设置列数.然后,您可以将此报表作为子报表嵌入到某些主报表和水平打印元素中.
根据您的要求,您可以相应地设置报告和文本字段大小.这是我创建的报告的屏幕截图:

这是我创建的示例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="report name" columnCount="5" printOrder="Horizontal" pageWidth="595" pageHeight="842" columnWidth="119" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band splitType="Stretch"/>
</title>
<pageHeader>
<band splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band splitType="Stretch"/>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{field}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band splitType="Stretch"/>
</pageFooter>
<summary>
<band splitType="Stretch"/>
</summary>
</jasperReport>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7970 次 |
| 最近记录: |