鍍金池/ 教程/ Java/ JasperReport報(bào)表參數(shù)
JasperReports報(bào)表數(shù)據(jù)源
JasperReport查看和打印報(bào)告
JasperReports報(bào)表表達(dá)式
JasperReport報(bào)表設(shè)計(jì)
JasperReports報(bào)表區(qū)段
JasperReports報(bào)表字段
JasperReports報(bào)表變量
JasperReport生命周期
JasperReport填充報(bào)表
JasperReport編譯報(bào)表設(shè)計(jì)
JasperReport報(bào)表參數(shù)
JasperReports入門,JasperReports是什么?
JasperReports報(bào)表組
JasperReport導(dǎo)出報(bào)表
JasperReports教程
JasperReport環(huán)境設(shè)置

JasperReport報(bào)表參數(shù)

填充一個(gè)報(bào)表的主要輸入是:報(bào)表模板,參數(shù)和數(shù)據(jù)源。本章將介紹這些參數(shù),并在接下來的章節(jié)中,我們將介紹數(shù)據(jù)源。

參數(shù)是在報(bào)表填充操作傳遞給報(bào)表引擎的對象引用。參數(shù)傳遞有用的數(shù)據(jù)到報(bào)表引擎,它可以不通過數(shù)據(jù)源來傳遞的數(shù)據(jù)是有用的。如作者姓名,報(bào)告等的標(biāo)題數(shù)據(jù),可以通過參數(shù)傳遞。 Jasper報(bào)表模板或JRXML模板可以包含零個(gè)或多個(gè)參數(shù)的元素。

參數(shù)聲明

參數(shù)聲明很簡單,如下所示:

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

name屬性

parameter>元素的name屬性是強(qiáng)制性的。它通過名稱引用的參數(shù)在報(bào)表表達(dá)式。參數(shù)名應(yīng)該是一個(gè)單詞。它不應(yīng)該包含任何特殊字符,如句號或逗號。

class屬性

class屬性也是強(qiáng)制性的,它指定了參數(shù)值的類名。它的默認(rèn)值是java.lang.String。這是可以改變的,以在運(yùn)行時(shí)可用任何類。不論報(bào)表參數(shù)的類型,引擎采用構(gòu)造于$P{}標(biāo)記是用來報(bào)表表達(dá),從而使手工投射不必要。

內(nèi)置參數(shù)

以下是預(yù)定義的報(bào)表參數(shù),準(zhǔn)備在表達(dá)式中使用:
Parameter Name 描述
REPORT_PARAMETERS_MAP 包含所有用戶定義和內(nèi)置參數(shù)映射
REPORT_CONNECTION 這指向用于JDBC數(shù)據(jù)源的用戶提供java.sql.Connection中
REPORT_DATA_SOURCE 這是JRDataSource代表任一用戶提供的實(shí)例中的內(nèi)置的數(shù)據(jù)源類型或用戶定義
REPORT_MAX_COUNT 這是一個(gè)java.lang.Integer的值,從而允許用戶從數(shù)據(jù)源限制記錄。
REPORT_SCRIPTLET 這指向net.sf.jasperreports.engine.JRAbstractScriptlet和包含報(bào)表的scriptlet,由用戶提供的一個(gè)實(shí)例
REPORT_LOCALE 這是一個(gè)java.util.Locale的實(shí)例,包含資源包所需的語言環(huán)境
REPORT_RESOURCE_BUNDLE 這指向java.util.ResourceBundle對象和包含本地化的消息
REPORT_TIME_ZONE 這是一個(gè)java.util.TimeZone的實(shí)例,用于日期格式
REPORT_VIRTUALIZER 這是net.sf.jasperreports.engine.JRVirtualizerobject一個(gè)實(shí)例,以及用于網(wǎng)頁的虛擬化(優(yōu)化內(nèi)存消耗)
REPORT_CLASS_LOADER 這是在報(bào)告充填過程中使用的加載,如圖像,字體和子報(bào)表模板資源java.lang.ClassLoader的實(shí)例
IS_IGNORE_PAGINATION 如果設(shè)置為java.lang.Boolean.TRUE報(bào)告將在一個(gè)很長的網(wǎng)頁和分頁符來產(chǎn)生不會發(fā)生

例子

讓我們通過ReportTitle和 Author報(bào)表(由JasperReportFill.java生成)。經(jīng)修訂的文件C: oolsjasperreports-5.0.1 estsrccomyiibaiJasperReportFill.java 如下:

package com.yiibai;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class JasperReportFill {
   @SuppressWarnings("unchecked")
   public static void main(String[] args) {
      String sourceFileName =
      "C://tools/jasperreports-5.0.1/test/jasper_report_template.jasper";

      DataBeanList DataBeanList = new DataBeanList();
      ArrayList<DataBean> dataList = DataBeanList.getDataBeanList();

      JRBeanCollectionDataSource beanColDataSource =
      new JRBeanCollectionDataSource(dataList);

      Map parameters = new HashMap();
      /**
       * Passing ReportTitle and Author as parameters
       */
      parameters.put("ReportTitle", "List of Contacts");
      parameters.put("Author", "Prepared By Manisha");

      try {
         JasperFillManager.fillReportToFile(
         sourceFileName, parameters, beanColDataSource);
      } catch (JRException e) {
         e.printStackTrace();
      }
   }
}

POJO文件的內(nèi)容 C: oolsjasperreports-5.0.1 estsrccomyiibaiDataBean.java 如下所示:

package com.yiibai;

public class DataBean {
   private String name;
   private String country;

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public String getCountry() {
      return country;
   }

   public void setCountry(String country) {
      this.country = country;
   }
}

文件 C: oolsjasperreports-5.0.1 estsrccomyiibaiDataBeanList.java 的內(nèi)容如下:

package com.yiibai;

import java.util.ArrayList;

public class DataBeanList {
   public ArrayList<DataBean> getDataBeanList() 上一篇:JasperReports報(bào)表區(qū)段下一篇:JasperReport導(dǎo)出報(bào)表