- 浏览: 734042 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
18335864773:
看了楼主写的用jxl生成excel。有地方用到了流,还特别强调 ...
jxl导出excel文件简单示例 -
shaoshou111:
查看Apache的并发请求数及其TCP连接状态netstat ...
Linux查看连接数,并发数 -
gengjunshi:
非常感谢哈,刚好在学webservice编程,很有用呢。
JAX-WS开发webservice示例详解 -
zcgewu:
encrypt2()和encrypt()有什么区别
JAVA实现AES加密 -
java爱好者92:
ireport的操作还是相对比较复杂的,帆软报表会相对简单一点 ...
iReport报表开发中常见的问题
把编译好的类,连同包路径,一起放到Eclipse的Birt插件下面
比如我的就是在
c:\software\Birt2.6.2\plugins\org.eclipse.birt.report.viewer_2.6.2.r262_v20110214\birt\WEB-INF\classes\SimpleClass.class,
当然你的类如果带有包,比如com.jshx.SimpleClass, 那么你必须把整个的com包都放到classes下面
数组方式:
第一步:定义一下JAVA,class(看后面附件)
第二步:定义一个LIST
第三步:在BIRT报表的DATASET事件中(open)中输入
count = 0; cf = new Packages.user.ContactListFactory(); c = cf.createContactList();
在BIRT报表的DATASET事件中(CLOSE)中输入
cf=null; c=null;在BIRT报表的DATASET事件中(FETCH)中输入
if (count <= c.length-1){ row["columnFirstName"] = c[count].getFname(); row["columnLastName"] = c[count].getLname(); row["columnPhoneNumber"]= c[count].getPhone(); count ++; return true; } return false;
List方式
第一步:定义一下JAVA,class(看后面附件)
第二步:定义一个LIST
第三步:在BIRT报表的DATASET事件中(open)中输入
importPackage(Packages.com.jshx); reslut=reslutList; count=0;
在BIRT报表的DATASET事件中(CLOSE)中输入
reslut=null;
在BIRT报表的DATASET事件中(FETCH)中输入
if (count<=reslut.size()){ row["columnFirstName"] = reslut.get(count).getFname(); row["columnLastName"] = reslut.get(count).getLname(); row["columnPhoneNumber"]= reslut.get(count).getPhone(); count++; return true; } return false;
###############################################
附件
################################################
Contact类
package com.jshx; public class Contact { String fname; String lname; String phone; public Contact(String fname, String lname, String phone){ this.fname = fname; this.lname = lname; this.phone = phone; } /* * * @return Returns the fname. */ public String getFname() { return fname; } /** * @param fname The fname to set. */ public void setFname(String fname) { this.fname = fname; } /** * @return Returns the lname. */ public String getLname() { return lname; } /** * @param lname The lname to set. */ public void setLname(String lname) { this.lname = lname; } /** * @return Returns the phone. */ public String getPhone() { return phone; } /** * @param phone The phone to set. */ public void setPhone(String phone) { this.phone = phone; } }
ContactListFactory类
package com.jshx; import java.util.ArrayList; import java.util.List; public class ContactListFactory { public Contact[] createContactList(){ Contact[] c = new Contact[5]; c[0] = new Contact("stavros", "kounis", "2310886269"); c[1] = new Contact("dimitris", "kounis", "2310888270"); c[2] = new Contact("dimitris", "adamos", "2310998417"); c[3] = new Contact("nikos", "koufotolis", "2321013770"); c[4] = new Contact("yan", "liang", "13824745919"); return c; } public List<Contact> createList(){ List<Contact> c = new ArrayList<Contact>(); c.add(new Contact("stavros", "kounis", "2310886269")); c.add(new Contact("dimitris", "kounis", "2310888270")); c.add(new Contact("dimitris", "adamos", "2310998417")); c.add(new Contact("nikos", "koufotolis", "2321013770")); c.add(new Contact("yan", "liang", "13824745919")); return c; } }
公共方法类
CommonFunc.java
package com.jshx.util; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class CommonFunc { private static final Log logger = LogFactory.getLog(CommonFunc.class); /** * 获取当前项目的绝对路径 * @param classesPath * @return */ public static String getPorjectPath(String classesPath){ String tempdir; String classPath[] = classesPath.split("webapps"); tempdir=classPath[0]; if(!"/".equals(tempdir.substring(tempdir.length()-1))){ tempdir += "/"; } return tempdir; } /** * 日期转为字符串 * @param date * @param formatStr * @return */ public static String ConvertDateToStr(Date date,String formatStr) { try { SimpleDateFormat format = new SimpleDateFormat(formatStr); return format.format(date); } catch (Exception e) { e.printStackTrace(); return null; } } }
Constants.java
package com.jshx.util; /** * 常量类 <功能详细描述> * @author duanpf * @version [版本号, 2012-12-8] * @see [相关类/方法] * @since [产品/模块版本] */ public class Constants{ // Field descriptor #6 Ljava/lang/String; public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"; // Field descriptor #6 Ljava/lang/String; public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; // Field descriptor #6 Ljava/lang/String; public static final String YYYY_MM_DD = "yyyy-MM-dd"; // Field descriptor #6 Ljava/lang/String; public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; public static final String YYYYMM = "yyyyMM"; public static final String YYYY = "yyyy"; public static final String MM = "MM"; public static final String birtRunTime = "virtualdir/birt/runtime/ReportEngine"; public static final String birtPath = "virtualdir/birt/report/"; }
ExecuteReport类
package com.jshx; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.log4j.Logger; import org.eclipse.birt.report.engine.api.EngineConfig; import org.eclipse.birt.report.engine.api.EngineConstants; import org.eclipse.birt.report.engine.api.EngineException; import org.eclipse.birt.report.engine.api.HTMLRenderContext; import org.eclipse.birt.report.engine.api.HTMLRenderOption; import org.eclipse.birt.report.engine.api.IReportRunnable; import org.eclipse.birt.report.engine.api.IRunAndRenderTask; import org.eclipse.birt.report.engine.api.ReportEngine; import com.jshx.util.CommonFunc; import com.jshx.util.Constants; public class ExecuteReport { public static Logger logger = Logger.getLogger(ExecuteReport.class); /** * * @param paraMap 传入需要在报表中展示的值,或LIST集合 * @param rptdesign 报表模板 * @param outFlie 输出的文件名 * @param outType 输出的文件类型 * @return * @throws EngineException */ public String executeReport(Map<String, Object> paraMap,String rptdesign,String outFlie,String outType) throws EngineException{ String classesPath = this.getClass().getClassLoader().getResource("").getPath(); String realPath= CommonFunc.getPorjectPath(classesPath); //Engine Configuration - set and get temp dir, BIRT home, Servlet context EngineConfig config = new EngineConfig(); logger.info("运行时路径="+realPath+ Constants.birtRunTime); config.setEngineHome(realPath+ Constants.birtRunTime); //Create the report engine ReportEngine engine = new ReportEngine(config); //Open a report design - use design to modify design, retrieve embedded images etc. IReportRunnable design = engine.openReportDesign(realPath+ Constants.birtPath +rptdesign); //Create task to run the report - use the task to execute and run the report, IRunAndRenderTask task = engine.createRunAndRenderTask(design); //Set Render context to handle url and image locataions HTMLRenderContext renderContext = new HTMLRenderContext(); renderContext.setImageDirectory("image"); HashMap contextMap = new HashMap(); contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext); task.setAppContext( contextMap ); if(null!=paraMap&&!paraMap.isEmpty()){ Set<String> set = paraMap.keySet(); for (String string : set) { if("reslut".equals(string)){ Contact[] c =(Contact[]) paraMap.get(string); task.addScriptableJavaObject("reslut", c); }if("urlPath".equals(string)){ task.addScriptableJavaObject(string, paraMap.get("urlPath")); }else{ //List<Contact> list = (ArrayList<Contact>)paraMap.get(string); List list =(ArrayList) paraMap.get(string); task.addScriptableJavaObject(string, list); } } } //Set rendering options - such as file or stream output, //output format, whether it is embeddable, etc HTMLRenderOption options = new HTMLRenderOption(); Date dateNow=new Date(); String reqTime = CommonFunc.ConvertDateToStr(new Date(), Constants.YYYYMM); String dateNowStr= reqTime +"/"+outFlie; String birtFile = realPath+ Constants.birtPath+dateNowStr; options.setOutputFileName(birtFile); options.setOutputFormat(outType); task.setRenderOption(options); //run the report and destroy the engine try{ task.run(); engine.destroy(); }catch (Exception e) { e.printStackTrace(); } return dateNowStr; } public static void main(String[] args) throws Exception { Map<String, Object> reslutMap = new HashMap<String, Object>(); ExecuteReport pf = new ExecuteReport(); pf.executeReport(reslutMap,"scripted.rptdesign","scripted.xls","xls"); } }
Reporttest类
package com.jshx; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.jshx.util.CommonFunc; import com.jshx.util.Constants; public class Reporttest { public static void main(String args[]) { try { ContactListFactory cf = new ContactListFactory(); Contact[] reslut = cf.createContactList(); List<Contact> reslutList = cf.createList(); Map<String, Object> reslutMap = new HashMap<String, Object>(); reslutMap.put("reslut", reslut); reslutMap.put("reslutList", reslutList); String reqTime = CommonFunc.ConvertDateToStr(new Date(),Constants.YYYYMMDDHHMMSS); String birtType = "html"; String birtFileName = "kenScripDataset_" + reqTime + "." + birtType; ExecuteReport mreport = new ExecuteReport(); mreport.executeReport(reslutMap, "kenScripDataset.rptdesign",birtFileName, birtType); } catch (Exception e) { e.printStackTrace(); } } }
发表评论
-
BIRT参数设置详解
2016-05-18 15:15 4404在使用birt报表的时候感 ... -
jxl导入excel
2013-09-17 16:56 934jxl读取excel和写excel基本类似,只是Writab ... -
合计 jxl
2013-08-07 08:57 1273一、jxl中的合计如下$[SUM(C8:I8)]$[SUM ... -
birt分组排序
2013-05-31 17:04 14721、birt分组排序问题 本来sql已经排好序的,但是 ... -
如何去掉birt报表自动生成的日期
2012-11-10 10:35 3989birt做出来有时间,但不需要,需要去掉。在xml中,找到以下 ... -
图形报表问题
2011-12-23 11:02 1077我用iReport生成html报表, 报表里面有一个表格 和一 ... -
常见问题
2011-12-22 16:52 9001.生成报表时中文产生乱码? JasperReport的中文 ... -
iReport报表开发中常见的问题
2011-12-22 13:06 8425注明: $V{PAGE_NUMBER} 表示当前是第几页 ... -
jasperreport生成html,Excel,PDF报表,数据源使用List
2010-06-07 16:05 0jasperreport中可以使用List作为数据源,使用格式 ...
相关推荐
本主题主要关注如何使用SuperMap Objects Java将数据集导出为Excel表文件,这对于数据分析、报告制作以及数据共享具有重要意义。 首先,我们要理解“数据集”在GIS中的概念。数据集是GIS中的基本数据单元,通常包含...
本示例主要关注的是如何使用SuperMap Objects Java库进行属性数据到点数据集的转换。SuperMap Objects是SuperMap公司提供的一套功能强大的GIS开发组件,支持多种编程语言,包括Java,它能够帮助开发者构建地理空间...
1. **加载栅格数据**:使用SuperMap Objects Java的栅格数据读取接口,加载栅格数据文件,获取栅格数据集。 2. **设置参数**:设定融合和矢量化所需参数,如融合规则(相同值的象元是否融合)、矢量化阈值(决定...
Java调用OPC(OLE for Process Control)获取点位数据是一项常见的工业自动化任务,尤其在SCADA(Supervisory Control and Data Acquisition)系统中。OPC是微软平台上的一个标准接口,它允许不同厂商的软件应用程序...
以上知识点涵盖了Java数据集工具的基础和进阶使用,通过深入理解和熟练运用,开发者可以编写出高效、易维护的代码。`API doc`可能包含了这些工具类的详细文档,通过查阅可以获取更具体的信息和示例。`help`文件可能...
在Java编程环境中调用SPSS(Statistical Product and Service Solutions)是通过SPSSINC API for Java实现的。这个API允许开发者在Java应用中无缝集成SPSS的功能,执行统计分析、数据处理等任务。SPSSINC API for ...
3. **调用Java方法**:使用`CallStaticVoidMethod`或`CallVoidMethod`等函数,根据方法是否为静态,以及传入的参数类型,调用Java方法。 4. **处理结果**:根据Java方法的返回值,易语言程序可以进行相应的操作。 ...
首先,需要创建一个`Feature`对象,设置其几何形状(Geometry)和属性值(Attributes),然后使用数据集的`addFeature()`方法将其添加到数据集中。例如,创建一个点对象并添加到数据集: ```java Geometry point = ...
本文将深入探讨“Java天气数据接口”的相关知识点,包括如何调用气象数据接口,Java语言中的实现方式,以及如何在实际项目中应用。 首先,"Xfire"可能是指一个用于调用气象数据的API服务或者库,它提供了获取天气...
项目:Java版Flappy Bird游戏及源代码 Flappy Bird游戏是一款简单的街机游戏。这整个游戏或项目使用Java和一些Swing组件来使其看起来惊人。你必须让游戏的主角回到家中。这是使用Swing组件的完美示例。 关于项目 ...
使用JNI,Java程序可以调用GMSSL库进行SM3哈希计算,适用于数据完整性校验和数字签名的摘要生成。 3. **SM4算法**:SM4是一种对称分组密码算法,用于块加密。它具有128位的密钥和块大小,与AES相似。通过JNI,我们...
在Windows环境下,使用Java进行程序开发时,有时我们需要对文件进行压缩操作,比如将文件压缩成RAR格式。这个过程涉及到Java的本地方法调用、文件I/O操作以及第三方库的集成。下面我们将详细探讨如何在Java中实现这...
Java使用数组、集合(如List、Set、Map等)或自定义的数据结构来表示和操作数据集。 二、数据结构和集合框架 Java集合框架(Java Collections Framework)是Java中最重要的一部分,提供了一系列的接口、类和算法,...
本文将深入探讨如何在Delphi 7中调用Java接口,实现两者之间的数据传递和结果返回。 首先,理解Delphi 7调用Java接口的基础原理。这种通信通常依赖于Java的本地接口(JNI,Java Native Interface),它允许Java代码...
本文将详细介绍如何使用Java语言调用ASMX类型的WebService,并提供一个具体的示例来帮助理解整个过程。 #### 二、关键知识点详解 ##### 1. WebService基础概念 - **WebService**:是一种跨编程语言和操作系统平台...
CSDN上原来有一个arff格式的鸢尾花数据集,不方便matlab直接调用。 我的这个数据集是txt格式的,在matlab下可以直接一句命令“load('iris.txt')”加载。 iris以鸢尾花的特征作为数据来源,常用在分类操作中。该数据...
自己写的几个调用百度地图API的实用性方法 HTML和JS代码都有
这个项目提供了一个例子,演示了如何使用Qt库构建一个C++动态链接库(DLL),然后通过Java的JNI(Java Native Interface)来调用这个DLL中的函数。下面我们将深入探讨这个过程中的关键知识点。 首先,我们要了解**...
Java程序调用MATLAB接口 Java 程序调用 MATLAB 接口是 Java 和 MATLAB 之间的交互接口,允许 Java 程序调用 MATLAB 的函数和方法。本文将详细介绍 Java 程序调用 MATLAB 接口的注意事项、环境安装、MATLAB 如何生成...