国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
jasperreport+jaspersoft生成報(bào)表并集成到spring boot中

最近項(xiàng)目搭建需要一個(gè)開(kāi)源報(bào)表的架子,搜索的時(shí)候找到了帆軟,雖然個(gè)人使用是免費(fèi),而且功能也很強(qiáng)大,但無(wú)奈項(xiàng)目強(qiáng)調(diào)開(kāi)源只好放棄。

后來(lái)經(jīng)同事推薦找到了jasperreport,網(wǎng)上整個(gè)搜了一遍,幾乎全是jasperreport + ireport的文章。由于自己的電腦是win10,ireport裝上之后怎么都無(wú)法運(yùn)行,只好換了JasperSoft Studio。好在JasperSoft Studio和ireport使用差不多,找ireport的教程就可以了。

廢話不多說(shuō)立馬開(kāi)始:

1.生成jasper模板

用JasperSoft Studio生成模板,參考http://blog.csdn.net/wlwlwlwl015/article/details/51312853,這位博主寫(xiě)的很詳細(xì),雖然不是同一個(gè)軟件,但是按鈕差不太多,稍微找一下即可按照教程完成模板。

我這里連接的是MySQL,注意一點(diǎn),jdbc驅(qū)動(dòng)因?yàn)椴蛔詭?,需要再連接的時(shí)候手動(dòng)指定驅(qū)動(dòng)jar包的位置。


上面是界面說(shuō)明。可根據(jù)自己的數(shù)據(jù)庫(kù)表自行設(shè)計(jì)

2.集成到項(xiàng)目中

springmvc

目前網(wǎng)上的例子大都采用了mvc,個(gè)人實(shí)驗(yàn)成功參考的文章為

http://blog.csdn.net/xht555/article/details/43409637

http://blog.csdn.net/xht555/article/details/50434772

第一個(gè)鏈接介紹了如何使用javabean為數(shù)據(jù)源生成報(bào)表,第二個(gè)鏈接解決了中文展示的問(wèn)題。

只需要下載第二個(gè)鏈接中的附件即可包含全部代碼,無(wú)需重新下載。

如果沒(méi)有csdn積分下載可以留言給我發(fā)你一份

http://blog.csdn.net/xht555/article/details/49717653這個(gè)解決了多數(shù)據(jù)源的問(wèn)題,可以參考

-----------------------------------------------------------------------------------------------------------------------

如果報(bào)了groovy相關(guān)的錯(cuò),可以更新pom.xml

  1. <dependency>  
  2.     <groupId>org.codehaus.groovy</groupId>  
  3.     <artifactId>groovy-all</artifactId>  
  4.     <version>2.4.7</version>  
  5. </dependency>  
關(guān)于中文顯示問(wèn)題,自己下載相應(yīng)jar包,調(diào)試了半天沒(méi)成功。最后還是直接用了原博主提供的itext-2.1.7.js2.jar和

itextasian-2.1.7.js2.jar兩個(gè)文件,通過(guò)本地導(dǎo)入方式加到項(xiàng)目中。

關(guān)于中文問(wèn)題可以看我最新的文章

jasper綜合使用-javabean結(jié)合實(shí)際業(yè)務(wù)-解決PDF中文

-----------------------------------------------------------------------------------------------------------------------

研究完了上面2篇文章,即可對(duì)java的使用有了一定的了解,在這基礎(chǔ)上進(jìn)行下面的內(nèi)容。

-----------------------------------------------------------------------------------------------------------------------

到目前為止成功了一半,因?yàn)轫?xiàng)目是不會(huì)用到j(luò)avabean的,還需要連數(shù)據(jù)庫(kù)才行。網(wǎng)上搜了半天jdbc數(shù)據(jù)源

