必威体育Betway必威体育官网
当前位置:首页 > 软件教程

Jasperreport基本介绍(Jasperreport与Ireport介绍)

时间:2018-11-03 10:40:00来源:软件教程作者:seo实验室小编阅读:56次「手机版」
 

ireport

Jasperreport基本介绍

Jasperreport与ireport介绍

Jasperreport是报表打印工具,支持pdf、csv多种格式的报表打印。

JasperReport是一个开源的工具包,将JasperReport包加入到项目的classpath中即可开始使用JasperReport包了,从java程序中通过调用包中的类对jrxml文件进行操作,可以完成报表的编译、显示、输出等工作

Jasperreport的报表生成过程,如下图。

如上图所示。报表模板有两种制作方式:

1)利用ireport图形编辑工具,iReport是报表编辑图形工具,编辑完成后输出jrxml文件(xml格式),生成jasper文件(以.jasper结尾);

2)直接利用java代码编译生成jasper文件(以.jasper结尾)。

最终要使用的是编译后的*.jasper文件。

Jasperreport支持多种数据源,包括xml、数据库、JavaBean等多种数据源。

Jasperreport基本类

l net.sf.jasperreports.engine.JasperCompileManager类。

使用这个类的几个静态方法即可完成对报表的编译工作(具体参见api文档)

编译完成后可以JasperCompileManager有两种处理方式:

1>返回一个JasperReport对象

2>在.jrxml文件所在的目录生成一个.jasper文件

这两种方式是由程序员自己选择的。不过我比较倾向使用.jasper文件,毕竟报表的结构不是每天都在改动,所以每次重新编译报表并不是很划算。

l net.sf.jasperreports.engine.JasperFillManager类

这个类的作用是用数据填充报表。它可以使用JasperReport对象也可以使用。jasper文件做为报表模板。

它同样有2中处理方式:

1>返回一个Jsaperprint对象。

2>在.jasper文件所在目录生成一个.jrprint文件

这个类使用net.sf.jasperreports.engine.JRdatasource接口的实现做为数据源。任何实现了JRDataSource的类均可做为数据源使用

在net.sf.jasperreports.engine.data包中定义了一些数据源,可根据自己的需要选择。这里我使用的是JRTableModelDataSource做为

l 3.net.sf.jasperreports.engine.JasperPrintManager和

net.sf.jasperreports.engine.JasperExportManager这两个类的作用是打印、导出报表他们使用JasperPrint和.jrprint文件做为输入。

Jasperreport实例演示

少说废话,下面我们就进行一些基本的演示。在下才疏学浅,在调查中只做了三种尝试:1)利用ireport进行模板设计,数据源采用xml文件;

2)利用ireport设计模板,导入jfreechat对象;

3)使用java代码设计模板,数据源为对象数组

下面我们逐一进行讲解。OK,let’sgo!!!!

Ireport设计模板,xml数据源

1)安装ireport。

直接点击windows版本ireport安装文件,安装文件中已经包含了jasperreport组件,这里不做表述,有问题问百度

2)打开ireport

Ireport3.7.4用户界面如图所示。

客官您瞧见,用户界面上的“Quickstart”没?按照图中表示的1、2、3去做,就基本能搞清楚ireport是什么道道!

3)添加数据源

点击标号①,界面如下:

哇塞,这么多数据源,看来真的是很好很强大耶。我们选择“xmlfiledatasource”,点击next,

按照上图填入数据源名称、以及数据源xml文件,注意一定要选择“UsethereportXpathexpressionwhenfillingthereport”.点击“save”即可,在下图标记处会出现相应的生成结果。

现在让我们先查看一下,刚刚添加xml数据源的具体结构:

数据源准备好了,可以开始模板创建了。

4)创建模板

在上图中点击“②”,出现下图。

点击“Launchreportwizard”,如下图:

输入报表名以及保存路径,点击“下一步”

