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);
    }

  • 相关阅读:
    Ubuntu16.04 安装Teamviewer
    Redis 中的事务
    apache rewrite .htaccess 站点内容重定向实例
    PHP_EOL常量
    PHP 设计模式之适配器模式
    MYSQL优化
    php设计模式之简单工厂模式
    php设计模式之单例模式
    PHP设计模式之策略模式
    PHP 设计模式之观察者模式 (转载)
  • 原文地址:https://www.cnblogs.com/chenweida/p/7832533.html
Copyright © 2011-2022 走看看