<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.csc.library.utility.DHMConvert"%> <%@page import="java.util.ArrayList"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.Vector"%> <%@page import="java.util.*"%> <%@page import="com.csc.library.report.ReportUDF"%> <%@page import="javax.servlet.jsp.jstl.sql.Result"%> <%@page import="java.io.FileOutputStream"%> <%@page import="com.csc.library.utilities.MyLog"%> <%@page import="java.io.OutputStream"%> <%@page import="java.io.ByteArrayOutputStream"%> <%@page import="java.net.URLDecoder"%> <%@page import="java.text.DecimalFormat"%> <%@page import="java.net.URLEncoder"%> <%@page import="java.util.HashMap"%> <%@page import="java.text.SimpleDateFormat" %> <%@page import="java.util.Locale" %> <%@page import="java.util.Date" %> <%@page import="java.util.GregorianCalendar" %> <%@page import="com.csc.library.database.DataSet"%> <%@page import="com.csc.library.session.InitialInquiry"%> <%@page import="com.csc.library.session.InitialRecord"%> <%@page import="com.csc.library.utilities.UProfile"%> <%@page import="com.csc.library.utilities.CscCalendar"%> <%@page import="com.csc.library.session.DbInquiry"%> <%@page import="com.csc.library.session.DbRecord"%> <%@page import="com.csc.library.utilities.CheckNull"%> <%@page import="com.csc.library.entry.HelpEntry"%> <%@page import="com.itextpdf.text.*"%> <%@page import="com.itextpdf.text.pdf.*"%> <%@page import="java.io.ByteArrayOutputStream" %> <%@page import="com.csc.library.session.InitialEnvironment" %> <jsp:useBean id="PSR002_PDF" class="com.csc.library.system.Task" scope="page" /> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Report</title> </head> <body> Not found data <% PSR002_PDF.setChannel(request, response); HelpEntry screen = (HelpEntry) PSR002_PDF.process("HelpEntry", "PSR002_NSTDA"); CheckNull chk = new CheckNull(); screen.setMaxLine(-1); screen.inq.setFilter("employeeid ='"+chk.chkNullString(request.getParameter("__employeeid"))+"' and companyid='"+chk.chkNullString(request.getParameter("__companyid"))+"'"); screen.process(); String chk_sh = chk.chkNullString(request.getParameter("__chk_sh")); String chk_wkin = chk.chkNullString(request.getParameter("__chk_wkin")); String chk_wkout = chk.chkNullString(request.getParameter("__chk_wkout")); String chk_wa = chk.chkNullString(request.getParameter("__chk_wa")); String chk_app = chk.chkNullString(request.getParameter("__chk_app")); String chk_edu = chk.chkNullString(request.getParameter("__chk_edu")); String chk_exp = chk.chkNullString(request.getParameter("__chk_exp")); String chk_sk = chk.chkNullString(request.getParameter("__chk_sk")); String chk_expout = chk.chkNullString(request.getParameter("__chk_expout")); String chk_expin = chk.chkNullString(request.getParameter("__chk_expin")); String chk_family = chk.chkNullString(request.getParameter("__chk_family")); String chk_pvf = chk.chkNullString(request.getParameter("__chk_pvf")); ByteArrayOutputStream baos = new ByteArrayOutputStream();//72 Document document = new Document(PageSize.A4, 20, 20, 28, 36); float[] sizeColumn = new float[] {}; PdfWriter.getInstance(document, baos); document.open(); document.addTitle("Document Title"); BaseFont bf = BaseFont.createFont(application.getRealPath("FONTS/Cordia.ttf"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED); BaseFont bfHead = BaseFont.createFont(application.getRealPath("FONTS/Cordia.ttf"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true); Font font = new Font(bf, 10); Font fontTopic = new Font(bfHead, 12, Font.BOLD); Font fontHead = new Font(bfHead, 10, Font.BOLD); //fontHead.setStyle(Font.BOLD); Font fontContent = new Font(bfHead, 10); Font fontTitle = new Font(bfHead, 16, Font.BOLD); fontTitle.setStyle(Font.BOLD); // set vlign middle Phrase content = new Phrase("Blah blah blah", font); Float fontSize = content.getFont().getSize(); Float capHeight = content.getFont().getBaseFont().getFontDescriptor(BaseFont.CAPHEIGHT, fontSize); boolean hasData = false; if(screen.getInquiry().recCount() > 0) { hasData = true; screen.nextRec(); screen.referLangOn(); DbInquiry dbinq = null; int i = 0; try{ CscCalendar calendar = new CscCalendar(); SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a", Locale.ENGLISH); GregorianCalendar gc= new GregorianCalendar(); boolean langthai = screen.getUProfile().get("lang").equalsIgnoreCase("THA"); String reportname = "", printdate = "", printby = "", refer = "PRI2063"; String reportname_label = "", printdate_label = "", printby_label = "", refer_label = ""; if(langthai){ reportname_label = "รายงาน :"; reportname = "รายงานข้อมูลพนักงาน"; printdate_label = "วันที่พิมพ์ :"; printdate = "วัน"+calendar.getLongThiDOW()+"ที่ "+calendar.getDate()+ " " + calendar.getThaiLongMonth() + " พ.ศ. "+ calendar.getThaiYYYY() + " " + calendar.getHHMM() + " น."; printby_label = "พิมพ์โดย :"; printby = screen.getUProfile().get("tfullname"); refer_label = "อ้างอิง #"; } else { reportname_label = "Report Name :"; reportname = "Personal Report"; printdate_label = "Print Date :"; printdate = calendar.getEngFull()+ " " + sdf.format((Date) gc.getTime()); printby_label = "Print By :"; printby = screen.getUProfile().get("efullname"); refer_label = "Ref #"; } // --------------- Report Header ----------------- sizeColumn = new float[] {8.5f,11.5f,20.0f,13.0f,7.0f,20.0f}; PdfPTable detail = new PdfPTable(6); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); PdfPCell cellDetail; Image img = null; setPadding(0.5f); setPaddingTop(capHeight - fontSize); setPaddingBottom(4f); //setPaddingTop(1f); detail.addCell( getCellData(screen.getUProfile().get("companyname"), fontTitle, true, "LEFT", "MIDDLE", 6, 0)); // --------------- new line ----------------- setPaddingBottom(0f); detail.addCell( getCellData(reportname_label, fontHead, true, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(reportname, font, true, "LEFT", "MIDDLE", 4, 0) ); img = Image.getInstance(screen.getDataLabel("MEMPLOYEE","path_and_picture")); cellDetail = new PdfPCell(img, true); cellDetail.setHorizontalAlignment(Element.ALIGN_CENTER); cellDetail.setVerticalAlignment (Element.ALIGN_MIDDLE); cellDetail.setFixedHeight(10); cellDetail.setRowspan(5); cellDetail.setBorder(Rectangle.NO_BORDER); detail.addCell(cellDetail); // --------------- new line ----------------- detail.addCell( getCellData(printdate_label, fontHead, true, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(printdate, font, true, "LEFT", "MIDDLE", 4, 0) ); // --------------- new line ----------------- setPaddingBottom(5f); detail.addCell( getCellData(printby_label, fontHead, true, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(printby, font, true, "LEFT", "MIDDLE", 2, 0) ); detail.addCell( getCellData(refer_label, fontHead, true, "RIGHT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(refer, font, true, "RIGHT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingBottom(4f); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMPLOYEEID"), fontHead, false, "CENTER", "MIDDLE", 2, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","FULLNAME"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","NICKNAME"), fontHead, false, "CENTER", "MIDDLE", 2, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPLOYEEID"), font, false, "CENTER", "MIDDLE", 2, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","FULLNAME"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","NICKNAME"), font, false, "CENTER", "MIDDLE", 2, 0) ); // --------------- new line ----------------- document.add(detail); // --------------- Personal Detail ----------------- sizeColumn = new float[] {8.5f,11.5f,8.5f,11.5f,8.5f,11.5f}; detail = new PdfPTable(6); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); detail.addCell( getCellData(langthai ? "ประวัติส่วนตัว" : "Personal Detail", fontTopic, true, "LEFT", "MIDDLE", 6, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","SEX"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","SEX"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BIRTHDAY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); String str_birthday = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","BIRTHDAY")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","BIRTHDAY")).getDDMMYYYY(); detail.addCell( getCellData(str_birthday, font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BLOOD"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","BLOOD"), font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","ASTROLOGY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","ASTROLOGY"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMPAGES"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPAGES"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_NATIONAL"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MNATIONAL","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","STATMARRY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","STATMARRY"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_POSITION"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MPOSITION","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_NATIONALITY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MNATIONALITY","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(langthai ? "ที่อยู่" : "Address", fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("CURRENT_ADDR"), font, false, "LEFT", "MIDDLE", 5, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU1"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MBU1","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU2"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MBU2","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU3"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MBU3","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU4"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MBU4","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU5"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MBU5","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_TYPE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYMENT_TYPE","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","STATUS"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPL_STATUS","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","STARTDATE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); String str_startdate = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","STARTDATE")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","STARTDATE")).getDDMMYYYY(); detail.addCell( getCellData(str_startdate, font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","APPROVE_DATE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); String str_approvedate = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","APPROVE_DATE")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","APPROVE_DATE")).getDDMMYYYY(); detail.addCell( getCellData(str_approvedate, font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","RESIGNDATE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); String str_resigndate = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","RESIGNDATE")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","RESIGNDATE")).getDDMMYYYY(); detail.addCell( getCellData(screen.getDataLabel("MEMPL_STATUS","STATUSTYPE").equalsIgnoreCase("C") ? str_resigndate : "-", font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","SALARY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); String str_salary = new DecimalFormat("#,##0").format(screen.inq.getCurrentDbRecord().getDouble("SALARY")); detail.addCell( getCellData(str_salary, font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMAIL"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMAIL"), font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","TEL_EXT"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","TEL_EXT"), font, false, "LEFT", "MIDDLE", 1, 0) ); int personal_cell_loop = 4; if(chk_wkin.equals("1")){ detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMPWORKAGES"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPWORKAGES"), font, false, "LEFT", "MIDDLE", 1, 0) ); personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2; } if(chk_wkout.equals("1")){ detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","OUT_EXP"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","OUT_EXP"), font, false, "LEFT", "MIDDLE", 1, 0) ); personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2; } // --------------- new line ----------------- if(chk_sh.equals("1")){ detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","TIME0"), fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MTIME0","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2; } if(chk_wa.equals("1")){ detail.addCell( getCellData(langthai ? "อายุงานตำแหน่งปัจจุบัน" : "YOS in this position", fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPWORKPOS"), font, false, "LEFT", "MIDDLE", 1, 0) ); personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2; } for(int ipersonal = 0; ipersonal < personal_cell_loop; ipersonal++){ detail.addCell( getCellData("", font, true, "LEFT", "MIDDLE", 1, 0) ); } // --------------- new line ----------------- document.add(detail); // --------------- START MEMPL_FAMILY Detail ----------------- if(chk_family.equals("1")){ sizeColumn = new float[] {5.0f,55.0f,20.0f,20.0f}; detail = new PdfPTable(4); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "ข้อมูลครอบครัว" : "Family Information", fontTopic, true, "LEFT", "MIDDLE", 4, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ชื่อ - นามสกุล" : "Full Name", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ความสัมพันธ์" : "Relation", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "อาชีพ" : "Occupation", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_FAMILY"); dbinq.refresh(); i=0; while(dbinq.next()){ i++; detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("FULLNAME"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MRELATION","EDESC"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MOCCUPATION","EDESC"), font, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- } document.add(detail); } // --------------- Appraisal Detail ----------------- if(chk_app.equals("1")){ sizeColumn = new float[] {15.0f,10.0f,10.0f,10.0f,10.0f,10.0f,10.0f,25.0f}; detail = new PdfPTable(8); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "การประเมิน" : "Appraisal", fontTopic, true, "LEFT", "MIDDLE", 8, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); // --------------- new line ----------------- CscCalendar getYear = new CscCalendar(); detail.addCell( getCellData(langthai ? "ปี" : "Year", fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+543) : String.valueOf(getYear.getYear()), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+542) : String.valueOf(getYear.getYear()-1), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+541) : String.valueOf(getYear.getYear()-2), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+540) : String.valueOf(getYear.getYear()-3), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+539) : String.valueOf(getYear.getYear()-4), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+538) : String.valueOf(getYear.getYear()-5), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData("", font, true, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- detail.addCell( getCellData(langthai ? "ผลการประเมิน" : "Appraisal Score", fontHead, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE1"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE2"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE3"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE4"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE5"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData("", font, true, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- document.add(detail); } // --------------- Education Detail ----------------- if(chk_edu.equals("1")){ sizeColumn = new float[] {5.0f,14.6f,14.3f,14.3f,14.3f,14.0f,5.5f,5.5f,5.5f,7.0f}; detail = new PdfPTable(10); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "การศึกษา" : "Education", fontTopic, true, "LEFT", "MIDDLE", 10, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","DEGREEID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","BACKGROUNDID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","INSTITUE"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","FACULTY"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","MAJORID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "เกรด" : "Grade", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ปีที่เริ่ม" : "Start Year", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ถึงปี" : "End Year", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ประเทศ" : "Country", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_EDUCATE"); dbinq.refresh(); i=0; while(dbinq.next()){ i++; detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MDEGREE","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MEDUBACKGROUND","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MINSTITUE","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MFACULTY","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MMAJOR","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("GPA").equals("0") || dbinq.getString("GPA").equals("0.00") ? "-" : dbinq.getString("GPA"), font, false, "CENTER", "MIDDLE", 1, 0) ); int ys = new Integer(dbinq.getString("year_start")).intValue(); ys = langthai ? ys+543 : ys; detail.addCell( getCellData(ys > 0 ? String.valueOf(ys) : "", font, false, "CENTER", "MIDDLE", 1, 0) ); int ye = new Integer(dbinq.getString("year_end")).intValue(); ye = langthai ? ye+543 : ye; detail.addCell( getCellData(ye > 0 ? String.valueOf(ye) : "", font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MCOUNTRY","TDESC"), font, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- } document.add(detail); } // --------------- START MEMPL_PVF Detail ----------------- if(chk_pvf.equals("1")){ sizeColumn = new float[] {5.0f,10.0f,40.0f,12.0f,8.0f,15.0f,10.0f}; detail = new PdfPTable(7); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "ข้อมูลกองทุนสำรองเลี้ยงชีพ" : "Provident Fund", fontTopic, true, "LEFT", "MIDDLE", 7, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","FUNDTABLEID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "รายละเอียด" : "Description", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","AMOUNT"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "หน่วย" : "Unit", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","IDMEMBER"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","REGISTERDATE"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_PVF"); dbinq.refresh(); i=0; while(dbinq.next()){ i++; detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","FUNDTABLEID"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MFUNDTABLE","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","AMOUNT"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getCurrentDbRecord().getSystemCode("pvf_type"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","IDMEMBER"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","REGISTERDATE"), font, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- } document.add(detail); } // --------------- Education Detail ----------------- if(chk_exp.equals("1")){ sizeColumn = new float[] {5.0f,20.0f,20.0f,55.0f}; detail = new PdfPTable(4); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "ความเชี่ยวชาญ" : "Expertise", fontTopic, true, "LEFT", "MIDDLE", 4, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EXPERTISE","EXPERTID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EXPERTISE","LEVELS"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EXPERTISE","REMARKS"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_EXPERTISE"); dbinq.refresh(); i=0; while(dbinq.next()){ i++; detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MEXPERTISE","TDESC"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("LEVELS"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("REMARKS"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); // --------------- new line ----------------- } document.add(detail); } // --------------- Special Abilities Detail ----------------- if(chk_sk.equals("1")){ sizeColumn = new float[] {5.0f,75.0f,10.0f,10.0f}; detail = new PdfPTable(4); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "ความสามารถพิเศษ" : "Special Abilities", fontTopic, true, "LEFT", "MIDDLE", 4, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_SKILL","SKILLID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_SKILL","SKILL_LEVEL"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_SKILL","REMARKS"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_SKILL"); dbinq.refresh(); i=0; while(dbinq.next()){ i++; detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MSKILL","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("SKILL_LEVEL"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("REMARKS"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- } document.add(detail); } // --------------- Work experience Detail ----------------- if(chk_expout.equals("1")){ sizeColumn = new float[] {5.0f,35.0f,25.0f,10.0f,25.0f}; detail = new PdfPTable(5); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "ประสบการณ์ทำงาน" : "Work experience", fontTopic, true, "LEFT", "MIDDLE", 5, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPL_EXP","COMPANYNAME"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ตำแหน่ง" : "Position", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "เงินเดือน" : "Salary", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ช่วงการทำงาน" : "Period time", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- DbInquiry mydbinq = new InitialInquiry(screen.getUProfile()).getDbInquiry("MEMPL_EXP"); mydbinq.setColumn("employeeid,companyid,companyname,exp_position,start_salary,end_salary,exp_from,exp_to"); mydbinq.setFilter("employeeid ='"+screen.getString("employeeid")+"'"); mydbinq.refresh(); String strexp=""; CscCalendar exfrom = null; CscCalendar exto = null; int exnum=1; if (mydbinq.recCount()>0){ while (mydbinq.next()){ mydbinq.referLangOn(); detail.addCell( getCellData(String.valueOf(exnum), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(mydbinq.getString("companyname"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(mydbinq.getString("exp_position"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(mydbinq.getString("start_salary") + "-" + mydbinq.getString("end_salary"), font, false, "CENTER", "MIDDLE", 1, 0) ); exfrom = new CscCalendar(mydbinq.getString("exp_from")); exto = new CscCalendar(mydbinq.getString("exp_to")); if (screen.getUProfile().get("lang").equalsIgnoreCase("THA")){ strexp = exfrom.getDDThaiYYYY()+" - "+exto.getDDThaiYYYY(); }else{ strexp = exfrom.getDDEngYYYY()+" - "+exto.getDDEngYYYY(); } detail.addCell( getCellData(strexp, font, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- exnum++; } } document.add(detail); } // --------------- Movement Record Detail ----------------- if(chk_expin.equals("1")){ sizeColumn = new float[] {8.0f,8.0f,14.0f,14.0f,14.0f,14.0f,14.0f,14.0f}; detail = new PdfPTable(8); detail.setWidthPercentage(100); detail.setWidths(sizeColumn); setPaddingTop(5f); setPaddingLeft(0f); setPaddingRight(0f); detail.addCell( getCellData(langthai ? "ประสบการณ์ทำงานภายใน" : "Movement Record", fontTopic, true, "LEFT", "MIDDLE", 8, 0) ); // --------------- new line ----------------- setPaddingTop(0.5f); setPaddingLeft(5f); setPaddingRight(5f); detail.addCell( getCellData(langthai ? "วันที่สร้าง" : "Issued Date", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "วันที่มีผล" : "Effective Date", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU1"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU2"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU3"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU4"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU5"), fontHead, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(langthai ? "ประเภทการเคลื่อนไหว" : "Movement Type", fontHead, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- DbInquiry bu1=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU1"); DbInquiry bu2=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU2"); DbInquiry bu3=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU3"); DbInquiry bu4=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU4"); DbInquiry bu5=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU5"); bu1.setColumn("*"); bu2.setColumn("*"); bu3.setColumn("*"); bu4.setColumn("*"); bu5.setColumn("*"); dbinq =(DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_MOVEMENT"); dbinq.putChild(bu1); dbinq.putChild(bu2); dbinq.putChild(bu3); dbinq.putChild(bu4); dbinq.putChild(bu5); dbinq.refresh(); i=0; while(dbinq.next()){ i++; detail.addCell( getCellData(chk.chkNullString(new CscCalendar(dbinq.getString("MEMPL_MOVEMENT","CREATE_DATE")).getDDMMYY(),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(new CscCalendar(dbinq.getString("MEMPL_MOVEMENT","EFF_DATE")).getDDMMYY(),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU1","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU2","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU3","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU4","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU5","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) ); detail.addCell( getCellData(chk.chkNullString(screen.getInquiry().getCurrentDbRecord().getSystemCode("MEMPL_MOVEMENT","ADJ_TYPE"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) ); // --------------- new line ----------------- } document.add(detail); } } catch(Exception e) { e.printStackTrace(); } finally { document.close(); } } if(hasData){ OutputStream os = response.getOutputStream(); // Create a reader PdfReader reader = new PdfReader(baos.toByteArray()); // Create a stamper PdfStamper stamper = new PdfStamper(reader,baos); // Loop over the pages and add a header to each page // Close the stamper stamper.close(); reader.close(); response.setHeader("Expires", "0"); response.setHeader("Cache-Control","must-revalidate, post-check=0 , pre-check=0"); response.setHeader("Pragma", "public"); // setting the content type response.setContentType("application/pdf"); // the contentlength response.setContentLength(baos.size()); // write ByteArrayOutputStream to the ServletOutputStream baos.writeTo(os); os.flush(); os.close(); } %> <%! Float padding = 0.0f; Float paddingtop = 0.0f; Float paddingbottom = 0.0f; Float paddingleft = 0.0f; Float paddingright = 0.0f; private PdfPCell getCellData(String text, Font font, boolean noborder, String horalign, String veralign, int colspan, int rowspan) { PdfPCell cellDetail = new PdfPCell(new Phrase(text,font)); if(horalign.equalsIgnoreCase("LEFT")){ cellDetail.setHorizontalAlignment(Element.ALIGN_LEFT); } else if(horalign.equalsIgnoreCase("CENTER")){ cellDetail.setHorizontalAlignment(Element.ALIGN_CENTER); } else if(horalign.equalsIgnoreCase("RIGHT")){ cellDetail.setHorizontalAlignment(Element.ALIGN_RIGHT); } if(veralign.equalsIgnoreCase("TOP")){ cellDetail.setVerticalAlignment(Element.ALIGN_TOP); } else if(veralign.equalsIgnoreCase("MIDDLE")){ cellDetail.setVerticalAlignment(Element.ALIGN_MIDDLE); } else if(veralign.equalsIgnoreCase("BOTTOM")){ cellDetail.setVerticalAlignment(Element.ALIGN_BOTTOM); } if(padding > 0.0f){ cellDetail.setPadding(padding); } if(paddingtop > 0.0f){ cellDetail.setPaddingTop(paddingtop); } if(paddingbottom > 0.0f){ cellDetail.setPaddingBottom(paddingbottom); } if(paddingleft > 0.0f){ cellDetail.setPaddingLeft(paddingleft); } if(paddingright > 0.0f){ cellDetail.setPaddingRight(paddingright); } if(colspan > 0){ cellDetail.setColspan(colspan); } if(rowspan > 0){ cellDetail.setRowspan(rowspan); } if(noborder){ cellDetail.setBorder(Rectangle.NO_BORDER); } return cellDetail; } private void setPadding(Float padding) { this.padding = padding; } private void setPaddingTop(Float padding) { this.paddingtop = padding; } private void setPaddingBottom(Float padding) { this.paddingbottom = padding; } private void setPaddingLeft(Float padding) { this.paddingleft = padding; } private void setPaddingRight(Float padding) { this.paddingright = padding; } %> </body> </html>