`
星夜的遐想
  • 浏览: 190685 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何在Eclipse中利用CR插件开发报表

阅读更多

要在Eclipse中开发CR报表,我首先要下载CR报表的插件Crystal Report for Eclipse Edition1.0(CR4E)

 

下载地址为

写道
http://diamond.businessobjects.com/node/450

 

选择其中的手动下载(Manual  Installation)大概50多M的样子。

 

下载好后,和安装其他的插件一样,如果没有问题的话,我们就可以在Eclipse的项目新建中看到

Create a Crystal Reports web project这个选项了,

 

我们选择新建一个Crystal Reports web project项目,取名为TestCR,新建完成后,项目需要jar包都会自动添加到lib目录下面。因为要涉及到数据的链接我可以自己添加相应的数据库驱动jar包。这里我添加的是SQL Server2005的jar包。

 

 

本文主要简单介绍下,如何从test数据库中student表中数据查询出来,在报表中显示出来。

 

 

 

因为数据来自于数据库,因此建立一个链接数据库的类:DBConn.java

package com.lyl.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConn {
	
	public static final String USERNAME="sa";
	
	private static final String PASSWORD="123";
	
	private static final String CONNECTION_URL = "jdbc:sqlserver://localhost:1433;databaseName=test";

	private static Connection  conn=null;
	

	/**
	 * 准备一个本地线程池(为了装连接)
	 */
	private static  ThreadLocal<Connection> t=new ThreadLocal<Connection>();
	
	
	
	static{
		
		
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	public static Connection getConn(){
		
		//先从连接池里面拿
		conn=t.get();
		
		try {
			
		
			if(conn==null)
			{
				conn=DriverManager.getConnection(CONNECTION_URL, USERNAME, PASSWORD);
			}
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		return conn;
	}
	
	
	public  static void closeConn(){
		
		conn=t.get();
		
		try {
				if(conn!=null&& !conn.isClosed()){
			
				conn.close();
				
				//清空关闭的连接
				t.set(null);
					}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

 

其次,建立一个操作数据库的DAO类,StudentDao.java

package com.lyl.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import java.util.ArrayList;
import java.util.List;

import com.lyl.entity.Student;

import com.lyl.utils.DBConn;

public class StudentDao {
	
	public  List<Student> queryAll() {
		
		Connection conn=null;
		PreparedStatement pst=null;
		
		List<Student> studentList=new ArrayList<Student>();
		String sql="select stu.sid,stu.sname,stu.age,stu.cardid,stu.tid from dbo.Student stu";
		
		
		conn=DBConn.getConn();
		
		try {
			
				pst=conn.prepareStatement(sql);
				
				ResultSet rs=pst.executeQuery();
				
				
				Student stu=null;
				
				while(rs.next())
				{
					
					stu=new Student();
					
					stu.setSid(rs.getInt("sid"));
					stu.setSname(rs.getString("sname"));
					stu.setAge(rs.getInt("age"));
					stu.setTid(rs.getInt("tid"));
					stu.setCardid(rs.getString("cardid"));
					
					studentList.add(stu);
				}
		
		} catch (Exception e) {
			
			DBConn.closeConn();
			
			e.printStackTrace();
		}
		finally{
			
			DBConn.closeConn();
		}
		return studentList;
		
		
		
		
	}
}

 

和数据库表对应的实体类Student.java

package com.lyl.entity;

public class Student {
	
	private int sid;
	
	private String sname;
	
	private int age;
	
	private String cardid;
	
	private int tid;

	public int getSid() {
		return sid;
	}

	public void setSid(int sid) {
		this.sid = sid;
	}

	public String getSname() {
		return sname;
	}

	public void setSname(String sname) {
		this.sname = sname;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getCardid() {
		return cardid;
	}

	public void setCardid(String cardid) {
		this.cardid = cardid;
	}

	public int getTid() {
		return tid;
	}

	public void setTid(int tid) {
		this.tid = tid;
	}
}

 

以上全多做好后,下面的才是关键,如何与报表关联。

 

首先,我们可以通过,首先我们需要一个空白的报表文件,此时项目中应该在新建的时候就自动生成了一个报表文件CrystalReport1.rpt和一个CrystalReport-viewer.jsp的jsp文件,因此我们不需要新建了,可以直接用。

 

1、打开报表,可以看到报表中有Layout(布局),Formulas(计算公式),Data(数据),Preview(预览),Crystal Report Community等几种视图,我么打开Data视图。

2、在项目资源管理其中,选中java视图,找到要在报表显示的数据对于的实体。这里是student.java,选中student.java前面的图标,拉倒报表视图中,此时我们可以看到Student的各个字段都在报表中,选中要显示是字段,右键——insert,这时我们打Layout视图中可以看到对应的字段了,有必要调整下布局。

 

3、在CrystalReport-viewer.jsp添加一下代码。

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="/crystal-tags-reportviewer.tld" prefix="crviewer" %>
<crviewer:viewer reportSourceType="reportingComponent" viewerName="Report1-viewer" reportSourceVar="Report1" isOwnPage="true">
	<crviewer:report reportName="Report1.rpt" />
</crviewer:viewer>

<%//Crystal Java Reporting Component (JRC) imports.%>
<%-- jrcerom.jar--%>
<%@page import="com.crystaldecisions.sdk.occa.report.application.*" %>

<%-- rascore.jar--%>
<%@page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
<%@page import="com.businessobjects.samples.*,java.util.*" %>
<%@page import="com.lyl.dao.StudentDao,com.lyl.entity.Student" %>

<%
//水晶报表的位置
final String REPORT_NAME = "CrystalReport1.rpt";
%>


<%
	
	String className="com.lyl.entity.Student";

	String tableAlias="student";
	
	ReportClientDocument reportDocument=new ReportClientDocument();
	
	reportDocument.open(REPORT_NAME, 0);
	
	StudentDao stuDao=new StudentDao();

	
	List<Student> stuList =stuDao.queryAll();
	
	
	CRJavaHelper.passPOJO(reportDocument,stuList,className,tableAlias,""); 
	


%>

 

 4、启动Tomcate,运行CrystalReport-viewer.jsp,将可以看到所有的学生信息都会在报表中显示了。

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    在eclipse中配置水晶报表插件

    ### 在Eclipse中配置水晶报表插件的知识点详解 #### 一、水晶报表插件简介 水晶报表(Crystal Reports)是一款强大的报表设计工具,能够帮助开发者轻松地在应用程序中集成各种复杂的报表。它支持多种数据源,并能...

    Eclipse插件开发实例

    Eclipse插件开发是指在Eclipse平台上开发插件,以增强Eclipse的功能和扩展其使用范围。Eclipse插件开发需要了解Eclipse的插件架构、插件的manifest文件、插件的生命周期等知识。 Wizard向导 Wizard向导是Eclipse...

    Eclipse插件开发学习笔记.pdf

    在这些工作中,插件开发人员需与Eclipse模型层进行交互,通过操作模型来反映用户界面的变化。 此外,Eclipse插件开发还需要熟悉Eclipse服务层(Service Layer)和命令框架(Command Framework)。服务层是Eclipse...

    Eclipse代码生成器插件开发

    在本节中,我们将探讨Eclipse代码生成器插件开发的相关知识点。 一、插件开发基本概念 在Eclipse中,插件是一种可以扩展Eclipse功能的组件。插件可以提供新的功能、视图、编辑器等。要开发Eclipse插件,需要了解...

    Eclipse插件开发教程PPT Eclipse插件开发教程PPT

    Eclipse是一款广泛使用的开源集成开发环境(IDE),其...通过深入学习和实践Eclipse插件开发教程PPT中的内容,开发者不仅可以提升自身技能,还能更好地利用Eclipse平台满足特定开发需求,实现个性化和高效的开发环境。

    Eclipse插件开发学习笔记全篇+源码.rar

    在这一篇中,你将学习到Eclipse插件开发的基础知识,包括: 1. 插件体系结构:理解Eclipse的插件模型,如何通过插件来构建可扩展的应用。 2. OSGi框架:Eclipse基于OSGi运行,了解OSGi的概念和它在插件中的作用。 3....

    NC_eclipse开发插件

    通过上述知识点,我们可以看出"NC_eclipse开发插件"是Eclipse生态中的一个重要组成部分,它提升了开发者在Eclipse中进行NC开发的效率和体验。如果你是一名NC开发者,使用这款插件将大大增强你的开发环境,并使你能够...

    eclipse下的js插件

    在IT行业中,Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java...而"plugins"这个文件可能包含了安装这些插件的步骤或配置信息,阅读"说明.txt"文件将进一步指导用户如何在Eclipse中有效地利用这些插件。

    Eclipse插件Derby安装 Derby插件开发

    在 Eclipse 中开发 Derby 插件不仅能够扩展 Eclipse 的功能,还能够更好地利用 Derby 数据库的能力。接下来将介绍 Derby 插件开发的一些基础知识。 ##### (一)开发环境搭建 1. **安装 Eclipse for Java ...

    Eclipse插件开发(第3版 - 高清).pdf.zip

    书中详细讲解了Eclipse插件的生命周期、插件结构、插件依赖关系以及如何使用Eclipse的Plug-in Development Environment (PDE)工具进行开发。 2. **Java**: Java作为Eclipse插件开发的基础语言,开发者需要掌握...

    eclipse插件开发PDF

    6. 测试插件:在开发过程中不断测试插件以确保其正常工作。 7. 打包和部署:将插件打包成可分发的格式(如JAR文件),并部署到Eclipse中。 8. 文档编写:为了使其他开发者或用户能够使用插件,编写清晰的文档是...

    Eclipse Plug-In插件开发.doc

    在Eclipse中,插件通过`plugin.xml`文件与内核进行交互,这个文件定义了插件的各种扩展点(extension points),就像大宅子的门,提供了进入和退出的途径。插件开发者需要了解并利用这些扩展点来实现特定功能。尽管...

    NC的Eclipse开发插件

    4. **插件集成**:将NC的Eclipse开发插件集成到Eclipse中,通常需要按照一定的步骤进行配置,包括安装插件、导入项目、设置开发环境等。这样,开发者就可以在熟悉的Eclipse环境中进行NC相关的编码工作。 5. **开发...

    Eclipse插件开发系列

    Eclipse插件开发系列主要涉及的是如何利用Eclipse平台进行扩展和定制,使其满足特定的开发需求。Eclipse作为一个开放源代码的集成开发环境(IDE),具有强大的可扩展性,其核心架构支持通过插件机制来增加新功能或...

    eclipse 插件开发01

    本书第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等...本书内容全面,讲解仔细,不仅适合没有Eclipse平台技术基础的相关人士,也适合了解相关技术、具有一定插件开发能力的读者。

    使用 Eclipse 插件开发环境构建模板

    标题中的"使用Eclipse插件开发环境构建模板"是指在Eclipse中开发自定义模板,这些模板能够帮助开发者快速生成常见的代码片段或项目结构,从而节省手动编写的时间。模板系统是Eclipse IDE的一大特色,允许用户定制...

    Eclipse插件开发文档

    Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发者中非常流行。Eclipse的灵活性和可扩展性主要体现在其强大的插件系统上。Eclipse插件开发是为这个平台添加新功能或定制工作环境的关键技术。以下将...

    Eclipse 插件开发指南

    ### Eclipse 插件开发指南:深入理解与实践 #### 一、Eclipse平台概览 **1.1 Eclipse的历史** Eclipse项目起源于IBM,在2001年11月...无论是初学者还是经验丰富的开发者,都能在Eclipse插件开发中找到乐趣和价值。

    神州数码 Eclipse插件开发面试

    Eclipse提供了内置的Equinox运行时环境,允许你在开发环境中直接测试插件功能。 七、插件打包与部署 完成开发后,可以使用PDE工具将插件打包成可安装的插件文件(.jar或.update-site),然后在其他Eclipse实例上...

Global site tag (gtag.js) - Google Analytics