深入解析JasperReports模板标签构建高效报表的利器系列一
Jasper 模板标签是 JasperReports 库中用于定义报表布局和内容的一种标记语言。JasperReports 是一个开源的 Java 报表工具,广泛用于生成各种格式的报表(如 PDF、Excel、HTML 等)。模板标签在 JasperReports 的 XML 模板文件中使用,用于定义报表的结构、数据源、样式等。
以下是一些常见的 Jasper 模板标签及其含义:
1.<jasperReport>
含义: 这是 JasperReports 模板的根元素,定义了报表的基本属性,如报表名称、页面大小、方向等。
示例:
xml
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
name="MyReport"
pageWidth="595"
pageHeight="842"
orientation="Portrait">
2.<field>
含义: 定义报表中的数据字段,通常与数据源中的列对应。
示例:
xml
<field name="employeeName" class="java.lang.String"/>
3.<parameter>
含义: 定义报表中的参数,参数可以在运行时传递给报表。
示例:
xml
<parameter name="startDate" class="java.util.Date"/>
4.<variable>
含义: 定义报表中的变量,变量可以用于计算或存储中间结果。
示例:
xml
<variable name="totalSales" class="java.lang.Double" calculation="Sum">
<variableExpression><![CDATA[$F{salesAmount}]]></variableExpression>
</variable>
5.<title>
含义: 定义报表的标题部分,通常只在报表的第一页显示。
示例:
xml
<title>
<band height="50">
<staticText>
<text><![CDATA[My Report Title]]></text>
</staticText>
</band>
</title>
6.<pageHeader>
含义: 定义报表的页眉部分,通常在每个页面的顶部显示。
示例:
xml
<pageHeader>
<band height="30">
<staticText>
<text><![CDATA[Page Header]]></text>
</staticText>
</band>
</pageHeader>
7.<detail>
含义: 定义报表的明细部分,通常用于显示数据源中的每一条记录。
示例:
xml
<detail>
<band height="20">
<textField>
<textFieldExpression><![CDATA[$F{employeeName}]]></textFieldExpression>
</textField>
</band>
</detail>
8.<pageFooter>
含义: 定义报表的页脚部分,通常在每个页面的底部显示。
示例:
xml
<pageFooter>
<band height="30">
<staticText>
<text><![CDATA[Page Footer]]></text>
</staticText>
</band>
</pageFooter>
9.<summary>
含义: 定义报表的总结部分,通常只在报表的最后一页显示。
示例:
xml
<summary>
<band height="50">
<staticText>
<text><![CDATA[Report Summary]]></text>
</staticText>
</band>
</summary>
10.<textField>
含义: 用于显示动态文本内容,通常与字段或变量绑定。
示例:
xml
<textField>
<textFieldExpression><![CDATA[$F{employeeName}]]></textFieldExpression>
</textField>
11.<staticText>
含义: 用于显示静态文本内容。
示例:
xml
<staticText>
<text><![CDATA[Hello, World!]]></text>
</staticText>
12.<image>
含义: 用于在报表中显示图片。
示例:
xml
<image>
<imageExpression><![CDATA["path/to/image.png"]]></imageExpression>
</image>
13.<subreport>
含义: 用于在主报表中嵌入子报表。
示例:
xml
<subreport>
<reportElement x="0" y="0" width="100" height="50"/>
<subreportExpression><![CDATA["subreport.jasper"]]></subreportExpression>
</subreport>
14.<group>
含义: 用于定义报表中的分组,通常用于对数据进行分组显示。
示例:
xml
<group name="DepartmentGroup">
<groupExpression><![CDATA[$F{department}]]></groupExpression>
<groupHeader>
<band height="20">
<staticText>
<text><![CDATA[Department:]]></text>
</staticText>
<textField>
<textFieldExpression><![CDATA[$F{department}]]></textFieldExpression>
</textField>
</band>
</groupHeader>
</group>
15.<background>
含义: 定义报表的背景部分,通常用于显示水印或其他背景内容。
示例:
xml
<background>
<band height="800">
<image>
<imageExpression><![CDATA["watermark.png"]]></imageExpression>
</image>
</band>
</background>
16.<band>
含义: 定义报表中的一个区域(带),用于包含各种报表元素(如文本、图像、字段等)。
示例:
xml
<band height="20">
<textField>
<textFieldExpression><![CDATA[$F{employeeName}]]></textFieldExpression>
</textField>
</band>
17.<reportElement>
含义: 定义报表元素的基本属性,如位置、大小、样式等。
示例:
xml
<reportElement x="0" y="0" width="100" height="20"/>
18.<style>
含义: 定义报表元素的样式,如字体、颜色、边框等。
示例:
xml
<style name="MyStyle" fontName="Arial" fontSize="12" isBold="true"/>
19.<crosstab>
含义: 用于创建交叉表(交叉报表),通常用于显示多维数据。
示例:
xml
<crosstab>
<rowGroup name="RowGroup" width="100">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{rowField}]]></bucketExpression>
</bucket>
</rowGroup>
<columnGroup name="ColumnGroup" height="30">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{columnField}]]></bucketExpression>
</bucket>
</columnGroup>
<measure name="Measure" class="java.lang.Double">
<measureExpression><![CDATA[$F{measureField}]]></measureExpression>
</measure>
</crosstab>
20.<chart>
含义: 用于在报表中插入图表,如柱状图、饼图、折线图等。
示例:
xml
<chart>
<chartTitle>
<titleExpression><![CDATA["Sales Chart"]]></titleExpression>
</chartTitle>
<categoryDataset>
<categorySeries>
<seriesExpression><![CDATA[$F{seriesField}]]></seriesExpression>
<categoryExpression><![CDATA[$F{categoryField}]]></categoryExpression>
<valueExpression><![CDATA[$F{valueField}]]></valueExpression>
</categorySeries>
</categoryDataset>
<barPlot>
<plot/>
</barPlot>
</chart>
21.<table>
含义: 用于在报表中插入表格,通常用于显示结构化数据。
示例:
xml
<table>
<dataset>
<field name="column1" class="java.lang.String"/>
<field name="column2" class="java.lang.Double"/>
</dataset>
<column name="Column1" width="100">
<textField>
<textFieldExpression><![CDATA[$F{column1}]]></textFieldExpression>
</textField>
</column>
<column name="Column2" width="100">
<textField>
<textFieldExpression><![CDATA[$F{column2}]]></textFieldExpression>
</textField>
</column>
</table>
22.<scriptlet>
含义: 用于在报表中嵌入自定义的 Java 代码,通常用于处理复杂的业务逻辑。
示例:
xml
<scriptlet name="MyScriptlet" class="com.example.MyScriptlet"/>
23.<import>
含义: 用于导入 Java 类或包,以便在报表中使用。
示例:
xml
<import value="java.util.*"/>
24.<queryString>
含义: 定义报表的查询语句,通常用于从数据库中获取数据。
示例:
xml
<queryString>
<![CDATA[SELECT * FROM employees]]>
</queryString>
25.<property>
含义: 定义报表的属性,通常用于配置报表的行为或样式。
示例:
xml
<property name="net.sf.jasperreports.export.pdf.force.linebreak.policy" value="true"/>
26.<printWhenExpression>
含义: 用于控制报表元素的显示条件,只有当表达式为true 时,元素才会显示。
示例:
xml
<printWhenExpression><![CDATA[$F{amount} > 1000]]></printWhenExpression>
27.<break>
含义: 用于在报表中插入分页符,强制在新页面开始显示内容。
示例:
xml
<break/>
28.<line>
含义: 用于在报表中绘制线条。
示例:
xml
<line>
<reportElement x="0" y="0" width="100" height="1"/>
</line>
29.<rectangle>
含义: 用于在报表中绘制矩形。
示例:
xml
<rectangle>
<reportElement x="0" y="0" width="100" height="50"/>
</rectangle>
30.<ellipse>
含义: 用于在报表中绘制椭圆。
示例:
xml
<ellipse>
<reportElement x="0" y="0" width="100" height="50"/>
</ellipse>
31.<frame>
含义: 用于在报表中创建一个框架,可以包含其他报表元素。
示例:
xml
<frame>
<reportElement x="0" y="0" width="100" height="50"/>
<textField>
<textFieldExpression><![CDATA[$F{fieldName}]]></textFieldExpression>
</textField>
</frame>
32.<componentElement>
含义: 用于在报表中插入自定义组件。
示例:
xml
<componentElement>
<reportElement x="0" y="0" width="100" height="50"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components">
<datasetRun subDataset="MySubDataset"/>
<jr:listContents height="20">
<textField>
<textFieldExpression><![CDATA[$F{fieldName}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
33.<subDataset>
含义: 用于定义子数据集,通常用于在报表中重复使用相同的数据集。
示例:
xml
<subDataset name="MySubDataset">
<field name="fieldName" class="java.lang.String"/>
</subDataset>
34.<datasetRun>
含义: 用于在报表中运行子数据集。
示例:
xml
<datasetRun subDataset="MySubDataset"/>
35.<hyperlink>
含义: 用于在报表中创建超链接,通常用于跳转到其他报表或外部链接。
示例:
xml
<hyperlink>
<hyperlinkReferenceExpression><![CDATA["http://example.com"]]></hyperlinkReferenceExpression>
</hyperlink>
36.<bookmark>
含义: 用于在报表中创建书签,通常用于在 PDF 报表中创建目录或跳转链接。
示例:
xml
<bookmark>
<bookmarkExpression><![CDATA[$F{bookmarkName}]]></bookmarkExpression>
</bookmark>
37.<anchor>
含义: 用于在报表中创建锚点,通常用于在 PDF 报表中创建跳转链接。
示例:
xml
<anchor>
<anchorNameExpression><![CDATA[$F{anchorName}]]></anchorNameExpression>
</anchor>
38.<textElement>
含义: 用于定义文本元素的样式,如字体、颜色、对齐方式等。
示例:
xml
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial" size="12" isBold="true"/>
</textElement>
39.<box>
含义: 用于定义报表元素的边框样式,如边框颜色、宽度、样式等。
示例:
xml
<box>
<topPen lineWidth="1" lineColor="#000000"/>
<leftPen lineWidth="1" lineColor="#000000"/>
<bottomPen lineWidth="1" lineColor="#000000"/>
<rightPen lineWidth="1" lineColor="#000000"/>
</box>
40.<conditionalStyle>
含义: 用于定义条件样式,根据条件动态改变报表元素的样式。
示例:
xml
<conditionalStyle>
<conditionExpression><![CDATA[$F{amount} > 1000]]></conditionExpression>
<style backcolor="#FF0000"/>
</conditionalStyle>
41.<groupExpression>
含义: 用于定义分组的表达式,通常用于对数据进行分组。
示例:
xml
<groupExpression><![CDATA[$F{department}]]></groupExpression>
42.<sortField>
含义: 用于定义报表中的排序字段,通常用于对数据进行排序。
示例:
xml
<sortField name="employeeName" order="Ascending"/>
43.<filterExpression>
含义: 用于定义报表中的过滤表达式,通常用于过滤数据。
示例:
xml
<filterExpression><![CDATA[$F{amount} > 1000]]></filterExpression>
44.<defaultValueExpression>
含义: 用于定义字段或参数的默认值表达式。
示例:
xml
<defaultValueExpression><![CDATA["Default Value"]]></defaultValueExpression>
45.<pattern>
含义: 用于定义字段或参数的格式模式,通常用于格式化日期、数字等。
示例:
xml
<pattern><![CDATA[yyyy-MM-dd]]></pattern>
46.<imageExpression>
含义: 用于定义图像的表达式,通常用于动态加载图像。
示例:
xml
<imageExpression><![CDATA[$P{imagePath}]]></imageExpression>
47.<hyperlinkAnchorExpression>
含义: 用于定义超链接的锚点表达式,通常用于跳转到报表中的特定位置。
示例:
xml
<hyperlinkAnchorExpression><![CDATA[$F{anchorName}]]></hyperlinkAnchorExpression>
48.<hyperlinkPageExpression>
含义: 用于定义超链接的页码表达式,通常用于跳转到报表中的特定页面。
示例:
xml
<hyperlinkPageExpression><![CDATA[$V{PAGE_NUMBER} + 1]]></hyperlinkPageExpression>
49.<hyperlinkTooltipExpression>
含义: 用于定义超链接的工具提示表达式,通常用于显示超链接的提示信息。
示例:
xml
<hyperlinkTooltipExpression><![CDATA["Click to go to page " + ($V{PAGE_NUMBER} + 1)]]></hyperlinkTooltipExpression>
50.<hyperlinkParameter>
含义: 用于定义超链接的参数,通常用于传递参数给目标报表或链接。
示例:
xml
<hyperlinkParameter name="paramName">
<hyperlinkParameterExpression><![CDATA[$F{paramValue}]]></hyperlinkParameterExpression>
</hyperlinkParameter>