- 浏览: 732315 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
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 4386在使用birt报表的时候感 ... -
jxl导入excel
2013-09-17 16:56 924jxl读取excel和写excel基本类似,只是Writab ... -
合计 jxl
2013-08-07 08:57 1270一、jxl中的合计如下$[SUM(C8:I8)]$[SUM ... -
birt分组排序
2013-05-31 17:04 14571、birt分组排序问题 本来sql已经排好序的,但是 ... -
如何去掉birt报表自动生成的日期
2012-11-10 10:35 3984birt做出来有时间,但不需要,需要去掉。在xml中,找到以下 ... -
图形报表问题
2011-12-23 11:02 1075我用iReport生成html报表, 报表里面有一个表格 和一 ... -
常见问题
2011-12-22 16:52 8981.生成报表时中文产生乱码? JasperReport的中文 ... -
iReport报表开发中常见的问题
2011-12-22 13:06 8415注明: $V{PAGE_NUMBER} 表示当前是第几页 ... -
jasperreport生成html,Excel,PDF报表,数据源使用List
2010-06-07 16:05 0jasperreport中可以使用List作为数据源,使用格式 ...
相关推荐
本主题主要关注如何使用SuperMap Objects Java将数据集导出为Excel表文件,这对于数据分析、报告制作以及数据共享具有重要意义。 首先,我们要理解“数据集”在GIS中的概念。数据集是GIS中的基本数据单元,通常包含...
本篇文章将深入探讨如何使用SuperMap Objects Java将简单数据集转换为复合数据集,并最终导出为CAD(计算机辅助设计)格式。 首先,我们要理解“简单数据集”和“复合数据集”的概念。简单数据集通常指的是包含单一...
本示例主要关注的是如何使用SuperMap Objects Java库进行属性数据到点数据集的转换。SuperMap Objects是SuperMap公司提供的一套功能强大的GIS开发组件,支持多种编程语言,包括Java,它能够帮助开发者构建地理空间...
在“鸟类检测 bird鸟类检测数据集.rar”中,我们有一个专门针对鸟类检测的数据集。这个数据集基于PASCAL VOCtrainval2012数据集提取,PASCAL VOC是一个广泛使用的计算机视觉基准,包含了多种类别的物体实例分割和...
数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):17000 标注数量(xml文件个数):17000 标注类别数:1 总文件大小:约4GB,分2个压缩包 标注类别名称:["bird"]...
虽然Flappy Bird的源码可能不包含复杂的进度保存功能,但简单的高分记录可以通过序列化和反序列化技术实现,如使用java.io.Serializable接口。 通过学习Flappy Bird的Java源码,开发者不仅可以掌握基础的游戏开发...
1、资源描述:YOLO目标检测+鸟类数据集已标注可以直接使用(数据集+对应已标注文件).rar 2、资源内容:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 3、适用对象:计算机,电子信息工程、数学等专业...
Java实现的Flappy Bird小游戏是一个非常适合初学者上手的项目,它可以帮助你深入理解Java编程语言,特别是游戏开发的基本概念。下面将详细讲解这个项目涉及的知识点。 首先,Flappy Bird是一款基于2D图形的游戏,...
通过以上知识点的学习和实践,你可以掌握如何使用Java调用SOAP接口,以及如何根据具体需求进行定制。在处理天气信息这样的案例中,理解SOAP协议和相关API的使用,将使你能够轻松地与各种Web服务进行交互。
标题中的“无人机和鸟分类数据集,各有165张图片”表明这是一个图像识别与分类的任务,涉及到两个类别:无人机(drone)和鸟(bird)。这个数据集包含330张图片,每种类别各占一半,可以用于训练或评估计算机视觉...
Java调用Chrome浏览器内核是开发桌面应用时一个常见的需求,尤其在需要嵌入Web页面或者与Web内容交互的场景下。CEF(Chromium Embedded Framework)是一个开源项目,它允许开发者将Google Chrome的Blink渲染引擎和V8...
本文将深入探讨如何使用SuperMap iObjects Java 7C的API实现网络数据集的加密,以及这一过程中的关键知识点。 **1. SuperMap iObjects Java 7C 简介** SuperMap iObjects Java 是一套基于Java语言的GIS核心组件库,...
在本篇文章中,我们将详细介绍如何使用 JAVA 调用 C# 编写的 DLL 文件。首先,我们需要了解什么是 DLL 文件,以及它在编程中的应用。 DLL 文件是一种动态链接库文件,它可以被多个程序同时使用,减少了代码的重复...
### JAVA调用DLL方法 在跨平台开发领域中,Java作为一种强大的编程语言,因其具有良好的移植性和跨平台性而被广泛使用。然而,在某些特定情况下,我们可能需要调用本地库(例如DLL文件)来实现特定功能或提高性能。...
使用JNI,Java程序可以调用GMSSL库进行SM3哈希计算,适用于数据完整性校验和数字签名的摘要生成。 3. **SM4算法**:SM4是一种对称分组密码算法,用于块加密。它具有128位的密钥和块大小,与AES相似。通过JNI,我们...
当我们谈论“Java调用Modem执行AT指令”时,实际上是在讨论如何通过Java程序控制Modem来发送和接收特定的控制命令。AT指令集是Modem的基本通讯协议,由一系列简短的ASCII字符串组成,用于配置Modem的参数或指示其...
Java Print Service API支持本地打印,通过`DocFlavor`和`PrintRequestAttributeSet`对象定义打印数据格式和打印属性,然后调用`PrintJob.print()`方法发送打印作业。 在实际开发过程中,你可能需要做以下步骤: 1...
Bartender提供了.net的开发sdk,但是没有提供java的,使得java开发者调用Bartender实现模板打印比较困难。本示例是结合Bartender官方资料,利用java通过COM组件方式实现可传递参数的模板打印。