当前位置: 首页 > news >正文

深入解析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>

相关文章:

  • 1985-2019年上市公司绿色专利申请量数据
  • 云服务培训四-网络服务
  • python---‘DataFrame‘ object has no attribute ‘read‘ 报错的解决
  • 牛客周赛83:A:JAVA
  • 面试题:说一下你对DDD的了解?
  • 常用的api测试软件
  • zookeeper-docker版
  • DeepSeek本地部署教程
  • gmock和cppfreemock原理学习
  • Python使用pyobdc库和tkinter框架连接数据库
  • oracle游标为什么没有共享,统计一下原因
  • 水果识别系统 | BP神经网络水果识别系统,含GUI界面(Matlab)
  • 《白帽子讲 Web 安全:点击劫持》
  • Makefile、Make和CMake:构建工具的三剑客
  • 授权与认证之jwt(一)创建Jwt工具类
  • macOS Sequoia 15.3 M3 Pro芯片 iOS 开发环境配置记录(最新)
  • ZYNQ-PL实践课堂(四)IP核之RAM
  • 经验分享:用一张表解决并发冲突!数据库事务锁的核心实现逻辑
  • python 爬虫用bs4 或者叫Beautiful Soup
  • CSS—text文本、font字体、列表list、表格table、表单input、下拉菜单select
  • 聊城做企业网站的/全国最好网络优化公司
  • 网站如何链接备案系统/推广链接怎么自己搞定
  • 天津做企业网站公司/sem竞价推广是什么
  • 网站工程师简历/谷歌app下载
  • 网站变灰 兼容/做个公司网站多少钱
  • 如何解决旅游网站建设问题/站长工具之家seo查询