在“Connections/Datasources”中选择你需要的数据源。接下来就直接点击“下一步”,直到完成。

点击完成后,进入模板元素设计页面。

图中,左边标记为页面监视器(reportinspector),右边为组件工具栏。若客官您在使用的过程中,不小心关闭了这些窗口,您可以在菜单栏“窗口”中找到,点击之后,该窗口就会出现了。

5)添加元素

在组件工具栏中选择组件,直接拖拽到模板中。

点击图中红色标记,进入如下图:

将图中标记的“Customers”拖拽到下方的标记处,此处的作用就是要将数据源中的数据字段添加要ireport中,以便下一步为刚刚建立的“field”元素指定,查询语句。如下图。

点击OK即可。

再右击Field元素,点击“EditExpression”,如图:

将Field括号内的改成您需要的字段如“CompanyName”。点击“APPly”

做到这一步,您可能觉得“应该该做了都做完了,可以进行预览了!”,其实我也这么想的,也这么做的,可是,预览报错,经过研究,我还是少做了一步,而这一步至关重要,就是我们没有选择xml文件中的数据list节点。

您必须要按照如上图所做,输入Query语句。

好了,这下我们就可以预览了。

6)预览报表

点击“preview”按钮就成,让我们看看效果吧:

呵呵,丑是丑了点,但是这是我们头一回用ireport,还是很有成就感的。

ireport设计模板,导入jfreechat对象

JasperReport在用数据填充报表时,根据图形报表的类型,生成对应的JFreeChart的dataset对象,再调用org.jfree.chart.ChartFactory产生出对应的org.jfree.chart.JFreeChart对象。获取到该对象后,JasperReport在exporter里建立一个java.awt.image.BufferedImage对象,

BufferedImage返回一个java.awt.Graphics2D对象,再将它传入给之前JFreeChart对象,最后调用JFreeChart对象的draw方法将图形输出到BufferedImage对象,供给Exporter使用。

在介绍导入jfreechat对象之前,我们现在讨论一个东西,这个东西很有用,叫scriptlet---脚本语言,听过吧,我们把生成jfreechat对象的java代码放在报表模板的脚本里,在编译模板时,连同脚本一起编译进去。

jasperReport也是支持scriptlet的哦,先分析一下JasperReport的API吧!在填充报表时scriplet是一个非常有力的工具,

JRAbstractScriptlet.java位于net.sf.jasperreports.engine包下是一个抽象类

beforeReportInit()

afterReportInit()

beforePageInit()

afterPageInit()

beforeColumnInit()

afterColumnInit()

beforeGroupInit(Stringgroujpame)

afterGroupInit(Stringgroujpame)

看看这些名字就知道你能完成那些功能,这几个方法是要求我们实现的,jasperReport给我们提供了一个实现类JRDefaultScriptlet.java,默认的空实现了上面几个方法,它只是很便利的为我们提供了所需的八个方法的空实现。我们写自己的scriptlet时需要继承JRDefaultScriptlet.java这个类实现自己的相应的功能即可。

好了,我们现在就来为模板添加scriptlet

1) 在模板中,选中整个模板,如图:

双击右边的属性窗口,将其中的内容设置为如图所示的内容:

将“scriptletclass”设为您即将要制作的java类,这里我的java类名叫scriplet.ScriptletDemo。

其内部代码如下:

packagescriplet;

importnet.sf.jasperreports.engine.JRDefaultScriptlet;

importnet.sf.jasperreports.engine.JRScriptletException;

importnet.sf.jasperreports.renderers.JFreeChartRenderer;

importorg.jfree.chart.ChartFactory;

importorg.jfree.chart.JFreeChart;

importorg.jfree.chart.plot.PiePlot;

importorg.jfree.chart.plot.PiePlot3D;

importorg.jfree.data.general.DefaultPieDataset;

