db_onedev = $this->load->database("onedev", true); } public function index() { $prm = $this->sys_input; $startdate = $prm['startdate']; $enddate = $prm['enddate']; $instrumentid = $prm['instrumentid']; $controlid = $prm['controlid']; $testid = $prm['testid']; $mean_group = $prm['mean_group']; $this->load->library("excel"); // Read an Excel File $tmpfname = APPPATH . "controllers/xlsx/qc/" . "qc_single_1.xls"; $excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname); $objPHPExcel = $excelReader->load($tmpfname); // Set document properties $objPHPExcel->getProperties()->setCreator("Furkan Kahveci") ->setLastModifiedBy("Furkan Kahveci") ->setTitle("Office 2007 XLS Test Document") ->setSubject("Office 2007 XLS Test Document") ->setDescription("Description for Test Document") ->setKeywords("phpexcel office codeigniter php") ->setCategory("Test result file"); // Create a first sheet $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->mergeCells('A1:G1'); $objPHPExcel->getActiveSheet()->setCellValue('A1', "QUALITY CONTROL CHART CHEMISTRY"); $headers = $this->get_header($startdate,$enddate,$instrumentid,$controlid,$testid); $B3 = $headers[0][Nat_InstrumentName]; $B4 = $startdate.' s/d '.$enddate; $B5 = ''; $B6 = $headers[0][Nat_TestName]; $B7 = $headers[0][Nat_QcControlName]; $B9 = $headers[0][Nat_QcControlLotNumber]; $B10 = $headers[0][Nat_QcLevelName]; $B11 = $headers[0][Nat_QcControlExpired]; $B12 = ''; $B13 = ''; $B14 = $headers[0][Nat_QcMean]; $B15 = $headers[0][M_QcStatMean]; $B16 = $headers[0][Nat_QcSd]; $B17 = $headers[0][M_QcStatSd]; $D12 = ($B17/$B15)*100; $D13 = ($B15-$mean_group/$mean_group)*100; $D14 = ABS($D13)+(2*$D12); $D15 = $headers[0][Nat_QcTea]; $D16 = ''; $D17 = ($D15-ABS($D13))/$D12; $objPHPExcel->getActiveSheet()->setCellValue('B3', $B3); $objPHPExcel->getActiveSheet()->setCellValue('B4', $B4); $objPHPExcel->getActiveSheet()->setCellValue('B5', $B5); $objPHPExcel->getActiveSheet()->setCellValue('B6', $B6); $objPHPExcel->getActiveSheet()->setCellValue('B7', $B7); $objPHPExcel->getActiveSheet()->setCellValue('B9', $B9); $objPHPExcel->getActiveSheet()->setCellValue('B10', $B10); $objPHPExcel->getActiveSheet()->setCellValue('B11', $B11); $objPHPExcel->getActiveSheet()->setCellValue('B12', $B12); $objPHPExcel->getActiveSheet()->setCellValue('B13', $B13); $objPHPExcel->getActiveSheet()->setCellValue('B14', $B14); $objPHPExcel->getActiveSheet()->setCellValue('B15', $B15); $objPHPExcel->getActiveSheet()->setCellValue('B16', $B16); $objPHPExcel->getActiveSheet()->setCellValue('B17', $B17); $objPHPExcel->getActiveSheet()->setCellValue('D12', $D12); $objPHPExcel->getActiveSheet()->setCellValue('D13', $D13); $objPHPExcel->getActiveSheet()->setCellValue('D14', $D14); $objPHPExcel->getActiveSheet()->setCellValue('D15', $D15); $objPHPExcel->getActiveSheet()->setCellValue('D16', $D16); $objPHPExcel->getActiveSheet()->setCellValue('D17', $D17); $details = $this->get_detail($startdate,$enddate,$instrumentid,$controlid,$testid); $rowNumber = 20; $col_a = 'A'; $col_b = 'B'; $col_c = 'C'; /* foreach ($details as $v) { $objPHPExcel->getActiveSheet()->setCellValue($col_a.$rowNumber,$v['M_QcResultDate']); $objPHPExcel->getActiveSheet()->setCellValue($col_b.$rowNumber,$v['M_QcResultValue']); $objPHPExcel->getActiveSheet()->setCellValue($col_c.$rowNumber,round($v['M_QcResultValue']-$B14/$B16,1)); $rowNumber++; } */ // Save Excel xls File $filename="qcsingle.xls"; $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); ob_end_clean(); header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename='.$filename); $objWriter->save('php://output'); } function get_header($startdate,$enddate,$instrumentid,$controlid,$testid){ $sql = "SELECT Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelName, Nat_InstrumentName, Nat_TestName, M_QcResultDate, M_QcResultValue, ifnull(Nat_QcRuleCode,'') Marking, Nat_QcMean,Nat_QcSd,Nat_QcTea, M_QcIsStat, M_QcStatMean, M_QcStatSd from m_qc_result join m_qc on M_QcResultM_QcID = M_QcID and M_QcResultIsActive = 'Y' and M_QcResultDate >= ? and M_QcResultDate <= ? join nat_qc on M_QcNat_QcID = Nat_QcID and Nat_QcNat_InstrumentID = ? and Nat_QcNat_QcControlID = ? and Nat_QcNat_TestID = ? and Nat_QcIsActive = 'Y' join nat_qc_control on Nat_QcNat_QcControlID = Nat_QcControlID join nat_qc_level on Nat_QcControlNat_QcLevelID = Nat_QcLevelID join nat_instrument on Nat_QcNat_InstrumentID = Nat_InstrumentID join nat_test on Nat_QcNat_TestID = Nat_TestID left join nat_qc_rule on M_QcResultNat_QcRuleID = Nat_QcRuleID"; $query = $this->db_onedev->query($sql, array($startdate, $enddate, $instrumentid,$controlid,$testid)); $rows = $query->result_array(); return $rows; } function get_detail($startdate,$enddate,$instrumentid,$controlid,$testid){ $sql = "select M_QcResultID, DATE_FORMAT(M_QcResultDate , '%d-%m-%Y') as M_QcResultDate ,M_QcResultValue ,Nat_QcRuleID, Nat_QcRuleCode from m_qc_result join m_qc on M_QcResultM_QcID = M_QcID and M_QcResultIsActive = 'Y' and M_QcIsActive='Y' join nat_qc on M_QcNat_QcID = Nat_QcID and Nat_QcIsActive ='Y' and Nat_QcNat_InstrumentID = ? and Nat_QcNat_QcControlID = ? and Nat_QcNat_TestID = ? join nat_qc_rule on M_QcResultNat_QcRuleID = Nat_QcRuleID and Nat_QcRuleIsActive ='Y' where M_QcResultDate >= ? and M_QcResultDate <= ? AND M_QcResultIsActive = 'Y' ORDER BY M_QcResultDate ASC"; $query = $this->db_onedev->query($sql, array($instrumentid,$controlid,$testid,$startdate, $enddate)); $rows = $query->result_array(); return $rows; } }