⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ilabmemberinfoaction.java

📁 报表,关于ireport报表的一些源码(转)
💻 JAVA
字号:
package cn.edu.hlju.oa.kygl.action;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JRDataSource;
import cn.edu.hlju.oa.kygl.db.DBConnection;
import java.sql.*;
import java.text.SimpleDateFormat;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.JREmptyDataSource;
import cn.edu.hlju.oa.kygl.util.GlobalUtil;

public class ILabMemberInfoAction extends GeneralAction {
    /**
    * 一些预处理操作
    *
    * @param request HttpServletRequest
    * @param response HttpServletResponse
    * @throws Exception
    * @todo Implement this cn.edu.hlju.oa.kygl.action.GeneralAction method
    */
   void preProcess(HttpServletRequest request, HttpServletResponse response) throws Exception {
       request.setCharacterEncoding("UTF-8");

       String action=request.getParameter("action");
        if( action == null)
            action = "reportQuery";

        if( action.equals("reportQuery")){
            actionType=REPORT_QUERY;
            actionPage="ILabOnlyQuery.jsp";
        }else if(action.equals("reportPreview")){
            actionType=REPORT_PREVIEW;
             //进入到打印预览页面
            actionPage="GeneralHTMLReportViewer.jsp";
         }

   }

   /**
    * 验证操作
    *
    * @param request HttpServletRequest
    * @param response HttpServletResponse
    * @throws Exception
    * @todo Implement this cn.edu.hlju.oa.kygl.action.GeneralAction method
    */
   void validate(HttpServletRequest request, HttpServletResponse response) throws Exception {
   }


   /**
    * 执行业务逻辑的操作
    *
    * @param request HttpServletRequest
    * @param response HttpServletResponse
    * @throws Exception
    * @todo Implement this cn.edu.hlju.oa.kygl.action.GeneralAction method
    */
   void executeBusiniess(HttpServletRequest request, HttpServletResponse response) throws Exception {
       switch (actionType) {
       case REPORT_QUERY:{
          TreeMap map = GlobalUtil.getILabInfo("001");
          request.setAttribute("QueryTitle","实验室人员知识,年龄结构情况");
          request.setAttribute("ActionName","ILabMemberInfoAction");
          request.setAttribute("ILabInfo",map);
      }
      break;

       case REPORT_PREVIEW: {
           ServletContext context = this.getServletConfig().getServletContext();
           String filePath = context.getRealPath("/Reports/实验室人员知识年龄结构情况/实验室人员知识年龄结构情况.jasper");
           //获得重点实验室的编码
           String iLabBm = request.getParameter("ILabSelection");

           //生成对Jasper文件的引用
           File reportFile = new File(filePath);
           if (!reportFile.exists())
               throw new JRRuntimeException(
                       "File WebappReport.jasper not found. The report design must be compiled first.");

           Connection conn = DBConnection.getConnection();
           String tPostQuery = "SELECT rsbh,zc,sr FROM rsda_jbxx";
           Statement stmt = conn.createStatement();
           ResultSet rs = stmt.executeQuery(tPostQuery);

           SimpleDateFormat ymdFormat = new SimpleDateFormat("yyyy:MM");
           Calendar calendar = Calendar.getInstance();

           int sNum=0,mNum=0,pNum=0,oNum=0,totalNum=0,youngNum=0,middleNum=0,middlePlusNum=0;
           while( rs.next() ){
               //职称信息
               String zc = rs.getString(2);//获得职称
               if( zc.equals("教授") || zc.equals("副教授") ){
                   sNum++;
                   totalNum++;
               }else if(zc.equals("讲师") || zc.equals("工程师") ){
                   mNum++;
                   totalNum++;
               }else if( zc.equals("助教") ){
                   pNum++;
                   totalNum++;
               }else{
                   oNum++;
                   totalNum++;
               }
               //年龄信息
               String ageInfo = rs.getString(3);//获得生日的信息
               java.util.Date birthday = ymdFormat.parse(ageInfo);
               calendar.setTime(birthday);
               int birthYear = calendar.get(Calendar.YEAR);
               calendar.setTime(new java.util.Date());
               int currentYear = calendar.get(Calendar.YEAR);
               int age = currentYear-birthYear;
               if( age<=35 )
                   youngNum++;
               else if( 35<age && age<=50 )
                   middleNum++;
               else
                   middlePlusNum++;
           }

           Map parameters = new HashMap();
           parameters.put("seniorPerson",sNum==0?"":String.valueOf(sNum));
           parameters.put("middlePerson",mNum==0?"":String.valueOf(mNum));
           parameters.put("primaryPerson",pNum==0?"":String.valueOf(pNum));
           parameters.put("otherPerson",oNum==0?"":String.valueOf(oNum));
           parameters.put("totalPerson",totalNum==0?"":String.valueOf(totalNum));
           parameters.put("youngPersonNum",youngNum==0?"":String.valueOf(youngNum));
           parameters.put("middleAgedPersonNum",middleNum==0?"":String.valueOf(middleNum));
           parameters.put("middleAgedPlusPersonNum",middlePlusNum==0?"":String.valueOf(middlePlusNum));

           //报表装填
           JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
           JREmptyDataSource emptyDataSource = new JREmptyDataSource();
           JasperPrint jasperPrint = JasperFillManager.fillReport(
                                                       jasperReport,
                                                       parameters,
                                                       emptyDataSource);
           //JasperViewer.viewReport(jasperPrint, false);
           DBConnection.releaseConnection(conn);
           request.getSession().setAttribute("JasperPrint", jasperPrint);
           request.getSession().setAttribute("pageTitle","实验室人员知识、年龄结构情况");
       }
       break;
     }
 }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -