jasperreports初级教程:[3]报表参数

2025-11-25 21:23:10

jasperreports初级教程:[3]报表参数

工具/原料

jasperreports报表

方法/步骤

参数声明

参数声明很简单,如下所示:

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

name属性

parameter>元素的name属性是强制性的。它通过名称引用的参数在报表表达式。参数名应该是一个单词。它不应该包含任何特殊字符,如句号或逗号。

class属性

class属性也是强制性的,它指定了参数值的类名。它的默认值是java.lang.String。这是可以改变的,以在运行时可用任何类。不论报表参数的类型,引擎采用构造于$P{}标记是用来报表表达,从而使手工投射不必要。

内置参数

以下是预定义的报表参数,准备在表达式中使用:

Parameter Name

描述

REPORT_PARAMETERS_MAP

包含所有用户定义和内置参数映射

REPORT_CONNECTION

这指向用于JDBC数据源的用户提供java.sql.Connection中

REPORT_DATA_SOURCE

这是JRDataSource代表任一用户提供的实例中的内置的数据源类型或用户定义

REPORT_MAX_COUNT

这是一个java.lang.Integer的值,从而允许用户从数据源限制记录。

REPORT_SCRIPTLET

这指向net.sf.jasperreports.engine.JRAbstractScriptlet和包含报表的scriptlet,由用户提供的一个实例

REPORT_LOCALE

这是一个java.util.Locale的实例,包含资源包所需的语言环境

REPORT_RESOURCE_BUNDLE

这指向java.util.ResourceBundle对象和包含本地化的消息

REPORT_TIME_ZONE

这是一个java.util.TimeZone的实例,用于日期格式

REPORT_VIRTUALIZER

这是net.sf.jasperreports.engine.JRVirtualizerobject一个实例,以及用于网页的虚拟化(优化内存消耗)

REPORT_CLASS_LOADER

这是在报告充填过程中使用的加载,如图像,字体和子报表模板资源java.lang.ClassLoader的实例

IS_IGNORE_PAGINATION

如果设置为java.lang.Boolean.TRUE报告将在一个很长的网页和分页符来产生不会发生

报表生成

编译和执行使用常规Ant构建过程上面的文件。 build.xml文件中的内容(根据目录保存C:\tools\jasperreports-5.0.1\test)情况如下。

导入文件 - baseBuild.xml可以从环境设置章节中了解,并应放置在同一目录中的build.xml。

<?xml version="1.0" encoding="UTF-8"?>

<project name="JasperReportTest" default="viewFillReport" basedir=".">

   <import file="baseBuild.xml" />

   <target name="viewFillReport"

      depends="compile,compilereportdesing,run"

      description="Launches the report viewer to preview

      the report stored in the .JRprint file.">

      <java classname="net.sf.jasperreports.view.JasperViewer"

      fork="true">

         <arg value="-F${file.name}.JRprint" />

         <classpath refid="classpath" />

      </java>

   </target>

   <target name="compilereportdesing"

      description="Compiles the JXML file and

      produces the .jasper file.">

      <taskdef name="jrc"

      classname="net.sf.jasperreports.ant.JRAntCompileTask">

         <classpath refid="classpath" />

      </taskdef>

    

  <jrc destdir=".">

         <src>

         <fileset dir=".">

            <include name="*.jrxml" />

         </fileset>

         </src>

         <classpath refid="classpath" />

      </jrc>

   </target>

</project>  

接下来,让我们打开命令行窗口并转到build.xml文件放置的目录。最后执行的命令 ant -Dmain-class=yiibai.JasperReportFill (viewFullReport是默认的目标),如下所示: 

C:\tools\jasperreports-5.0.1\test>ant -Dmain-class=com.yiibai.JasperReportFill

Buildfile: C:\tools\jasperreports-5.0.1\test\build.xml

clean-sample:

[delete] Deleting directory C:\tools\jasperreports-5.0.1\test\classes

   [delete] Deleting: C:\tools\jasperreports-5.0.1\test\jasper_report_template.jasper

   [delete] Deleting: C:\tools\jasperreports-5.0.1\test\jasper_report_template.jrprint

compile:

    [mkdir] Created dir: C:\tools\jasperreports-5.0.1\test\classes

    [javac] C:\tools\jasperreports-5.0.1\test\baseBuild.xml:28: warning:

    'includeantruntime' was not set, defaulting to build.sysclasspath=last;

    set to false for repeatable builds

    [javac] Compiling 7 source files to C:\tools\jasperreports-5.0.1\test\classes

同为比较常用的报表工具,FineReport在报表制作和实现各种效果过程中所需代码量远小于jasperreport,而且FineReport中大部分的报表代码细节被隐藏,呈现出的是是可视化的设计过程,具体到报表参数部分,如下:

参数控件绑定数据

1. 描述

FineReport为了让用户快速的实现参数查询数据功能,提供了专门的参数界面,用来放置与查询相关的控件,如下图:

jasperreports初级教程:[3]报表参数

2. 示例

根据下图我们制作一个简单的查询界面,从而了解参数查询界面的具体制作方法。

jasperreports初级教程:[3]报表参数

2.1 打开报表

打开报表:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\Parameter\Parameter.cpt,这张模板是模板参数章节的示例模板,该模板中添加了参数界面,以此模板为例来讲述参数界面的一些使用方法。

jasperreports初级教程:[3]报表参数

2.2 参数布局

按照下图所示,将控件拖至相应的位置,如下:

另:参数界面采用绝对布局方式,因此可以将控件拖至面板中的任何位置。

2.3 参数控件编辑风格

默认的参数控件都是文本框,有时如希望使用日期控件来选择日期,或者下拉框直接选择数据,这就需要为参数控件定义编辑风格了。

如将地区控件设为下拉框。选中地区控件,选择控件中的扳手,在下面的对话框中选择控件类型为下拉框:

jasperreports初级教程:[3]报表参数

注:如果已经选择控件类型之后,又需要重新修改,那么需要删除原来的控件,再在控件列表中拖拽您需要的控件类型至参数面板中,然后修改控件名与参数名称一致即可。

然后在属性表的基本属性>数据字典中,按照下图设置下拉框的数据:

jasperreports初级教程:[3]报表参数

2.4 控件名称

参数与控件是通过控件名称进行绑定的,即控件名与参数名保持一致,如果参数控件是通过点击右下角的以下参数未生成按钮生成的,那么控件名会自动与参数就行绑定,如果是自己拖曳的,就需要在控件名属性处修改控件名,使之与参数名保持一致。

2.5 保存报表并预览

保存并分页预览便可以看到效果了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