publicclassScriptletDemoextendsJRDefaultScriptlet{

publicvoidafterColumnInit()throwsJRScriptletException{

System.out.println("**************************************afterColumnInit()**************************************");

}

@Override

publicvoidafterDetailEval()throwsJRScriptletException{

System.out.println("**************************************afterDetailEval()**************************************");

}

@Override

publicvoidafterGroupInit(Stringgroujpame)throwsJRScriptletException{

System.out.println("**************************************afterDetailEval()**************************************");

}

@Override

publicvoidafterPageInit()throwsJRScriptletException{

System.out.println("**************************************afterPageInit()**************************************");

}

@Override

publicvoidafterReportInit()throwsJRScriptletException{

System.out.println("**************************************afterReportInit()begin**************************************");

//createpiechartdataset

DefaultPieDatasetdateset=newDefaultPieDataset();

//setdatasetvalue

dateset.setValue("Chinese",108);

dateset.setValue("Math",110);

dateset.setValue("English",74);

dateset.setValue("ScienceDepartment",226);

/**//*

*createjfreeChartobject

*thefirstparameterispiecharttitle

*thesecendparameterisdatasetofpiechart

*thethreeparameterisbooleanvalue,createchartnote

*thefourparameterisbooleanvalue,it'satooltipofmovemouseon

*configurecharttogenerateURLs,It'sgetaPiePlot3Dobject

*

*/

JFreeChartfreeChart=ChartFactory.createPieChart3D("ReportPieChart",dateset,true,false,false);

PiePlotpieplot=(PiePlot)freeChart.getPlot();

pieplot.setNoDatamessage("Nodatatodisplay");

//setvariable"jfreeChart"value

this.setVariableValue("jfreechart",newJFreeChartRenderer(freeChart));

System.out.println("**************************************afterReportInit()end**************************************");

}

@Override

publicvoidbeforeColumnInit()throwsJRScriptletException{

System.out.println("**************************************beforeColumnInit()**************************************");

}

@Override

publicvoidbeforeDetailEval()throwsJRScriptletException{

System.out.println("**************************************beforeDetailEval()**************************************");

}

@Override

publicvoidbeforeGroupInit(Stringgroujpame)throwsJRScriptletException{

System.out.println("**************************************beforeGroupInit()**************************************");

}

@Override

publicvoidbeforePageInit()throwsJRScriptletException{

System.out.println("**************************************beforePageInit()**************************************");

}

@Override

publicvoidbeforeReportInit()throwsJRScriptletException{

System.out.println("**************************************beforeReportInit()**************************************");

}

publicStringshowInfor()throwsJRScriptletException{

return"theisscriptletscriptletscriptletthe,sscriptletreporttheisascriptletreportthisisascriptletreportthisisascriptletreport";

}

}

2)新建变量variable

如图在选中“Variable”,右击,点击“添加variable”

将新建的variable属性设置如下图所示:

其中variableclass设为“net.sf.jasperreports.engine.JRRenderable”,同志您可能要迷惑了,该选项的下拉菜单中没有该选项啊,是的,的确没有,但是你可以粘贴进去。

3)添加图像,直接将组件中的“image”对象拖拽进来,拖拽的时候,会有图片选择框,这个没有关系,你可以选择一个您喜欢的图片,也可以直接取消,只不过是一个标志,在模板中出现如下画面:

是不是很丑呢,嘿嘿,我也觉得丑。

好了,下面来设置图片的属性,这个才是关键的。属性如下图:

重要的是imageexpression以及expressionclass,分别设为“$V{jfreechart}”、“net.sf.jasperreports.engine.JRRenderable”

至此模板设置成功。

4) 代码测试

将上面设计好的模板保存为“E:/ireport/jfreechat.jrxml”

写一段java代码测试一下:

packagetest;

importjava.io.File;

importjava.io.fileinputstream;

importjava.io.InputStream;

importjava.util.HashMap;

