JasperReport和iReport版本的问题
? 一:如果版本不匹配,预览是什么东西也都看不到
?
中文乱码的问题
二:就是要下个包iTextAsian.jar? 并且要放在iReport的lib目录下面
????? 再就是在新建field等的时候要把PFD Font Name 里选STSong-Light
???? PDF Embedded? PDF Encoding前面打上勾下拉框里选UniGB-UCS2-H (Chinese Simplified)
?
iReport是如何工作的?
三:对于这个问题,我想得比较久了,找资料也是有限,所以就一直没弄明白它是怎么部署到我们jsp页面运用上去的,一整个工作的原理没清楚,后来总算理解了,其实很简单的,大家别笑话我呀……
???? 下面是jsp代码?? 是实现套打的代码
?
?
<% ? String id = request.getParameter("paramId");//这个id是传到iReport里面去的 ?%> ??<% ???//报表编译之后生成的.jasper 文件的存放位置 ???//File reportFile = new File(application ????//?.getRealPath("/test.jasper")); ???File reportFile = new File("D://Program Files//JasperSoft//iReport-2.0.3//biao1.jasper"); ???//这个是用来联接我的SQL Server 的JDBC URL ???String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=cmtony"; ???Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") ?????.newInstance(); ???//传递报表中用到的参数值 ???Map parameters = new HashMap(); ???//"Name"是报表中定义过的一个参数名称,其类型为String 型 ???parameters.put("id",new String(id)); ???System.out.println("---------conn-------------"); ???//连接到数据库 ???Connection conn = DriverManager.getConnection(url,"sa","sa"); ???System.out.println("---------Jasper begin-------------"); ???//在控制台显示一下报表文件的物理路径 ???System.out.println(reportFile.getPath()); ???byte[] bytes = JasperRunManager.runReportToPdf( ?????reportFile.getPath(),parameters,conn); ???System.out.println("---------Jasper end-------------"); ???response.setContentType("application/pdf"); ???response.setContentLength(bytes.length); ???ServletOutputStream ouputStream = response.getOutputStream(); ???ouputStream.write(bytes,bytes.length); ???ouputStream.flush(); ???ouputStream.close(); ??%>
?
工作原理:iReport 中建立-------执行动态报表会长生一个*.jasper文件
???????????????? iReport只要运行这一次就可以了,以后我们每次运行jsp里面的代码就可以直接读取这个文件,就可以生成你想要的 pdf或是别的格式的报表,参数可以从这个页面传到*.jasper文件,这个文件就会可以根据这个参数到数据查询出你想要的数据,当然要开始在iReport中设置这个参数,还要写报表查询语句
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|