`
阅读更多
jasperReport的这个包net.sf.jasperreports.engine.design 是这样描述的:Contains design time implementations for the library's main interfaces as well as report compiling tools.因此我们完全可以使用它的API构建自己的报表,还是和前几篇使用同一个数据库表。
        构建JasperDesign对象:
设置一些对应的属性:
// JasperDesign
        JasperDesign jasperDesign = new JasperDesign();
        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);
字体:
// Fonts
        JRDesignStyle normalStyle = new JRDesignStyle();
        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);

        JRDesignStyle boldStyle 
= new JRDesignStyle();
        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);

        JRDesignStyle italicStyle 
= new JRDesignStyle();
        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);
定义报表的参数,并添加到报表设计器上
// Parameters
        JRDesignParameter parameter = new JRDesignParameter();
        parameter.setName(
"ReportTitle");
        parameter.setValueClass(java.lang.String.
class);
        jasperDesign.addParameter(parameter);
定义报表的字段,这些字段是最终显示到报表上的域
// Fields
        JRDesignField field = new JRDesignField();
        field.setName(
"userid");
        field.setValueClass(java.lang.Integer.
class);
        jasperDesign.addField(field);

        field 
= new JRDesignField();
        field.setName(
"name");
        field.setValueClass(java.lang.String.
class);
        jasperDesign.addField(field);

        field 
= new JRDesignField();
        field.setName(
"sex");
        field.setValueClass(java.lang.String.
class);
        jasperDesign.addField(field);

        field 
= new JRDesignField();
        field.setName(
"age");
        field.setValueClass(java.lang.String.
class);
        jasperDesign.addField(field);

        field 
= new JRDesignField();
        field.setName(
"password");
        field.setValueClass(java.lang.String.
class);
        jasperDesign.addField(field);

        field 
= new JRDesignField();
        field.setName(
"department");
        field.setValueClass(java.lang.String.
class);
        jasperDesign.addField(field);

        JRDesignBand band 
= null;
        JRDesignTextField textField 
= null;
        JRDesignExpression expression 
= null;

开始画报表主体的title部分,不需要的部分可以不用代码标识出来,title部分放置了报表标题字段,只会出现在第一页的上方

// title
        band = new JRDesignBand();
        band.setHeight(
50);
        textField 
= new JRDesignTextField();
        textField.setBlankWhenNull(
true);
        textField.setX(
0);
        textField.setY(
10);
        textField.setWidth(
500);
        textField.setHeight(
30);
        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);
        textField.setStyle(normalStyle);
        textField.setFontSize(
22);
        expression 
= new JRDesignExpression();
        expression.setValueClass(java.lang.String.
class);
        expression.setText(
"$P{ReportTitle}");
        textField.setExpression(expression);
        band.addElement(textField);
        jasperDesign.setTitle(band);
detail部分:排列域的位置,并设置它的值,没一个域的值会最为一个 JRDesignExpression出现
// Detail
        
// pid
        band = new JRDesignBand();
        band.setHeight(
20);

        textField 
= new JRDesignTextField();
        textField.setX(
5);
        textField.setY(
4);
        textField.setWidth(
100);
        textField.setHeight(
15);
        textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);
        textField.setStyle(normalStyle);
        expression 
= new JRDesignExpression();
        expression.setValueClass(java.lang.Integer.
class);
        expression.setText(
"$F{userid}");
        textField.setExpression(expression);
        band.addElement(textField);
        
// name
        textField = new JRDesignTextField();
        textField.setStretchWithOverflow(
true);
        textField.setX(
120);
        textField.setY(
4);
        textField.setWidth(
80);
        textField.setHeight(
15);
        textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
        textField.setStyle(normalStyle);
        expression 
= new JRDesignExpression();
        expression.setValueClass(java.lang.String.
class);
        expression.setText(
"$F{name}");
        textField.setExpression(expression);
        band.addElement(textField);

        
// sex
        textField = new JRDesignTextField();
        textField.setStretchWithOverflow(
true);
        textField.setX(
200);
        textField.setY(
4);
        textField.setWidth(
30);
        textField.setHeight(
15);
        textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
        textField.setStyle(normalStyle);
        expression 
= new JRDesignExpression();
        expression.setValueClass(java.lang.String.
class);
        expression.setText(
"$F{sex}");
        textField.setExpression(expression);
        band.addElement(textField);
        
// age
        textField = new JRDesignTextField();
        textField.setStretchWithOverflow(
true);
        textField.setX(
240);
        textField.setY(
4);
        textField.setWidth(
30);
        textField.setHeight(
15);
        textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
        textField.setStyle(normalStyle);
        expression 
= new JRDesignExpression();
        expression.setValueClass(java.lang.String.
class);
        expression.setText(
"$F{age}");
        textField.setExpression(expression);
        band.addElement(textField);
        
// password
        textField = new JRDesignTextField();
        textField.setStretchWithOverflow(
true);
        textField.setX(
270);
        textField.setY(
4);
        textField.setWidth(
80);
        textField.setHeight(
15);
        textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
        textField.setStyle(normalStyle);
        expression 
= new JRDesignExpression();
        expression.setValueClass(java.lang.String.
class);
        expression.setText(
"$F{password}");
        textField.setExpression(expression);
        band.addElement(textField);
        
// department
        textField = new JRDesignTextField();
        textField.setStretchWithOverflow(
true);
        textField.setX(
350);
        textField.setY(
4);
        textField.setWidth(
80);
        textField.setHeight(
15);
        textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
        textField.setStyle(normalStyle);
        expression 
= new JRDesignExpression();
        expression.setValueClass(java.lang.String.
class);
        expression.setText(
"$F{department}");
        textField.setExpression(expression);
        band.addElement(textField);
JasperReport对象可以使用下面这句产生:
JasperCompileManager.compileReport(jasperDesign);
至此一个完整的报表就可以显示出来了。
分享到:
评论

相关推荐

    iReport+JasperReport柱状图

    iReport+JasperReport柱状图开发指南 本文详细介绍了使用iReport和JasperReport开发柱状图的过程,包括确定数据源类型、开发数据源类、设计图表属性等步骤。作者分享了自己的实践经验,遇到的困难和解决方法,旨在...

    ireport+jasperreport联合开发java报表(PDF).rar

    《ireport+jasperreport联合开发Java报表》是针对Java开发者的一款强大的报表生成工具,它能够帮助程序员高效地创建、设计和导出各种复杂的业务报表,尤其是PDF格式的报表。本资料详细介绍了如何利用ireport和...

    ireport+jasperreport API

    《ireport+jasperreport API 报表开发指南》 在IT行业中,报表系统是数据分析和决策支持的关键组成部分。ireport和jasperreport是两款强大的开源报表工具,它们提供了丰富的API和设计工具,使得开发者能够创建从...

    iReport+jasperReport之客户端打印 ----数字签名

    ### iReport + JasperReport 客户端打印与数字签名详解 #### 一、概述 iReport 是一个用于设计 JasperReports 报告模板的图形界面工具,而 JasperReports 则是一款非常流行的 Java 报告工具,它能够从各种数据源...

    ireport+jasperreport柱状图例子

    详细介绍了如何利用ireport+jasperreport柱状图例子,并附有代码,参照实例,手把手教你用该解决方案作柱状图。

    ireport+jasperReport+Swing总结.doc

    ### ireport+jasperReport+Swing总结 #### 一、概述 本文档旨在总结 ireport 4.1.3 版本与 jasperReport 4.5.0 版本结合 Swing 在报表设计与生成方面的应用。通过图文并茂的方式详细介绍如何使用 ireport 设计报表...

    iReport+JasperReport教材两本以及demo

    iReport和JasperReport是两个在Java开发领域中广泛使用的报表工具,主要用于设计和生成复杂的业务报告。这两个工具是开源的,因此深受开发者喜爱。在本资料包中,你将获得两本关于iReport和JasperReport的教材,以及...

    ireport+jasperreport开发中问题解决方案

    以上是针对ireport+jasperreport开发中常见问题的解决方案,每个知识点都是报表设计中不可或缺的一部分,熟练掌握这些技巧将有助于提高报表开发的效率和质量。在实践中,还需要不断学习和尝试,以应对更多复杂场景下...

    ireport+JasperReport经典报表开发实例

    看看代码你就知道报表开发有多简单。由于jar包太多,所以没有附带,你可以安装ireport3.0.0后,ireport安装目录下的lib文件下的jar包就是本实例的jar包,但是struts的包需要你自己加入。

    Struts2.0+JasperReport+IReport+Oracle 报表开发 2/3

    Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题

    struts2+ireport+jasperreport报表设计简单示例

    使用ireport和struts2进行报表...java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习报表的作参考。没分了,收个友情分1分,勿怪。

    struts2+Ireport+Jasperreport实现报表导出

    iReport支持多种数据源,包括数据库、XML文件等,可以设计多种类型的报表,如表格、图表、文本等。在本项目中,iReport被用来设计报表模板,这些模板定义了报表的布局、样式和数据来源,为报表的动态生成奠定了基础...

    Struts2.0+JasperReport+IReport+Oracle 报表开发

    Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题

    报表制作的详细流程(iReport+jasperReports)

    【报表制作的详细流程(iReport+jasperReports)】 在IT领域,报表系统是数据分析和决策支持的重要工具。本文将深入探讨使用iReport和jasperReports这两个开源工具来创建专业报表的详细步骤。这两个工具结合使用,...

    Struts2.0+JasperReport+IReport+Oracle 报表开发 3/3

    Struts2.0+JasperReport+IReport+Oracle 报表开发整个项目打包上传,用MyEclipse导入即可调试使用含报表文件、数据库表结构及测试数据,项目中解决了PDF中文

    ireport+jasperreport

    在"ireport+jasperreport一个小例子"中,我们可以推测这是一个使用这两个工具创建的简单示例。`test.jrxml` 文件是使用`iReport` 设计的报表模板,它是JRXML格式,这是一种XML文件,包含了报表的布局、样式和数据源...

    Ireport4.0.2+jasperReport4.0.2整合part03

    Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现

    Ireport4.0.2+jasperReport4.0.2整合part01

    Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现

    Ireport4.0.2+jasperReport4.0.2整合part04

    Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现

    Ireport4.0.2+jasperReport4.0.2整合part02

    Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现

Global site tag (gtag.js) - Google Analytics