网站建设gzdlzgg,开发公司组织架构设计,办公用品网站建设可行性分析,wordpress网站多语言目录
一、先安装jasper的编写模板工具
二、制作报表模板
1.打开Jaspersoft Studio软件#xff0c;新建jasper report模板文件#xff1a;File→new→Jasper Report
2.开始画表
方法1#xff1a;把传参数据作为List数据取值
方法2#xff1a;把传参数据作为数据源来取…目录
一、先安装jasper的编写模板工具
二、制作报表模板
1.打开Jaspersoft Studio软件新建jasper report模板文件File→new→Jasper Report
2.开始画表
方法1把传参数据作为List数据取值
方法2把传参数据作为数据源来取值
三、java传参
1、读取报表模板 2、装载模板数据
3、打印pdf 四、打印效果
五、jrxml、java文件 我这里不涉及数据库数据打印主要为Java传参ListMapString,Object数据打印在此提供两种画报表的方法及其对应的Java传参方法可以先移步打印效果再看自己需要选择哦~~~~~~~~ 一、先安装jasper的编写模板工具
主要有两个工具Jaspersoft Studio、iReport个人推荐Jaspersoft Studio
1.安装JaspersoftStudio
链接https://pan.baidu.com/s/1lCUsRZvqS5smmrdyzImUdA 提取码7jd5
2.安装jasper的编写工具iReport Design
链接https://pan.baidu.com/s/1jxTQPQCNmSBARhwJVVonZQ提取码s9t8
二、制作报表模板
1.打开Jaspersoft Studio软件新建jasper report模板文件File→new→Jasper Report 2.开始画表
我这里不涉及数据库数据打印主要为Java传参ListMapString,Object数据打印在此提供两种方法
方法1把传参数据作为List数据取值
Parameters-Create Parameters 重命名为dataList 类型为java.util.List 我们想要获取的dataList数据为List类型需循环获取数据因此拖拽Text Field文本框到在Detail区域关于TitlePageHeaderColum Header等Band这里不多说啦 双击Text FiledParameters→dataList→get(int)此时值为$P{dataList}.get(int)双击intVariables→COLUMN_COUNT因为报表的COLUMN_COUNT是从1开始所以需进行-1操作,此时值为:$P{dataList}.get( {$V{COLUMN_COUNT}-1} )现在获取的是List的一条数据但我们需要根据key获取HashMap数据因此还需强制转换最终值为((HashMap) $P{dataList}.get({$V{COLUMN_COUNT}-1)).get(C1)重复获取数据操作最后点击最终界面如下 方法2把传参数据作为数据源来取值
这里为了区分新建模板TestMapList2.jrxml
Parameters-Create Parameters 重命名为dataList 类型为net.sf.jasperreports.engine.data.JRMapCollectionDataSource拖拽table至detail区域中然后一路next 双击tableoutline→Table→Create Column At The Begining我这里是五列所以重复操作五次双击tableDataFields→Create Field这里的名称对应java传参数据Map中的key值此时我们可以直接拖拽file至table的Detail行中不嫌麻烦的也可以拖拽Text Filed文本框至Detail再改值保存点击生成jasper文件最终界面效果如下 三、java传参
1、读取报表模板
方法1读取jrxml文件
String jrxml C:\Users\qyl\JaspersoftWorkspace\MyReports\TestMapList.jrxml;
JasperReport report JasperCompileManager.compileReport(jrxml);
方法2读取jasper文件
FileInputStream is new FileInputStream(C:\\Users\\qyl\\JaspersoftWorkspace\\MyReports\\TestMapList.jasper);
JasperReport jasperReport (JasperReport) JRLoader.loadObject(is); 2、装载模板数据
针对制作报表方法1 // 设置模板数据MapString,Object mapnew HashMapString,Object(); ListMapString, Object dataList new ArrayListMapString, Object();for (int i 0; i 4; i) {MapString, Object rowMap1 new HashMapString, Object();rowMap1.put(C1, 第: i 行1列);rowMap1.put(C2, 第: i 行1列);rowMap1.put(C3, 第: i 行1列);rowMap1.put(C4, 第: i 行1列);rowMap1.put(C5, 第: i 行1列);dataList.add(rowMap1);}//设置paramtersmap.put(dataList,dataList);JasperPrint jasperPrint null;try {jasperPrint JasperFillManager.fillReport(jasperReport, map, new JRBeanCollectionDataSource(dataList)); } catch (JRException e) {e.printStackTrace();}针对制作报表方法2
// 读取jasper模板文件JasperReport jasperReport null;try {String jrxml C:\\Users\\qyl\\JaspersoftWorkspace\\MyReports\\TestMapList2.jrxml;jasperReport JasperCompileManager.compileReport(jrxml);// 此行代码可解决部分打印空页问题jasperReport.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL);} catch (JRException e) {e.printStackTrace();}// 设置模板数据MapString,Object mapnew HashMapString,Object();ListMapString, ? dataList new ArrayListMapString, ?();for (int i 0; i 4; i) {MapString, Object rowMap1 new HashMapString, Object();rowMap1.put(C1, 第: i 行1列); rowMap1.put(C2, 第: i 行1列);rowMap1.put(C3, 第: i 行1列);rowMap1.put(C4, 第: i 行1列);rowMap1.put(C5, 第: i 行1列);dataList.add(rowMap1);}//设置paramtersmap.put(tableData, new JRMapCollectionDataSource(dataList));JasperPrint jasperPrint null;try {jasperPrint JasperFillManager.fillReport(jasperReport, map, new JREmptyDataSource());} catch (JRException e) {e.printStackTrace();}3、打印pdf
方法1 JRPdfExporter exporter new JRPdfExporter();try {exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, new FileOutputStream(D:\\test1.pdf));exporter.exportReport();} catch (FileNotFoundException e) {e.printStackTrace();} catch (JRException e) {e.printStackTrace();}
方法2
JasperExportManager.exportReportToPdfStream(jasperPrint, new FileOutputStream(D:\\test1.pdf)); 四、打印效果
第一种报表打印效果 第二种报表打印效果 五、jrxml、java文件
TestMapList.jrxml第一种报表文件
?xml version1.0 encodingUTF-8?
!-- Created with Jaspersoft Studio version 6.5.1.final using JasperReports Library version 6.5.1 --
jasperReport xmlnshttp://jasperreports.sourceforge.net/jasperreports xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd nameTestMapList pageWidth595 pageHeight842 columnWidth555 leftMargin20 rightMargin20 topMargin20 bottomMargin20 uuidf5219bfe-d727-4d61-bc48-ac691f75bf56property namecom.jaspersoft.studio.data.defaultdataadapter valueOne Empty Record/style nameFontsStyle pattern fontNamesimsun fontSize16/parameter namedataList classjava.util.List/queryString![CDATA[]]/queryStringbackgroundband splitTypeStretch//backgroundtitleband height81 splitTypeStretchstaticTextreportElement key styleFontsStyle x210 y30 width100 height30 uuidd1b38129-cb40-4c32-9bfd-e642493cf447/text![CDATA[Method1]]/text/staticText/band/titlepageHeaderband height35 splitTypeStretch//pageHeadercolumnHeaderband height61 splitTypeStretch//columnHeaderdetailband height125 splitTypeStretchtextFieldreportElement styleFontsStyle x23 y10 width100 height30 uuid571918b7-5e2d-43a8-96af-d6d4d9ecc236/textFieldExpression![CDATA[((HashMap) $P{dataList}.get($V{COLUMN_COUNT}-1)).get(C1)]]/textFieldExpression/textFieldtextFieldreportElement styleFontsStyle x123 y10 width100 height30 uuid55f088f9-1e9a-40eb-b966-ee971fc2f860/textFieldExpression![CDATA[((HashMap) $P{dataList}.get( $V{COLUMN_COUNT}-1)).get(C2)]]/textFieldExpression/textFieldtextFieldreportElement styleFontsStyle x223 y10 width100 height30 uuid5e20a771-7317-45f1-80b7-23e67a4ccaec/textFieldExpression![CDATA[((HashMap) $P{dataList}.get( $V{COLUMN_COUNT}-1)).get(C3)]]/textFieldExpression/textFieldtextFieldreportElement styleFontsStyle x323 y10 width100 height30 uuid46c1bed0-c983-4c70-812a-d78864856e8a/textFieldExpression![CDATA[((HashMap) $P{dataList}.get($V{COLUMN_COUNT}-1)).get(C4)]]/textFieldExpression/textFieldtextFieldreportElement styleFontsStyle x423 y10 width77 height30 uuidf8f216db-0668-44c8-a7b2-04baa49587d6/textFieldExpression![CDATA[((HashMap) $P{dataList}.get( $V{COLUMN_COUNT}-1)).get(C5)]]/textFieldExpression/textField/band/detailcolumnFooterband height45 splitTypeStretch//columnFooterpageFooterband height54 splitTypeStretch//pageFootersummaryband height42 splitTypeStretch//summary
/jasperReportTestJ.java第一种报表传参方法
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class TestJ {public static void main(String args[]) throws FileNotFoundException {// 读取jasper模板文件JasperReport jasperReport null;try {String jrxml C:\\Users\\qyl\\JaspersoftWorkspace\\MyReports\\TestMapList.jrxml;jasperReport JasperCompileManager.compileReport(jrxml);// 此行代码可解决部分打印空页问题jasperReport.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL);} catch (JRException e) {e.printStackTrace();}MapString, Object map new HashMapString, Object();// 设置模板数据ListMapString, Object dataList new ArrayListMapString, Object();for (int i 0; i 4; i) {MapString, Object rowMap1 new HashMapString, Object();rowMap1.put(C1, 第: i 行1列);rowMap1.put(C2, 第: i 行1列);rowMap1.put(C3, 第: i 行1列);rowMap1.put(C4, 第: i 行1列);rowMap1.put(C5, 第: i 行1列);dataList.add(rowMap1);}//设置paramtersmap.put(dataList, dataList);JasperPrint jasperPrint null;try {jasperPrint JasperFillManager.fillReport(jasperReport, map, new JRBeanCollectionDataSource(dataList));// 生成PDF客户端JRPdfExporter exporter new JRPdfExporter();try {exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, new FileOutputStream(D:\\test1.pdf));exporter.exportReport();} catch (FileNotFoundException e) {e.printStackTrace();} catch (JRException e) {e.printStackTrace();}} catch (JRException e) {e.printStackTrace();}}
}TestMapList2.jrxml第二种报表文件
?xml version1.0 encodingUTF-8?
!-- Created with Jaspersoft Studio version 6.5.1.final using JasperReports Library version 6.5.1 --
jasperReport xmlnshttp://jasperreports.sourceforge.net/jasperreports xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd nameTestMapList2 pageWidth595 pageHeight842 columnWidth555 leftMargin20 rightMargin20 topMargin20 bottomMargin20 uuid829526aa-68b5-46ce-8066-5de7152978fdproperty namecom.jaspersoft.studio.data.defaultdataadapter valueOne Empty Record/style nameTable_TH modeOpaque backcolor#F0F8FFboxpen lineWidth0.5 lineColor#000000/topPen lineWidth0.5 lineColor#000000/leftPen lineWidth0.5 lineColor#000000/bottomPen lineWidth0.5 lineColor#000000/rightPen lineWidth0.5 lineColor#000000//box/stylestyle nameTable_CH modeOpaque backcolor#BFE1FFboxpen lineWidth0.5 lineColor#000000/topPen lineWidth0.5 lineColor#000000/leftPen lineWidth0.5 lineColor#000000/bottomPen lineWidth0.5 lineColor#000000/rightPen lineWidth0.5 lineColor#000000//box/stylestyle nameTable_TD modeOpaque backcolor#FFFFFFboxpen lineWidth0.5 lineColor#000000/topPen lineWidth0.5 lineColor#000000/leftPen lineWidth0.5 lineColor#000000/bottomPen lineWidth0.5 lineColor#000000/rightPen lineWidth0.5 lineColor#000000//box/stylesubDataset nametableData uuid4226918e-1ff9-4408-8de4-2e76c71c7feequeryString![CDATA[]]/queryStringfield nameC1 classjava.lang.String/field nameC2 classjava.lang.String/field nameC3 classjava.lang.String/field nameC4 classjava.lang.String/field nameC5 classjava.lang.String//subDatasetparameter nametableData classnet.sf.jasperreports.engine.data.JRMapCollectionDataSource/queryString![CDATA[]]/queryStringbackgroundband splitTypeStretch//backgroundtitleband height79 splitTypeStretch//titlepageHeaderband height35 splitTypeStretch//pageHeadercolumnHeaderband height61 splitTypeStretch//columnHeaderdetailband height250 splitTypeStretchcomponentElementreportElement x0 y20 width560 height190 uuidb79910ab-8363-47db-ac2f-9bb8a932a533property namecom.jaspersoft.studio.layout valuecom.jaspersoft.studio.editor.layout.VerticalRowLayout/property namecom.jaspersoft.studio.table.style.table_header valueTable_TH/property namecom.jaspersoft.studio.table.style.column_header valueTable_CH/property namecom.jaspersoft.studio.table.style.detail valueTable_TD/property namecom.jaspersoft.studio.components.autoresize.proportional valuetrue/property namenet.sf.jasperreports.export.headertoolbar.table.name value//reportElementjr:table xmlns:jrhttp://jasperreports.sourceforge.net/jasperreports/components xsi:schemaLocationhttp://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsddatasetRun subDatasettableData uuid382413b4-1492-4bb3-8bd9-b10289f44de8dataSourceExpression![CDATA[$P{tableData}]]/dataSourceExpression/datasetRunjr:column width114 uuid98a7c929-3c58-4269-8684-51ded050445cproperty namecom.jaspersoft.studio.components.table.model.column.name valueColumn1/jr:tableHeader styleTable_TH height30 rowSpan1/jr:tableFooter styleTable_TH height30 rowSpan1/jr:columnHeader styleTable_CH height30 rowSpan1/jr:columnFooter styleTable_CH height30 rowSpan1/jr:detailCell styleTable_TH height30textFieldreportElement x0 y0 width114 height30 uuid8d8a878d-aa9b-4b73-a2e9-15ee880b5950/textElementfont fontNamesimsun size10//textElementtextFieldExpression![CDATA[$F{C1}]]/textFieldExpression/textField/jr:detailCell/jr:columnjr:column width113 uuidea717f32-35e7-4638-afa2-2d8b2883678bproperty namecom.jaspersoft.studio.components.table.model.column.name valueColumn2/jr:tableHeader styleTable_TH height30 rowSpan1/jr:tableFooter styleTable_TH height30 rowSpan1/jr:columnHeader styleTable_CH height30 rowSpan1/jr:columnFooter styleTable_CH height30 rowSpan1/jr:detailCell styleTable_TH height30textFieldreportElement x0 y0 width113 height30 uuid43d9e140-235c-4abe-b44b-c438ca6a3e54/textElementfont fontNamesimsun size10//textElementtextFieldExpression![CDATA[$F{C2}]]/textFieldExpression/textField/jr:detailCell/jr:columnjr:column width112 uuid965df076-9fa3-4941-8018-2a4dbd774f75property namecom.jaspersoft.studio.components.table.model.column.name valueColumn3/jr:tableHeader styleTable_TH height30 rowSpan1/jr:tableFooter styleTable_TH height30 rowSpan1/jr:columnHeader styleTable_CH height30 rowSpan1/jr:columnFooter styleTable_CH height30 rowSpan1/jr:detailCell styleTable_TH height30textFieldreportElement x0 y0 width112 height30 uuideafd6247-d55c-4eff-b075-56d5ece9166c/textElementfont fontNamesimsun size10//textElementtextFieldExpression![CDATA[$F{C3}]]/textFieldExpression/textField/jr:detailCell/jr:columnjr:column width112 uuid0815bc67-2a15-42a2-8c08-3f01a4f6732fproperty namecom.jaspersoft.studio.components.table.model.column.name valueColumn4/jr:tableHeader styleTable_TH height30 rowSpan1/jr:tableFooter styleTable_TH height30 rowSpan1/jr:columnHeader styleTable_CH height30 rowSpan1/jr:columnFooter styleTable_CH height30 rowSpan1/jr:detailCell styleTable_TH height30textFieldreportElement x0 y0 width112 height30 uuid5ffc3f54-fca1-4281-ae16-628d720c2264/textElementfont fontNamesimsun size10//textElementtextFieldExpression![CDATA[$F{C4}]]/textFieldExpression/textField/jr:detailCell/jr:columnjr:column width109 uuid2dfe81ed-17d2-4148-adfc-82906bbfdaf0property namecom.jaspersoft.studio.components.table.model.column.name valueColumn5/jr:tableHeader styleTable_TH height30 rowSpan1/jr:tableFooter styleTable_TH height30 rowSpan1/jr:columnHeader styleTable_CH height30 rowSpan1/jr:columnFooter styleTable_CH height30 rowSpan1/jr:detailCell styleTable_TH height30textFieldreportElement x0 y0 width109 height30 uuida9b88f88-40a0-417f-92d0-c3d6ccb5a0e6/textElementfont fontNamesimsun size10//textElementtextFieldExpression![CDATA[$F{C5}]]/textFieldExpression/textField/jr:detailCell/jr:column/jr:table/componentElement/band/detailcolumnFooterband height45 splitTypeStretch//columnFooterpageFooterband height54 splitTypeStretch//pageFootersummaryband height42 splitTypeStretch//summary
/jasperReportTestJ2.java第二种报表Java传参
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.data.JRMapCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum;
import net.sf.jasperreports.engine.util.JRLoader;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.*;public class TestJ2 {public static void main(String args[]) throws FileNotFoundException {// 读取jasper模板文件JasperReport jasperReport null;try {FileInputStream is new FileInputStream(C:\\Users\\qyl\\JaspersoftWorkspace\\MyReports\\TestMapList2.jasper);jasperReport (JasperReport) JRLoader.loadObject(is);// 此行代码可解决部分打印空页问题jasperReport.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL);} catch (JRException e) {e.printStackTrace();}// 设置模板数据MapString, Object map new HashMapString, Object();ListMapString, ? dataList new ArrayListMapString, ?();for (int i 0; i 4; i) {MapString, Object rowMap1 new HashMapString, Object();rowMap1.put(C1, 第: i 行1列);rowMap1.put(C2, 第: i 行1列);rowMap1.put(C3, 第: i 行1列);rowMap1.put(C4, 第: i 行1列);rowMap1.put(C5, 第: i 行1列);dataList.add(rowMap1);}//设置paramtersmap.put(tableData, new JRMapCollectionDataSource(dataList));JasperPrint jasperPrint null;try {jasperPrint JasperFillManager.fillReport(jasperReport, map, new JREmptyDataSource());// 生成PDF客户端JasperExportManager.exportReportToPdfStream(jasperPrint, new FileOutputStream(D:\\test2.pdf));} catch (JRException e) {e.printStackTrace();}}}如果出现pdf打印,不显示中文问题,可以看看下一篇文章:
Jasper报表导出pdf中文不显示——Font simsun is not available to the JVM. See the Javadoc for more det已解决