沒(méi)有找到想要的結(jié)果。

  1. /** 
  2.  * 返回iReport報(bào)表視圖 
  3.  * @param model 
  4.  * @return 
  5.  */  
  6. @RequestMapping(value = "/report", method = RequestMethod.GET)  
  7. public String report(Model model) {  
  8.     // 報(bào)表數(shù)據(jù)源  
  9.     JRDataSource jrDataSource = new JRBeanCollectionDataSource(JavaBeanPerson.getList());  
  10.       
  11.     // 動(dòng)態(tài)指定報(bào)表模板url  
  12.     model.addAttribute("url", "/WEB-INF/jasper/MvcIReportExample.jasper");  
  13.     model.addAttribute("format", "pdf"); // 報(bào)表格式  
  14.     model.addAttribute("jrMainDataSource", jrDataSource);  
  15.       
  16.     return "iReportView"; // 對(duì)應(yīng)jasper-defs.xml中的bean id  
  17. }  

上面是javabean數(shù)據(jù)源的代碼片段,這已經(jīng)包含在上面下載的代碼之中。在研究使用jdbc連接的時(shí)候

http://antlove.iteye.com/blog/2149920只參考ConnectionProvider.java這一段即可)這篇文章給了我一些思路,文章

里面的ConnectionProvider.java文件建立了數(shù)據(jù)連接,還需要將查詢結(jié)果作為datasource給jasper。

依照文章創(chuàng)建好ConnectionProvider.java文件。

同時(shí)參考這篇文章http://www.yiibai.com/jasper_reports/jasper_report_data_sources.html的介紹知道了jdbc作為數(shù)據(jù)源

的實(shí)現(xiàn),如下圖:


