怎么用JFreeReport做报表实践

来源:文书网 1.45W

 准备工作:

怎么用JFreeReport做报表实践

下载jfreeReport0.8.7 地址:

Java认证:用JFreeReport做报表实践,使用JFreeReport生成报表通常需要以下三个基本步骤:

A.生成可通过TableModel接口访问的数据,如本例中的createData方法完成的功能。

B.生成一个JFreeReport实例,他定义了我们如何格式化显示数据,如本例中的'createReportDefinition方法完成的功能。

C.将数据和JFreeReport实例连接起来,并且将该JFreeReport实例传给PreviewDialog的一个实例显示给用户。

  下面开始:

1.新建一个WEB工程,在WebRootlib中import 如下jar文件:

(可在jfreereport包中解压得到)

2.写一个 加入到工程的src包中。 内容如下:

import r;

import t2D;

import ultTableModel;

import eModel;

import entAlignment;

import eReport;

import eReportBoot;

import rtProcessingException;

import ultCloseHandler;

import Handler;

import iewHandler;

import FieldElementFactory;

import iewDialog;

import tDimension;

import ;

public class Demo implements DemoHandler

{

private class HelloWorldPreviewHandler implements PreviewHandler

{

public HelloWorldPreviewHandler()

{

}

public void attemptPreview()

{

executeReport();

}

}

public Demo (){

}

protected void executeReport ()

{

final TableModel data = createData();

final JFreeReport report = createReportDefinition();

ata(data);

try

{

final PreviewDialog preview = new PreviewDialog(report);

indowListener(new DefaultCloseHandler());

();

isible(true);

}

catch (ReportProcessingException e)

{

r(“Failed to generate report ”, e);

}

}

private TableModel createData ()

{

final Object[] columnNames = new String[]{“Column1”, “Column2”};

final DefaultTableModel result = new DefaultTableModel(columnNames, 101);

for (int i=1;i《101;i++){

alueAt(“用繁體字寫幾個看看n”, i, 0);

alueAt(“简体中文输出第”+i+“次”, i, 1);

}

return result;

}

private JFreeReport createReportDefinition ()

{

final JFreeReport report = new JFreeReport();

ame(getDescription());

TextFieldElementFactory factory = new TextFieldElementFactory();

ame(“T1”);

bsolutePosition(new t(0, 0));

inimumSize(new FloatDimension(150, 12));

olor(k);

orizontalAlignment(T);

erticalAlignment(LE);

ullString(“-”);

ieldname(“Column1”);

temBand()。addElement(teElement());

factory = new TextFieldElementFactory();

ame(“T2”);

bsolutePosition(new t(200, 0));

inimumSize(new FloatDimension(150, 12));

olor(k);

orizontalAlignment();

erticalAlignment(LE);

ullString(“-”);

ieldname(“Column2”);

temBand()。addElement(teElement());

return report;

}

protected String getDescription ()

{

return “A Very Simple Report”;

}

public String getDemoName()

{

return “Hello World Demo (External)”;

}

public PreviewHandler getPreviewHandler()

{

return new HelloWorldPreviewHandler();

}

public static void main (final String[] args)

{

nstance()。start();

new Demo()。executeReport();

}

}

3.在eclipse 中运行(Shift+Alt+X J)运行出来了。 仍有错误或警告。下面来消除它们。

ption in thread “export-worker——1” assDefFoundError: org/jfree/fonts/registry/FontRecord === 解决办法是 import

: Unable to initialize the module misc-bsf

leInitializeException: Unable to load the bean scripting framework manager class. This class is required to execute the BSFExpressions. === 解决办法是 import

: Unable to initialize the module leInitializeException: Unable to load the bean shell interpreter class. This class is required to execute the BeanShellExpressions. === 解决办法是 import

: Unable to load module classes for parser-simple:org/jfree/xml/parser/AbstractXmlReadHandler

WARN:Unable to load module classes for parser-ext:org/jfree/xml/parser/AbstractXmlReadHandler

=== 解决办法是 import

8.最终出现:

INFO:Registering fonts for the iText library; using a cached font registry.

INFO:Completed font registration.

INFO:setReport(……): started pagination .……

OK,一切顺利完成。

9.总之最后的WebRootlib中一共引入了

这些JAR文件。

热门标签