- 浏览: 720880 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
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 4277在使用birt报表的时候感 ... -
jxl导入excel
2013-09-17 16:56 866jxl读取excel和写excel基本类似,只是Writab ... -
合计 jxl
2013-08-07 08:57 1235一、jxl中的合计如下$[SUM(C8:I8)]$[SUM ... -
birt分组排序
2013-05-31 17:04 14051、birt分组排序问题 本来sql已经排好序的,但是 ... -
如何去掉birt报表自动生成的日期
2012-11-10 10:35 3947birt做出来有时间,但不需要,需要去掉。在xml中,找到以下 ... -
图形报表问题
2011-12-23 11:02 1048我用iReport生成html报表, 报表里面有一个表格 和一 ... -
常见问题
2011-12-22 16:52 8711.生成报表时中文产生乱码? JasperReport的中文 ... -
iReport报表开发中常见的问题
2011-12-22 13:06 8335注明: $V{PAGE_NUMBER} 表示当前是第几页 ... -
jasperreport生成html,Excel,PDF报表,数据源使用List
2010-06-07 16:05 0jasperreport中可以使用List作为数据源,使用格式 ...
相关推荐
java调用远程接口传输数据的demo
数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):17000 标注数量(xml文件个数):17000 标注类别数:1 总文件大小:约4GB,分2个压缩包 标注类别名称:["bird"]...
帮助在java中调用weka中的数据集的源代码,java写的代码
使用iServer JAVA API访问iServer数据服务进行数据操作示例工程,博客地址: http://blog.csdn.net/supermapsupport/article/details/71107998
Java 反射调用设置值
java调用json参数的webservice 涉及技术: JAVA JSON WEBSERVICE
Bartender提供了.net的开发sdk,但是没有提供java的,使得java开发者调用Bartender实现模板打印比较困难。本示例是结合Bartender官方资料,利用java通过COM组件方式实现可传递参数的模板打印。
1,利用java调用soap接口获取天气的信息;2,利用java调用soap一个特定的案例,可按自己的要求修改。
java通过utgard调用OPC获取点位数据,注意要csid来获取,直接用户名和密码获取有误
java调用R语言实现数据挖掘
Xfire 调用气象数据接口 java调用天气 java气象数据接口 很好的气象数据接口 里面的UserId需要从www.36wu.com从新申请。
Java调用weka神经网络算法预测股票,含有代码及数据,代码有详细解释,数据为大量数据。
本代码主要开源了java报表工具中程序数据集和自定义函数部分的代码,通过该开源代码,你可以了解报表工具的内部原理,掌握国内主流java报表工具的各类接口使用方法,并运用该接口对软件产品或项目中的个性化的需求...
Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。iris以鸢尾花的特征作为数据来源,常用在分类操作中。该数据集由3种 不同类型的鸢尾花的50个样本数据构成。其中的一个种类与另外两个种类是线性可分离的...
JAVA调用海康威视SDK实现摄像头预览源码
使用Java语言调用终端开启关闭Nginx服务器,然后执行ffmpeg命令,开启转流推流。以及其它指令,来学习吧
Java web 开发,Java script 脚本编写的pdf教程。开发好的网站,离不开Java。学习Java是你第一明智的选择,选择这个教程就是你第二明智的选择。
使用Java获取制定接口的数据,使用了httpserverletrequest类。
自己写的几个调用百度地图API的实用性方法 HTML和JS代码都有