📄 ilabmemberinfoaction.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 + -