返回dqilu博客列表

Tiny3.0与iReport(JasperReports) 整合

摘要
Tiny3.0与iReport(JasperReports)整合的方法拿出来,请大家多指点。

reports.xml

mvc-beans.xml

pom.xml

Tiny Framework是一个基于J2EE技术的应用开发框架,可以用来开发各种Java Application和Web Application。最近推出了3.0版,性能得到了很大提升,下面将Tiny3.0与iReport(JasperReports)整合的方法拿出来,请大家多指点。

1、mvc-beans.xml文件中增加如下配置内容:

    <!-- JasperReport 报表配置 -->

    <bean class="org.springframework.web.servlet.view.XmlViewResolver"  id="reportViewResolver">

        <property name="order" value="10"/>

        <property name="location" value="classpath:reports.xml"/>

</bean> 

通过reports.xml来配置相应的报表和打印文件。

2、Reports.xml中的配置内容如下:

<bean id="userReport" class="org.springframework.web.servlet.view.jasperreports.JasperReport sMultiFormatView">

        <property name="url" value="classpath:/report/user.jasper" />

        <property name="jdbcDataSource" ref="dynamicDataSource" />

</bean>

Url属性用来指定iReport生成的报表打印文件,不会用iReport的请大家百度。

jdbcDataSource用来指定报表文件需要的数据源

3、Pom.xml中增加相应的依赖

      <dependency>

        <groupId>net.sf.jasperreports</groupId>

        <artifactId>jasperreports</artifactId>

        <version>6.3.1</version>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-context-support</artifactId>

        <version>4.3.2.RELEASE</version>

      </dependency>

4、Controller中的实现

    /**

     * 打印页面跳转

     *

     * @return

     */

    @RequestMapping("print")

    public ModelAndView goPrint(String userId, HttpServletRequest req) {


         Map<String, String> model = new HashMap<String, String>();  

      

        //这段代码是按用户操作分别返回pdfexcel格式的报表  

        if (req.getParameter("excel") != null) {  

            model.put("format", "xls");  

        } else {  

            model.put("format", "pdf");  

        }  

 

        model.put("userid",userId);

        return new ModelAndView("userReport", model);    

    }

Model用来传递报表需要的参数

5、自己编写了一个ui组件

    #macro dialogPrint(dialogId dialogMap)

<div id="${dialogId}" class="modal hide fade " role="dialog"       aria-hidden="true"#mapToHtml(dialogMap)>

      <div>

        <span data-expand="modal" >#faIcon("expand")</span>

        <span data-dismiss="modal" aria-hidden="true">   #faIcon("remove")</span>

        <h3>打印窗口</h3>

      </div>

      <div class="modal-body thin-scroll">

            <iframe id="prtframe" src="" width="100%" height="100%" frameborder="0"> </iframe>

      </div>

      <div class="modal-footer ">

            <button class="btn radius" data-dismiss="modal" aria-hidden="true">关闭 </button>

      </div>

   </div>

<script type="text/javascript">

     $(function(){

         $("#${dialogId}").on("close",function(e){

             $(this).modal('hide');

         })

     });

     function doPrint(urlsrc){

         $("#prtframe").attr("src", urlsrc);

         $("#${dialogId}").modal({ show: true});

     }

</script>

#end

6、在page页面中的调用方法

由于在组件中定义了个doPrint(urlsrc)函数,调用时直接传入参数直接调用即可。

<a title="打印" onclick="doPrint('print?userId={id}');" >#faIcon("search")</a>

#dialogPrint("myPrintModal",{"data-height":"600","data-width":"900"})

 

7、页面效果

 tiny3.jpg

 

 

 

 

 


 
相关信息
     标签
       附件
      文件 标题 创建者

      评分 0次评分

      返回顶部