importnet.sf.jasperreports.engine.JRemptyDataSource;

importnet.sf.jasperreports.engine.JasperCompileManager;

importnet.sf.jasperreports.engine.JasperFillManager;

importnet.sf.jasperreports.engine.JasperPrint;

importnet.sf.jasperreports.engine.JasperReport;

importnet.sf.jasperreports.engine.base.JRBaseVariable;

importnet.sf.jasperreports.view.JasperViewer;

publicclassJChartReportMain{

/**

*Methodname:main<BR>

*Description:main<BR>

*Remark:<BR>

*@paramargsvoid<BR>

*/

publicstaticvoidmain(String[]args){

Stringpath="

Filefile=newFile(path);

InputStreamin;

try{

HashMap<String,String>parameters=newHashMap<String,String>();

parameters.put("ReportTitle","LAOSHULIN");

in=newFileInputStream(file);

JasperReportjasperReport=JasperCompileManager.compileReport(in);

for(inti=0;i<jasperReport.getVariables().length;i++){

JRBaseVariablejb=(JRBaseVariable)jasperReport.getVariables()[i];

System.out.println(jb.getValueClassName()+jb.getName());

}

JasperPrintjasperPrint=JasperFillManager.fillReport(jasperReport,

parameters,newJREmptyDataSource());

JasperViewerviewer=newJasperViewer(jasperPrint);

viewer.setVisible(true);

}catch(Exceptione){

e.printstacktrace();

}

}

}

运行结果如图:

你看多棒啊,是不是觉得自己很牛叉啊!

java代码设计模板,数据源为对象数组。

用java实现模板设计,我们就直接粘贴代码,先要将jasperreport相关的jar包导入进来:

我的代码结构如图所示:

webappDataSource.java

/*

*JasperReports-FreeJavaReportingLibrary.

*Copyright(C)2001-2009JaspersoftCorporation.Allrightsreserved.

*http://www.jaspersoft.com

*

*UnlessyouhavepurchasedacommerciallicenseagreementfromJaspersoft,

*thefollowinglicensetermsapply:

*

*ThisprogramispartofJasperReports.

*

*JasperReportsisfreesoftware:youcanredistributeitand/ormodify

*itunderthetermsoftheGNULesserGeneralPublicLicenseaspublishedby

*theFreeSoftwareFoundation,eitherversion3oftheLicense,or

*(atyouroption)anylaterversion.

*

*JasperReportsisdistributedinthehopethatitwillbeuseful,

*butwithOUTANYWARRANTY;withouteventheimpliedwarrantyof

*MERCHANTAbilityorFITNESSFORAPARTICULARPURPOSE.Seethe

*GNULesserGeneralPublicLicenseformoredetails.

*

*YoushouldhavereceivedacopyoftheGNULesserGeneralPublicLicense

*alongwithJasperReports.Ifnot,see<http://www.gnu.org/licenses/>.

*/

packagedatasource;

importnet.sf.jasperreports.engine.JRDataSource;

importnet.sf.jasperreports.engine.JRException;

importnet.sf.jasperreports.engine.JRField;

/**

*@authorTeodorDanciu([email protected])

*@version$Id:WebappDataSource.java30312009-08-2711:14:57Zteodord$

*/

publicclassWebappDataSourceimplementsJRDataSource

