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

📄 statisticaction.java

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

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import cn.edu.hlju.oa.kygl.util.GlobalUtil;
import cn.edu.hlju.oa.kygl.statistic.StatisticDSFactory;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import cn.edu.hlju.oa.kygl.db.DBConnection;
import java.sql.Connection;

public class StatisticAction 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");
        /**
         * action=null的情况是从左侧工具栏直接到达的结果。
         * 而statisticQueryCommit是提交查询动作
         */
        if( action == null)
            action = "statisticQuery";
        else if( action.equals("statisticQueryCommit") ){
                action = "statisticWhole";
        }

        if( action.equals("statisticQuery")){
            actionType=STATISTIC_QUERY;
            actionPage="StatisticQuery.jsp";
        }else if( action.equals("statisticWhole") ){
            actionType=STATISTIC_WHOLE;
            actionPage="StatisticWholeViewer.jsp";
        }else if( action.equals("statisticWholeProject") ){
            actionType=STATISTIC_PROJECT;
            actionPage="StatisticGeneralViewer.jsp";
        }else if( action.equals("statisticWholeAward") ){
            actionType=STATISTIC_AWARD;
            actionPage="StatisticGeneralViewer.jsp";
        }else if( action.equals("statisticWholeResult") ){
            actionType=STATISTIC_RESULT;
            actionPage="StatisticGeneralViewer.jsp";
        }else if( action.equals("statisticWholeArticle") ){
            actionType=STATISTIC_ARTICLE;
            actionPage="StatisticGeneralViewer.jsp";
        }else if( action.equals("statisticWholePaper") ){
            actionType=STATISTIC_PAPER;
            actionPage="StatisticGeneralViewer.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 {
        String action=request.getParameter("action");
        if( action != null && action.equals("statisticQueryCommit")){
            //检查用户是否点了输入人事姓名和编号之后又没有输入
            String checked = request.getParameter("check"); //获得是否输入了人员的姓名
            //如果用户未选择输入人员姓名,这一项应该是null
            if (checked != null) {
                if (request.getParameter("ryxm").equals("") ||
                    request.getParameter("rsbh").equals("")  )
                    throw new Exception("必须输入要查询的人的姓名和其相应的人事编号!");
            }
        }
    }


    /**
     * 执行业务逻辑的操作
     */
    String ryxm = null;//人员姓名
    String rsbh = null;//人事编号

    void executeBusiniess(HttpServletRequest request, HttpServletResponse response) throws Exception {

        //是否是重点实验室
        String isILabStr = request.getParameter("isILab");
        String iLabBm    = null;
        boolean isILab = false;
        if( isILabStr != null ){
            isILab = isILabStr.equals("true");
            if( isILab)
                iLabBm = request.getParameter("iLabSelection");
        }

        //分类处理动作-------------------------------------------
        switch (actionType) {
          case STATISTIC_QUERY: {
              TreeMap map = GlobalUtil.getILabInfo("001");
              TreeMap ministryInfo = GlobalUtil.getMinistryInfo();
              request.setAttribute("ILabInfo",map);
              request.setAttribute("MinistryInfo",ministryInfo);
              ryxm = null;
              rsbh = null;
          }
          break; //科研整体信息
          case STATISTIC_WHOLE: {
              ryxm = request.getParameter("ryxm");//获得人员姓名
              if( ryxm != null )
                  ryxm = ryxm.substring(ryxm.indexOf(".")+1);
              rsbh = request.getParameter("rsbh");//获得该人的编号

              int startYear = Integer.parseInt(request.getParameter("startYear"));
              int endYear   = Integer.parseInt(request.getParameter("endYear"));

              ArrayList wholeBeans = StatisticDSFactory.createWholeDS(startYear,endYear,ryxm,rsbh,isILab,iLabBm);
              ArrayList titles = new ArrayList();
              titles.add("年度");
              titles.add("项目信息");
              titles.add("获奖信息");
              titles.add("成果/专利信息");
              titles.add("著作信息");
              titles.add("论文信息");
              request.setAttribute("DataSource", wholeBeans);
              request.setAttribute("StartYear", startYear);
              request.setAttribute("EndYear", endYear);
              request.setAttribute("Ryxm",ryxm);
              request.setAttribute("Rsbh",rsbh);
              request.setAttribute("IsILab",isILabStr);
              request.setAttribute("ILabSelection",iLabBm);
          }
          break; //项目整体信息
          case STATISTIC_PROJECT: {
              /*String ryxm = request.getParameter("ryxm");//获得人员姓名
              ryxm = ryxm.substring(0,ryxm.length()/2);
              String rsbh = request.getParameter("rsbh");//获得该人的编号*/

              Connection conn = DBConnection.getConnection();
              int startYear = Integer.parseInt(request.getParameter("startYear"));
              int endYear = Integer.parseInt(request.getParameter("endYear"));
              ArrayList ds = StatisticDSFactory.createWholeProjectDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);

              StringBuffer bmmcQueryBuf = new StringBuffer();
              bmmcQueryBuf.append("SELECT bz FROM ky_kyxtbmb WHERE bmfl='007' AND bm>'00000' GROUP BY bz ORDER BY bm");
              PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
              ResultSet bzRs = bmmcStmt.executeQuery();
              ArrayList<String> titles = new ArrayList<String>();
              titles.add("年度");
              while (bzRs.next()) {
                  titles.add(bzRs.getString(1));
              }

              request.setAttribute("DataSource", ds);
              request.setAttribute("Titles", titles);
              request.setAttribute("StartYear", startYear);
              request.setAttribute("EndYear", endYear);
              request.setAttribute("ChartTitle", "整体科研项目趋势图");
              request.setAttribute("PageTitle", "整体项目统计信息");
              DBConnection.releaseConnection(conn);
          }
          break;
          case STATISTIC_AWARD: {
              /*String ryxm = request.getParameter("ryxm");//获得人员姓名
              ryxm = ryxm.substring(0,ryxm.length()/2);
              String rsbh = request.getParameter("rsbh");//获得该人的编号*/

              Connection conn = DBConnection.getConnection();
              int startYear = Integer.parseInt(request.getParameter("startYear"));
              int endYear = Integer.parseInt(request.getParameter("endYear"));
              ArrayList ds = StatisticDSFactory.createWholeAwardDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);

              StringBuffer bmmcQueryBuf = new StringBuffer();
              bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='011' AND bm>'00000' ORDER BY bm");
              PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
              ResultSet bzRs = bmmcStmt.executeQuery();
              ArrayList<String> titles = new ArrayList<String>();
              titles.add("年度");
              while (bzRs.next()) {
                  titles.add(bzRs.getString(2));
              }

              request.setAttribute("DataSource", ds);
              request.setAttribute("Titles", titles);
              request.setAttribute("StartYear", startYear);
              request.setAttribute("EndYear", endYear);
              request.setAttribute("ChartTitle", "整体科研获奖趋势图");
              request.setAttribute("PageTitle", "整体获奖统计信息");
              DBConnection.releaseConnection(conn);
          }
          break;
          case STATISTIC_RESULT: {
              /*String ryxm = request.getParameter("ryxm");//获得人员姓名
              ryxm = ryxm.substring(0,ryxm.length()/2);
              String rsbh = request.getParameter("rsbh");//获得该人的编号*/

              Connection conn = DBConnection.getConnection();
              int startYear = Integer.parseInt(request.getParameter("startYear"));
              int endYear = Integer.parseInt(request.getParameter("endYear"));
              ArrayList ds = StatisticDSFactory.createWholeResultDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);

              StringBuffer bmmcQueryBuf = new StringBuffer();
              bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='014' AND bm>'00000' ORDER BY bm");
              PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
              ResultSet bzRs = bmmcStmt.executeQuery();

              ArrayList<String> titles = new ArrayList<String>();
              titles.add("年度");
              while (bzRs.next()) {
                  titles.add(bzRs.getString(2));
              }

              request.setAttribute("DataSource", ds);
              request.setAttribute("Titles", titles);
              request.setAttribute("StartYear", startYear);
              request.setAttribute("EndYear", endYear);
              request.setAttribute("ChartTitle", "整体科研成果/专利趋势图");
              request.setAttribute("PageTitle", "整体成果/专利统计信息");
              DBConnection.releaseConnection(conn);
          }
          break;
          case STATISTIC_ARTICLE: {
              /*String ryxm = request.getParameter("ryxm");//获得人员姓名
              ryxm = ryxm.substring(0,ryxm.length()/2);
              String rsbh = request.getParameter("rsbh");//获得该人的编号*/

              Connection conn = DBConnection.getConnection();
              int startYear = Integer.parseInt(request.getParameter("startYear"));
              int endYear = Integer.parseInt(request.getParameter("endYear"));
              ArrayList ds = StatisticDSFactory.createWholeArticleDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);

              StringBuffer bmmcQueryBuf = new StringBuffer();
              bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='009' AND bm>'00000' ORDER BY bm");
              PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
              ResultSet bzRs = bmmcStmt.executeQuery();

              ArrayList<String> titles = new ArrayList<String>();
              titles.add("年度");
              while (bzRs.next()) {
                  titles.add(bzRs.getString(2));
              }

              request.setAttribute("DataSource", ds);
              request.setAttribute("Titles", titles);
              request.setAttribute("StartYear", startYear);
              request.setAttribute("EndYear", endYear);
              request.setAttribute("ChartTitle", "整体科研著作趋势图");
              request.setAttribute("PageTitle", "整体著作统计信息");
              DBConnection.releaseConnection(conn);
          }
          break;
          case STATISTIC_PAPER: {
            /*String ryxm = request.getParameter("ryxm");//获得人员姓名
            ryxm = ryxm.substring(0,ryxm.length()/2);
            String rsbh = request.getParameter("rsbh");//获得该人的编号*/

            Connection conn = DBConnection.getConnection();
            int startYear = Integer.parseInt(request.getParameter("startYear"));
            int endYear = Integer.parseInt(request.getParameter("endYear"));
            ArrayList ds = StatisticDSFactory.createWholePaperDS(startYear, endYear,ryxm,rsbh,isILab,iLabBm);

            StringBuffer bmmcQueryBuf = new StringBuffer();
            bmmcQueryBuf.append("SELECT bm,bmmc FROM ky_kyxtbmb WHERE bmfl='008' AND bm>'00000' ORDER BY bm");
            PreparedStatement bmmcStmt = conn.prepareStatement(bmmcQueryBuf.toString());
            ResultSet bzRs = bmmcStmt.executeQuery();

            ArrayList<String> titles = new ArrayList<String>();
            titles.add("年度");
            while (bzRs.next()) {
                titles.add(bzRs.getString(2));
            }

            request.setAttribute("DataSource", ds);
            request.setAttribute("Titles", titles);
            request.setAttribute("StartYear", startYear);
            request.setAttribute("EndYear", endYear);
            request.setAttribute("ChartTitle", "整体科研论文趋势图");
            request.setAttribute("PageTitle", "整体论文统计信息");
            DBConnection.releaseConnection(conn);
          }
          break;
        }
  }

  //我的图标测试
  public static void main(String[] s){
  }
}

⌨️ 快捷键说明

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