eclipse+birt报表开发
工具下载:https://pan.baidu.com/s/1pMEZwfh 1 创建一个Java项目 2 制定一个存放报表模板的包,创建report模板 new-->report,创建名为 mytest_1.rptdesign 的模板 3 创建数据源和数据集 3 新建数据源 和 数据集
方式一: 基于数据库sql 3.1 创建数据源 Data Sources 选择: JDBC Data Source 以mysql为例: Driver Class: com.mysql.jdbc.Driver (v5.1) Database URL: jdbc:mysql://192.168.101.75:13507/imp_monitordb 3.1 创建数据集 Data Sets Data Set Type 选择: SQL Select Query 然后写查询sql
创建数据源:
创建数据集不带参数的sql:
带参数的sql写法:
数据集:
方式二 :基于代码,调用方法 3.1 创建数据源 Data Sources 选择: Scripted Data Source 3.1 创建数据集 Data Sets
布局及样式调整:
基本样式设置:
设置列表隔行变色:
饼状图,柱状图和饼状图的数据集格式一样:
去掉报表自动生成的时间,注释掉下面的<page-footer>标签即可:
<page-setup> <simple-master-page name="Simple MasterPage" id="2"> <page-footer> <text id="3"> <property name="contentType">html</property> <text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]> </text-property> </text> </page-footer> </simple-master-page> </page-setup>
核心代码:
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Created by test on 2018/2/6. */ public class test { public static IReportEngine engine ; //报表引擎 public static String birtRoot = "/usr/local/suninfo/siem/tomcat/webapps/ROOT/birt" ; //报表模版根路径 public static void main(String[] args) { Map<String,Object> paramValues=new HashMap<>(); paramValues.put("reportUuid","sabfaskjnmflwkem"); String outputFilePath=new DateTime().toString("yyyy-MM-dd"); createReport("logInfo_report_pdf.rptdesign",paramValues,birtRoot+"report/pdf/"+outputFilePath,"pdf"); } public static void createReport(String designPath,Map<String,Object> paramValues,String outFilePath,String fileFormat){ try{ //打开一个报表设计文件 String pathName=birtRoot+"/"+designPath; IReportRunnable design = engine.openReportDesign(pathName); //以打开的报表设计文件为参数,创建一个获取参数的对象 IGetParameterDefinitionTask paramTask = engine.createGetParameterDefinitionTask(design); //获取报表设计文件中的参数定义 Collection parameters = paramTask.getParameterDefns(false); HashMap parameterMap=evaluateParameterValues(parameters,paramValues); //创建生成报表的任务对象 IRunAndRenderTask task = engine.createRunAndRenderTask(design); //为报表生成任务设置参数集合对象 task.setParameterValues(parameterMap); if(fileFormat.equals("html")){ //创建报表render选项对象 HTMLRenderOption options = new HTMLRenderOption (); //设置输出格式(PDF,HTML等) options.setOutputFormat( fileFormat ); options.setImageDirectory(birtRoot+File.separatorChar+"html"+File.separatorChar+"image"); options.setOutputFileName(outFilePath); //设置render options对象 task.setRenderOption( options ); //运行生成报表 task.run(); task.close(); dealReportCss(birtRoot, outFilePath); }else if(fileFormat.equals("pdf")){ PDFRenderOption options = new PDFRenderOption(); options.setOutputFormat(fileFormat); options.setOutputFileName(outFilePath); task.setRenderOption( options ); //运行生成报表 task.run(); task.close(); } }catch (Exception e){ } } //为报表设计文件中定义的参数赋值 @SuppressWarnings({ "rawtypes", "unchecked" }) public static HashMap evaluateParameterValues(Collection paramDefns,Map<String,Object> params) { HashMap inputValues = new HashMap(); Iterator iter = paramDefns.iterator(); while (iter.hasNext()) { IParameterDefnBase pBase = (IParameterDefnBase) iter.next(); if (pBase instanceof IScalarParameterDefn) { IScalarParameterDefn paramDefn = (IScalarParameterDefn) pBase; String paramName = paramDefn.getName(); String inputValue = (String) params.get(paramName); inputValues.put(paramName, inputValue); } } return inputValues; } public static void dealReportCss(String birtRoot,String outFilePath){ RandomAccessFile random = null; FileOutputStream fos=null; OutputStreamWriter osw=null; BufferedWriter bw =null; try { if(!birtRoot.startsWith("/")){ birtRoot = "/" + birtRoot; } String str = "file:"+birtRoot.replace("\\", "/")+"/html"; StringBuffer sb = new StringBuffer(); random =new RandomAccessFile(new File(outFilePath),"rw"); String readLine = random.readLine(); while(readLine != null){ readLine = new String(readLine.getBytes("ISO-8859-1"), "UTF-8"); if(readLine.contains(str)){ readLine = readLine.replace(str, "."); } sb.append(readLine+"\n"); readLine = random.readLine(); } random.setLength(0); fos=new FileOutputStream(new File(outFilePath)); osw=new OutputStreamWriter(fos); bw = new BufferedWriter(osw); bw.write(sb.toString()); } catch (Exception e) { System.out.println(outFilePath+"读取报表文件异常!"); }finally{ try { if(random != null){ random.close(); } } catch (IOException e1) { e1.printStackTrace(); } try { if(bw != null){ bw.close(); } } catch (IOException e1) { e1.printStackTrace(); } try { if(osw != null){ osw.close(); } } catch (IOException e1) { e1.printStackTrace(); } try { if(fos != null){ fos.close(); } } catch (IOException e1) { e1.printStackTrace(); } } } }
相关jar包:
<!-- 报表相关jar --> <dependency> <groupId>org.apache.batik</groupId> <artifactId>css</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>util</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.eclipse</groupId> <artifactId>birt.runtime</artifactId> <version>4.5.0</version> </dependency> <dependency> <groupId>org.eclipse</groupId> <artifactId>core.runtime</artifactId> <version>3.11.0</version> </dependency> <dependency> <groupId>org.eclipse</groupId> <artifactId>core.resources</artifactId> <version>3.10.0</version> </dependency> <dependency> <groupId>org.eclipse.datatools.connectivity.oda</groupId> <artifactId>consumer</artifactId> <version>3.2.6</version> </dependency> <dependency> <groupId>org.eclipse.datatools.connectivity.oda</groupId> <artifactId>oda</artifactId> <version>3.4.3</version> </dependency> <dependency> <groupId>org.eclipse.datatools</groupId> <artifactId>connectivity</artifactId> <version>1.2.11</version> </dependency> <dependency> <groupId>org.eclipse.emf</groupId> <artifactId>common</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>org.eclipse.emf</groupId> <artifactId>ecore.xmi</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>org.eclipse.emf</groupId> <artifactId>ecore</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>org.eclipse.equinox</groupId> <artifactId>common</artifactId> <version>3.7.0</version> </dependency> <dependency> <groupId>org.eclipse.equinox</groupId> <artifactId>registry</artifactId> <version>3.6.0</version> </dependency> <dependency> <groupId>org.eclipse</groupId> <artifactId>osgi</artifactId> <version>3.10.100</version> </dependency> <dependency> <groupId>org.mozilla</groupId> <artifactId>javascript</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.w3c.css</groupId> <artifactId>sac</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>com.ibm</groupId> <artifactId>icu</artifactId> <version>54.1.1</version> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>text</artifactId> <version>2.1.7</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>transcoder</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>dom</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>bridge</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>dom.svg</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>parser</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>xml</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.apache.batik</groupId> <artifactId>ext.awt</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.apache</groupId> <artifactId>xerces</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.w3c.dom</groupId> <artifactId>svg</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.googlecode.juniversalchardet</groupId> <artifactId>juniversalchardet</artifactId> <version>1.0.3</version> </dependency>
eclipse+birt报表开发相关推荐
- birt报表开发01-birt安装
参考博文:birt报表开发入门 birt安装有多种方式,这边介绍一种最简单的方式(毕竟重点是学习birt的开发,不是birt的安装),直接下载带有birt插件的eclipse的软件. 下载链接:htt ...
- Eclipse BIRT使用之BIRT Designer篇(转)
Eclipse BIRT使用之BIRT Designer篇 在开源的报表工具中,Eclipse的BIRT(Business Intelligence and Reporting Tools ,简称BI ...
- BIRT:基于 Eclipse 的报表
胡键 , 西安交通大学硕士 2006 年 3 月 22 日 几乎在各种应用中,报表都具有其不可替代的作用.各类报表软件也是争奇斗艳,如今Eclipse也推出了自己的报表框架:BIRT.现在,让我们 ...
- birt报表表格边框_选开源报表开发还是商用?2020报表软件产品整理
开源报表却越来越受到程序员热烈追捧,如ireport. Jsper report.jfreechart这样的免费,开源的JAVA报表工具,在一下开源的JAVA报表相关的论坛里面都是热火朝天,发问者众多 ...
- birt报表数据只有一条_这个低代码报表开发平台,操作类似Excel,用好了不需要加班...
现在低代码开发平台很火,能够通过零代码或少量代码就可以快速创建应用. 但是从实践结果来看,完全的零代码开发应用是不可能的,机器替代人类智慧还需要很长的路要走.但是介于两者之间的低代码模式开发应用是值得 ...
- 利用JasperReport+iReport进行Web报表开发
用JasperReport+iReport进行Web报表开发 序言 在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥 ...
- 使用JasperReport+iReport进行Web报表开发
使用JasperReport+iReport进行Web报表开发 前言 在实际工程中非常,报告是其中很重要的一部分,结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥有复杂表头的.多维 ...
- birt 报表与润乾报表对比
BIRT,全称Business Intelligence and Reporting Tools,是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,它的特点在于以 Java 和 Jav ...
- 免费开源JAVA报表工具对比 BIRT报表VS润乾报表之初体验
前一段时间,被导师安排对报表开发工具做调研,之后就一度泡在各大博客.论坛里,尽可能全面的搜集了几款报表工具的优缺点,攒成了<java报表工具报表软件选型经验总结分享>.不过大多都是直接抄的 ...
最新文章
- android数据库降级_android——数据库版本升/降级问题
- python timer使用-关于定时器的两种使用方法
- matlab 老照片处理,matlab实现PS算法之百叶窗、老照片
- 京东AI NLP高阶实训学习笔记
- 添加vlan后无法上网_VLAN攻击如何有效防范?搞定虚拟局域网就在以下三点
- 【剑指offer】面试题56 - II:数组中数字出现的次数 II(Java)
- 【资源】《可解释的机器学习》,让机器学习不再神秘!
- Subversion 安装文件及操作手册
- 华工计算机学院专硕分数线,2017华南理工大学
- c语言三角函数乘法怎么表示,这个图里的三角函数 要怎么用c语言打出来
- 傻傻弄不清楚SAP和ERP?
- 从前端到管理者,小i机器人成长体验如何?
- 2022 社招 | 趋势科技 Linux开发 面经
- .NET pfx文件解析私钥和公钥
- vivo Y79的Usb调试模式在哪里,打开vivo Y79Usb调试模式的方法
- 计算机ps2定义,软件硬件界面接口定义 bt656 硬件接口定义
- 【本人秃顶程序员】程序员不要去这样的公司
- 网络营销存在的安全问题
- 设计模式之--迭代器模式
- 浅谈:基于物联网的固定资产管理技术
热门文章
- 关于解决package.xml编译时出现run_depend, bulid_depend问题
- deepin linux--安装virtualbox
- 国产达梦数据库使用心得
- linux重定向logcat,logcat重定向adb命令.doc
- STM32单片机入门学习笔记——定时器TIM第三部分
- Android TV Leanback (八)(引导步骤)
- SQL*Plus的基本操作
- strtotime用法
- php strtotime,php strtotime不起作用
- pytorch写cnn