{

/**

*

*/

privateObject[][]data=

{

{"Berne",newinteger(22),"Bill","250-20thAve."},

{"Berne",newInteger(9),"JamesSchneider","277SeventhAv."},

{"Boston",newInteger(32),"MichaelOtt","339CollegeAv."},

{"Boston",newInteger(23),"JuliaHeiniger","358CollegeAv."},

{"Chicago",newInteger(39),"MaryKarsen","202CollegeAv."},

{"Chicago",newInteger(35),"GeorgeKarsen","412CollegeAv."},

{"Chicago",newInteger(11),"JuliaWhite","412UplandPl."},

{"Dallas",newInteger(47),"JanetFuller","445UplandPl."},

{"Dallas",newInteger(43),"SusanneSmith","2UplandPl."},

{"Dallas",newInteger(40),"SusanneMiller","440-20thAve."},

{"Dallas",newInteger(36),"JohnSteel","276UplandPl."},

{"Dallas",newInteger(37),"MichaelClancy","19SeventhAv."},

{"Dallas",newInteger(19),"SusanneHeiniger","86-20thAve."},

{"Dallas",newInteger(10),"AnneFuller","135UplandPl."},

{"Dallas",newInteger(4),"SylviaRinger","365CollegeAv."},

{"Dallas",newInteger(0),"LauraSteel","429SeventhAv."},

{"Lyon",newInteger(38),"AndrewHeiniger","347CollegeAv."},

{"Lyon",newInteger(28),"SusanneWhite","74-20thAve."},

{"Lyon",newInteger(17),"LauraOtt","443SeventhAv."},

{"Lyon",newInteger(2),"AnneMiller","20UplandPl."},

{"NewYork",newInteger(46),"AndrewMay","172SeventhAv."},

{"NewYork",newInteger(44),"SylviaOtt","361CollegeAv."},

{"NewYork",newInteger(41),"BillKing","546CollegeAv."},

{"Oslo",newInteger(45),"JanetMay","396SeventhAv."},

{"Oslo",newInteger(42),"RobertOtt","503SeventhAv."},

{"Paris",newInteger(25),"SylviaSteel","269CollegeAv."},

{"Paris",newInteger(18),"SylviaFuller","158-20thAve."},

{"Paris",newInteger(5),"LauraMiller","294SeventhAv."},

{"SanFrancisco",newInteger(48),"RobertWhite","549SeventhAv."},

{"SanFrancisco",newInteger(7),"JamesPeterson","231UplandPl."}

};

privateintindex=-1;

/**

*

*/

publicWebappDataSource()

{

}

/**

*

*/

publicbooleannext()throwsJRException

{

index++;

return(index<data.length);

}

/**

*

*/

publicObjectgetFieldValue(JRFieldfield)throwsJRException

{

Objectvalue=null;

StringfieldName=field.getName();

if("city".equals(fieldName))

{

value=data[index][0];

}

elseif("ID".equals(fieldName))

{

value=data[index][1];

}

elseif("name".equals(fieldName))

{

value=data[index][2];

}

elseif("address".equals(fieldName))

{

value=data[index][3];

}

returnvalue;

}

}

next()实现了JRDataSource中的方法.判断是否还有下一个.

getFieldValue(JRFieldfield)实现了JRDataSource中的方法.field是对应报表中的要填充的字段的名称.

模板设计代码,java实现模板时,要贯彻一个思想就设计思路要与XML模板中组成结构一致,这也是我的心得体会之一。

StaticText.java

packagetest;

importjava.io.File;

importjava.util.HashMap;

importnet.sf.jasperreports.engine.JRAlignment;

importnet.sf.jasperreports.engine.JRElement;

importnet.sf.jasperreports.engine.JRException;

importnet.sf.jasperreports.engine.JasperCompileManager;

importnet.sf.jasperreports.engine.JasperFillManager;

importnet.sf.jasperreports.engine.JasperPrint;

importnet.sf.jasperreports.engine.JasperReport;

importnet.sf.jasperreports.engine.design.JRDesignBand;

importnet.sf.jasperreports.engine.design.JRDesignExpression;

importnet.sf.jasperreports.engine.design.JRDesignField;

importnet.sf.jasperreports.engine.design.JRDesignParameter;

importnet.sf.jasperreports.engine.design.JRDesignReportFont;

importnet.sf.jasperreports.engine.design.JRDesignStyle;

importnet.sf.jasperreports.engine.design.JRDesignTextField;

