zoukankan      html  css  js  c++  java
  • jasperReport Studio java报表设计(详细)

    一、环境搭建

      在spring-mvc.xml加入

    <!-- jasperReports-->
    <import resource="classpath*:spring-mvc-jasperreports.xml"/>
    spring-mvc-jasperreports.xml具体配置代码:

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
    <!-- jasperReports报表集成视图解析器 -->
    <bean id="jasperReportsViewResolver"
    class="org.springframework.web.servlet.view.jasperreports.JasperReportsViewResolver">
    <!-- 执行优先级,值越小优先级越高 -->
    <property name="order" value="0"/>
    <!-- 处理视图返回 -->
    <property name="viewClass" value="com.silverdata.smart.report.jasperreports.JasperReportsView"/>
    <property name="prefix" value="/WEB-INF/jasper/"/>
    <property name="suffix" value=".jasper"/>
    <!-- 可通过配置此项用来过滤是否执行此视图解析器 -->
    <!-- <property name="viewNames" value="rpt*"/> -->
    <!-- 报表数据源 -->
    <property name="jdbcDataSource" ref="dataSource"/>
    <!-- 扩展参数 -->
    <property name="exporterParameters">
    <map>
    <!-- 指定格式报表的内容编码 -->
    <entry key="net.sf.jasperreports.engine.JRExporterParameter.CHARACTER_ENCODING">
    <value>UTF-8</value>
    </entry>
    <!-- 通过Web访问时图片的URI -->
    <!-- <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI">
    <value type="java.lang.String">/jasper/image.jsp?image=</value>
    </entry> -->
    <!-- 图片目录的绝对路径 -->
    <!-- <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_DIR_NAME">
    <value type="java.lang.String">D:\work\***\framework\tmp</value>
    </entry> -->
    <!-- 是否输出图片到目录 -->
    <!-- <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR">
    <value type="java.lang.String">true</value>
    </entry> -->
    </map>
    </property>
    </bean>
    </beans>

    jar包需要:
    <!-- jasperreports -->
    <dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    </dependency>
    <dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    </dependency>

    二、jasperreports报表设计步骤

    1.新建项目配置jar包

    若jar包unbond未找到~检查是否目录路径是纯英文的~中文不识别

    2.新建报表模版~一般中国的报表直接用空白A4去做

    3.若要用测试数据展现表格配置

    然后根据需要查询字段表~加入测试数据一般也不使用

    4.页面设计

    5.配置

     

    样式

     编译

    java代码部分:

    开发代码:
    public ModelAndView apply(ModelAndView modelAndView,@PathVariable("id") Long id) {
      注释部分为二维码生成
    /*List<Order> list = Lists.newArrayList();
    Order order;
    for (int i = 0; i < 100; i++) {
    order = new Order(i, "供应商" + i, "厦门市" + i + "号楼", i % 2 == 0 ? "厦门" : "周口", new Timestamp(System.currentTimeMillis()));
    list.add(order);
    }
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    QRCodeUtils.encode("PE12873619284611231213", 100, 100, byteArrayOutputStream);

    InputStream file = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());

    Map<String, Object> m = new HashMap<String, Object>();
    m.put("QRCodeString", "PE12873619284611231213");
    m.put("QRCode", file);
    m.put("image", "E:\ideaWorkSpace\pipegallery\pipegallery-operation\src\main\webapp\WEB-INF\jasper\silhouette.jpg");
    return ReportUtils.toPdf("Silhouette4", m, list);*/

    List<ApplyDetails> applyDetailsList = Lists.newArrayList();
    Map<String, Object> m = new HashMap<String, Object>();
    List<Map> list =materialsIeApplyDetailsService.getAllByDynamicWhere(id);
    MaterialsIeApply materialsIeApply=materialsIeApplyService.get(id);
    m.put("APPLICANT",materialsIeApply.getApplicant());//申请人
    m.put("ORDERNO",materialsIeApply.getOrderno());
    m.put("IEAPPLYTYPE","0".equals(materialsIeApply.getIeApplyType())?"租用":"使用");
    m.put("PLANGETDATE",materialsIeApply.getPlanGetDate());//领用时间
    m.put("PLANRETURNDATE",materialsIeApply.getPlanReturnDate());//归还时间
    m.put("AUDIT",materialsIeApply.getAuditId());//审核人
    m.put("AUDITDATE",materialsIeApply.getApplyDate());//审核时间
    //(0未提交、1待审核、2已审核、3未通过、4打回、5部分出库、6全部出库、7作废)
    m.put("APPROVALSTATE", ReturnMaterialsIeApplyString.returnString(materialsIeApply.getApprovalState()));//申请单状态
    m.put("APPLYDATE",materialsIeApply.getApplyDate());//申请提交时间
    m.put("REASON",materialsIeApply.getReason());
    m.put("REMARK",materialsIeApply.getRemark());
    m.put("AUDITOPINION",materialsIeApply.getAuditOpinion());//审核意见
    ApplyDetails applyDetails;
    for (Map map:list){
    applyDetails=new ApplyDetails(map.get("materialsname").toString(),map.get("suppliername").toString(),Integer.parseInt(map.get("amount").toString()),map.get("remark").toString(),map.get("spec").toString(),"1");
    applyDetailsList.add(applyDetails);
    }
    return ReportUtils.toPdf("MaterialsIeApply", m, applyDetailsList);
    }

  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/chenweida/p/7832533.html
Copyright © 2011-2022 走看看