導出按鈕獲取條件並下載
onDcBtnClick : function(){
//獲取參數
var param= Render.getProviderParams();
//var range_end= XXX ;
//拼接參數
location.href = '/order/management/downLoadOrders?range_end='+param.range_end+'&range_start='+param.range_start+'&status='+param.status;
},
//下載數據處理
public function downLoadOrders(){
$get = $this->input->get();
$title = array(
'供應商名稱',
'產品編號',
'品牌',
'貨號',
'規格/包裝',
'產品名稱',
'入庫時間',
'出庫時間',
'商城價格',
'領用人姓名',
'發票號',
'對賬單號',
);
$param['a.recordid'] = intval($get['id']);
$param['a.is_receive'] = '1';
$ret = $this->db->select("b.name as sidname,a.*,c.invoice_num,c.record_sn")
->from('consign_storage as a')
->join('c_organisation as b','a.sid = b.id','left')
->join('record as c','a.recordid = c.id','left')
->where('a.sid !=',105466)
->where('a.sid !=',0)
->where('a.sid is not null')
->where($param);
$ret = $ret->get()->result_array();
$data = [];
foreach ($ret as $key=>$val){
$membername = $this->db->query("select b.membername from shipment_confirmation a left join user_info b on a.initiator = b.memberid where a.cstorage_id = {$val['id']}")->row_array();
$data[$key]['sidname'] = $val['sidname'];
$data[$key]['barcode'] = $val['barcode'];
$data[$key]['pro_brand'] = $val['pro_brand'];
$data[$key]['item_code'] = $val['item_code'];
$data[$key]['package_name'] = $val['package_name'];
$data[$key]['title'] = $val['title'];
$data[$key]['create_time'] = $val['create_time'];
$data[$key]['delivery_time'] = $val['delivery_time'];
$data[$key]['prom_price'] = $val['prom_price'];
$data[$key]['membername'] = $membername['membername'];
$data[$key]['invoice_num'] = $val['invoice_num'];
$data[$key]['record_sn'] = $val['record_sn'];
}
$this->mexcel->downLoadExcel($data,$title,'寄售對賬單');
}
public function downLoadExcel($data,$title,$name){
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
foreach($data as $key=>$value){
$dataCount = count($data[$key]);
$newCellName = array_slice($cellName,0,$dataCount);
$dk = array_values($data[$key]);
$newData[$key] = array_combine($newCellName,$dk);
}
/* @實例化 */
$obpe = new PHPExcel();
/* 設置寬度 */
$obpe->getActiveSheet()->getColumnDimension()->setAutoSize(true);
$obpe->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$obpe->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//設置SHEET
$obpe->setactivesheetindex(0);
$obpe->getActiveSheet()->setTitle('sheet1');
foreach ($title as $tk => $tv) {
$obpe->getactivesheet()->setCellValue($newCellName[$tk].'1', $tv);
}
$row = 2;
foreach($newData as $value){
foreach($newCellName as $k=>$v){
$obpe->getactivesheet()->setCellValue($v.$row, $value[$v]);
}
$row++;
}
$write = new PHPExcel_Writer_Excel2007($obpe);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename="'.$name.date('YmdHi').'.xlsx"');
header("Content-Transfer-Encoding:binary");
$write->save('php://output');exit;
}