importnet.sf.jasperreports.engine.design.JasperDesign;

importnet.sf.jasperreports.engine.util.JRLoader;

importnet.sf.jasperreports.view.JasperDesignViewer;

importnet.sf.jasperreports.view.JasperViewer;

importdatasource.WebappDataSource;

publicclassStaticText{

JRDesignReportFontfont1=newJRDesignReportFont();

//TODOAuto-generatedmethodstub

/**

*Methodname:main<BR>

*Description:main<BR>

*Remark:<BR>

*@paramargsvoid<BR>

*/

publicstaticvoidmain(String[]args){

JRDesignReportFontfont1=newJRDesignReportFont();

font1.setFontSize(12);

try{

// JRDesignStaticTexttext1=ReportUtil.getStaticText(

// 110,0,400,22,null,JRTextElement.TEXT_ALIGN_CENTER,font1,"city");

// JRDesignStaticTexttext2=ReportUtil.getStaticText(

// 110,0,400,22,null,JRTextElement.TEXT_ALIGN_CENTER,font1,"name");

// JRDesignStaticTexttext3=ReportUtil.getStaticText(

// 110,0,400,22,null,JRTextElement.TEXT_ALIGN_CENTER,font1,"address");

JasperDesignjasperDesign=newJasperDesign();

jasperDesign.setName("NoXmlDesignReport");

jasperDesign.setPageWidth(595);

jasperDesign.setPageHeight(842);

jasperDesign.setColumnWidth(515);

jasperDesign.setColumnSpacing(0);

jasperDesign.setLeftMargin(40);

jasperDesign.setRightMargin(40);

jasperDesign.setTopMargin(50);

jasperDesign.setBottomMargin(50);

JRDesignStylenormalStyle=newJRDesignStyle();

normalStyle.setName("Arial_Normal");

normalStyle.setDefault(true);

normalStyle.setFontName("Arial");

normalStyle.setFontSize(12);

normalStyle.setPdfFontName("helvetica");

normalStyle.setPdfEncoding("Cp1252");

normalStyle.setPdfEmbedded(false);

jasperDesign.addStyle(normalStyle);

// JRDesignStyleboldStyle=newJRDesignStyle();

// boldStyle.setName("Arial_Bold");

// boldStyle.setFontName("Arial");

// boldStyle.setFontSize(12);

// boldStyle.setBold(true);

// boldStyle.setPdfFontName("Helvetica-Bold");

// boldStyle.setPdfEncoding("Cp1252");

// boldStyle.setPdfEmbedded(false);

// jasperDesign.addStyle(boldStyle);

//

// JRDesignStyleitalicStyle=newJRDesignStyle();

// italicStyle.setName("Arial_Italic");

// italicStyle.setFontName("Arial");

// italicStyle.setFontSize(12);

// italicStyle.setItalic(true);

// italicStyle.setPdfFontName("Helvetica-Oblique");

// italicStyle.setPdfEncoding("Cp1252");

// italicStyle.setPdfEmbedded(false);

// jasperDesign.addStyle(italicStyle);

JRDesignParameterparameter=newJRDesignParameter();

parameter.setName("ReportTitle");

parameter.setValueClass(java.lang.String.class);

jasperDesign.addParameter(parameter);

//Fields

JRDesignFieldfield=newJRDesignField();

field.setName("city");

field.setValueClass(java.lang.String.class);

jasperDesign.addField(field);

field=newJRDesignField();

field.setName("ID");

field.setValueClass(java.lang.Integer.class);

jasperDesign.addField(field);

field=newJRDesignField();

field.setName("name");

field.setValueClass(java.lang.String.class);

jasperDesign.addField(field);

field=newJRDesignField();

field.setName("address");

field.setValueClass(java.lang.String.class);

jasperDesign.addField(field);

JRDesignBandband=null;

JRDesignTextFieldtextField=null;

JRDesignExpressionexpression=null;

band=newJRDesignBand();

band.setHeight(20);

textField=newJRDesignTextField();

textField.setX(5);

textField.setY(4);

textField.setWidth(100);

textField.setHeight(15);

textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);

textField.setStyle(normalStyle);

expression=newJRDesignExpression();

expression.setValueClass(java.lang.String.class);

expression.setText("$F{city}");

textField.setExpression(expression);

band.addElement(textField);

textField=newJRDesignTextField();

textField.setStretchWithOverflow(true);

textField.setX(120);

textField.setY(4);

textField.setWidth(100);

textField.setHeight(15);

textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);

textField.setStyle(normalStyle);

expression=newJRDesignExpression();

expression.setValueClass(java.lang.Integer.class);

expression.setText("$F{ID}");

textField.setExpression(expression);

band.addElement(textField);

textField=newJRDesignTextField();

textField.setStretchWithOverflow(true);

textField.setX(220);

textField.setY(4);

textField.setWidth(100);

textField.setHeight(15);

textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);