之前的代碼片段我們用到了JRBeanCollectionDataSource,這里我們要改變?yōu)?/span>JRResultSetDataSource(ResultSet resultSet),到了這一步兩邊連接上了,見(jiàn)如下代碼:

  1. package com.pes_soft.example;  
  2.   
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.sql.Statement;  
  6. import java.text.DateFormat;  
  7. import java.util.Date;  
  8. import java.util.Locale;  
  9.   
  10. import net.sf.jasperreports.engine.JRDataSource;  
  11. import net.sf.jasperreports.engine.JRResultSetDataSource;  
  12. import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;  
  13.   
  14. import org.slf4j.Logger;  
  15. import org.slf4j.LoggerFactory;  
  16. import org.springframework.stereotype.Controller;  
  17. import org.springframework.ui.Model;  
  18. import org.springframework.web.bind.annotation.RequestMapping;  
  19. import org.springframework.web.bind.annotation.RequestMethod;  
  20.   
  21. import com.pes_soft.example.datasource.JdbcConnectionProvider;  
  22. import com.pes_soft.example.model.JavaBeanPerson;  
  23.   
  24. /** 
  25.  * Handles requests for the application home page. 
  26.  */  
  27. @Controller  
  28. public class HomeController {  
  29.       
  30.     private static final Logger logger = LoggerFactory.getLogger(HomeController.class);  
  31.     private static final String queryStr = "打開(kāi)jrxml文件找你的sql查詢語(yǔ)句到這里";  
  32.   
  33.     /** 
  34.      * Simply selects the home view to render by returning its name. 
  35.      */  
  36.     @RequestMapping(value = "/", method = RequestMethod.GET)  
  37.     public String home(Locale locale, Model model) {  
  38.         logger.info("Welcome home! The client locale is {}.", locale);  
  39.           
  40.         Date date = new Date();  
  41.         DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);  
  42.           
  43.         String formattedDate = dateFormat.format(date);  
  44.           
  45.         model.addAttribute("serverTime", formattedDate );  
  46.           
  47.         return "home";  
  48.     }  
  49.       
  50.     /** 
  51.      * 返回iReport報(bào)表視圖 
  52.      * @param model 
  53.      * @return 
  54.      */  
  55.     @RequestMapping(value = "/report", method = RequestMethod.GET)  
  56.     public String report(Model model) {  
  57.         // 報(bào)表數(shù)據(jù)源  
  58.         JRDataSource jrDataSource = new JRBeanCollectionDataSource(JavaBeanPerson.getList());  
  59.           
  60.         // 動(dòng)態(tài)指定報(bào)表模板url  
  61.         model.addAttribute("url", "/WEB-INF/jasper/MvcIReportExample.jasper");  
  62.         model.addAttribute("format", "pdf"); // 報(bào)表格式  
  63.         model.addAttribute("jrMainDataSource", jrDataSource);  
  64.           
  65.         return "iReportView"; // 對(duì)應(yīng)jasper-defs.xml中的bean id  
  66.     }  
  67.       
  68.     /** 
  69.      * 返回iReport報(bào)表視圖,支持PDF顯示中文 
  70.      * @param model 
  71.      * @return 
  72.      */  
  73.     @RequestMapping(value = "/reportChs", method = RequestMethod.GET)  
  74.     public String reportChs(Model model) {  
  75.         // 報(bào)表數(shù)據(jù)源  
  76.         JRDataSource jrDataSource = new JRBeanCollectionDataSource(JavaBeanPerson.getListChs());  
  77.                   
  78.         // 動(dòng)態(tài)指定報(bào)表模板url  
  79.         model.addAttribute("url", "/WEB-INF/jasper/MvcIReportChsExample.jasper");  
  80.         model.addAttribute("format", "pdf"); // 報(bào)表格式  
  81.         model.addAttribute("jrMainDataSource", jrDataSource);  
  82.           
  83.         return "iReportView";  
  84.     }  
  85.       
  86.     /** 
  87.      * 用jdbc為數(shù)據(jù)源,查詢?表 
  88.      * @param model 
  89.      * @return 
  90.      */  
  91.     @RequestMapping(value = "/jdbcUser", method = RequestMethod.GET)  
  92.     public String reportJdbcUser(Model model) {  
  93.         try {  
  94.             // 報(bào)表數(shù)據(jù)源  
  95.             Statement stmt = JdbcConnectionProvider.getConnection()  
  96.                     .createStatement();  
  97.             //JdbcConnectionProvider為前面建立的mysql連接文件  
  98.             ResultSet rs = stmt.executeQuery(queryStr);//執(zhí)行query語(yǔ)句得到結(jié)果  
  99.             JRDataSource jrDataSource = new JRResultSetDataSource(rs);  
  100.   
  101.             // 動(dòng)態(tài)指定報(bào)表模板url  
  102.             model.addAttribute("url", "/WEB-INF/jasper/?.jasper");  
  103.             //填入你的模板文件  
  104.             model.addAttribute("format", "pdf"); // 報(bào)表格式  
  105.             model.addAttribute("jrMainDataSource", jrDataSource);  
  106.         } catch (SQLException e) {  
  107.             // TODO Auto-generated catch block  
  108.             e.printStackTrace();  
  109.         }  
  110.         return "iReportView";  
  111.     }  
  112. }  

    如上,即完成了jdbc數(shù)據(jù)源的報(bào)表。

還有一些問(wèn)題,sql語(yǔ)句本來(lái)在模板文件中有,不應(yīng)該寫(xiě)到程序文件中,這里只是簡(jiǎn)單實(shí)現(xiàn),沒(méi)有考慮優(yōu)化的問(wèn)題。更簡(jiǎn)單的集成到springboot中來(lái)使用,見(jiàn)下一篇博客,http://blog.csdn.net/pspr2/article/details/72901673。

更多文章參閱http://blog.csdn.net/zhaodandan19910306/article/category/1347861

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
<h3 style="color: rgb(0, 0, 0); font-family: 'ms song', 'Microsoft Yahei', SimHei, Verdana, Helvetic
Java操作pdf: JarsperReport的簡(jiǎn)單使用
SpringMVC學(xué)習(xí)系列(8) 之 國(guó)際化
辦公業(yè)務(wù)資源系統(tǒng)
iReport學(xué)習(xí)筆記
Java開(kāi)源報(bào)表JasperReport、iReport4.5.1使用詳解(三)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服