填充一個報表的主要輸入是:報表模板,參數(shù)和數(shù)據(jù)源。本章將介紹這些參數(shù),并在接下來的章節(jié)中,我們將介紹數(shù)據(jù)源。
參數(shù)是在報表填充操作傳遞給報表引擎的對象引用。參數(shù)傳遞有用的數(shù)據(jù)到報表引擎,它可以不通過數(shù)據(jù)源來傳遞的數(shù)據(jù)是有用的。如作者姓名,報告等的標(biāo)題數(shù)據(jù),可以通過參數(shù)傳遞。 Jasper報表模板或JRXML模板可以包含零個或多個參數(shù)的元素。
參數(shù)聲明很簡單,如下所示:
<parameter name="exampleParameter" class="java.lang.String" />
parameter>元素的name屬性是強(qiáng)制性的。它通過名稱引用的參數(shù)在報表表達(dá)式。參數(shù)名應(yīng)該是一個單詞。它不應(yīng)該包含任何特殊字符,如句號或逗號。
class屬性也是強(qiáng)制性的,它指定了參數(shù)值的類名。它的默認(rèn)值是java.lang.String。這是可以改變的,以在運(yùn)行時可用任何類。不論報表參數(shù)的類型,引擎采用構(gòu)造于$P{}標(biāo)記是用來報表表達(dá),從而使手工投射不必要。
Parameter Name | 描述 |
---|---|
REPORT_PARAMETERS_MAP | 包含所有用戶定義和內(nèi)置參數(shù)映射 |
REPORT_CONNECTION | 這指向用于JDBC數(shù)據(jù)源的用戶提供java.sql.Connection中 |
REPORT_DATA_SOURCE | 這是JRDataSource代表任一用戶提供的實例中的內(nèi)置的數(shù)據(jù)源類型或用戶定義 |
REPORT_MAX_COUNT | 這是一個java.lang.Integer的值,從而允許用戶從數(shù)據(jù)源限制記錄。 |
REPORT_SCRIPTLET | 這指向net.sf.jasperreports.engine.JRAbstractScriptlet和包含報表的scriptlet,由用戶提供的一個實例 |
REPORT_LOCALE | 這是一個java.util.Locale的實例,包含資源包所需的語言環(huán)境 |
REPORT_RESOURCE_BUNDLE | 這指向java.util.ResourceBundle對象和包含本地化的消息 |
REPORT_TIME_ZONE | 這是一個java.util.TimeZone的實例,用于日期格式 |
REPORT_VIRTUALIZER | 這是net.sf.jasperreports.engine.JRVirtualizerobject一個實例,以及用于網(wǎng)頁的虛擬化(優(yōu)化內(nèi)存消耗) |
REPORT_CLASS_LOADER | 這是在報告充填過程中使用的加載,如圖像,字體和子報表模板資源java.lang.ClassLoader的實例 |
IS_IGNORE_PAGINATION | 如果設(shè)置為java.lang.Boolean.TRUE報告將在一個很長的網(wǎng)頁和分頁符來產(chǎn)生不會發(fā)生 |
讓我們通過ReportTitle和 Author報表(由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報表區(qū)段下一篇:JasperReport導(dǎo)出報表