textField.setStyle(normalStyle);

expression=newJRDesignExpression();

expression.setValueClass(java.lang.String.class);

expression.setText("$F{name}");

textField.setExpression(expression);

band.addElement(textField);

textField=newJRDesignTextField();

textField.setStretchWithOverflow(true);

textField.setX(400);

textField.setY(4);

textField.setWidth(100);

textField.setHeight(15);

textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);

textField.setStyle(normalStyle);

expression=newJRDesignExpression();

expression.setValueClass(java.lang.String.class);

expression.setText("$F{address}");

textField.setExpression(expression);

band.addElement(textField);

jasperDesign.setDetail(band);

HashMap<String,String>titleParameters=newHashMap<String,String>();

titleParameters.put("ReportTitle","helloworld");

FilereportFile=newFile("E:/billin.jasper");

JasperCompileManager.compileReportToFile(jasperDesign,reportFile.getPath());

JasperReportjasperReport=(JasperReport)JRLoader.loadObject(reportFile.getPath());

JasperPrintjasperPrint=JasperFillManager.fillReport(jasperReport,titleParameters,newWebappDataSource());

System.out.println("--------"+jasperPrint.getName());

JasperViewerviewer=newJasperViewer(jasperPrint);

viewer.setTitle("");

viewer.setVisible(true);

// JasperDesignViewerviewer=newJasperDesignViewer(jasperReport);

// viewer.setVisible(true);

}catch(JRExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

下面就可以运行,查看报表结果:

关于jasperreport的sample

1)运行sample之前需要安装ant服务器

2)进入到某个sample目录中,输入ant,之后再输入antview

3)有些sample需要运行sample自带的数据,则在hsqldb目录中,输入antrunServer命令启动数据库,再到sample目录中,输入ant,之后再输入antview。

相关阅读

动态网页开发工具的介绍

  动态性网页页面的开发环境依据开发设计视频语音不一样而不一样,关键的方法取决于Python开发设计、JSP开发设计和ASP开发设计的

黑客十大常用工具介绍

黑客技术一度被认为是一个神秘的特有领域,随着技术的进步和领域环境的进步,它已经成为一种非常普遍的现象。黑客技术可以用于有害目

大金空调清洗步骤详细介绍

空调清洁—挂壁式空调清洁的方法 1、 关闭空调电源,拔去插头,开窗保持室内空气流通。2、 打开空调表面面板,取下过滤网、空气净化

代理服务器的常用使用方法介绍(图文教程)

大多费尔公用模块都需要连接互联网,但有时可能因为网络问题而无法正常连接,这时可以尝试使用代理服务器。但首先您必需知道代理服务

PhoneGap介绍

PhoneGap是一个基于HTML和JavaScript的应用开发平台,使用它可以构建本地应用。你可以把PhoneGap看作一个正方形的web view contain

分享到:

栏目导航

推荐阅读

热门阅读