/** * @Title: getWordPHPTableXmlStr * @Description: todo(用phpword对象生成word表格xml字符串) * @param $title 表格表名 * @param $titleArr 表头 * @param $titleGroupArr 分组表头 例:array(array("colspan"=>2, "title"=>"第一大组"),array("colspan"=>3, "title"=>"第二大组")) * @param $data 表数据 * @author 王昭侠 * @date 2015-01-30 上午90:30:00 * @throws */ public function getPHPWordTableXmlStr($title, $titleArr, $data = NULL, $titleGroupArr = NULL, $showtype = 0, $textStyle = array(), $widthArray = array()) { $th_count = count($titleArr); $obPHPWord = new PHPWord(); $section = $obPHPWord->createSection(); $styleTable = array('borderSize' => 6, 'borderColor' => '000000', 'cellMargin' => 80, 'align' => 'center'); $obPHPWord->addTableStyle('myOwnTableStyle', $styleTable); $table = $section->addTable('myOwnTableStyle'); $cellStyle = array('borderSize' => 6, 'name' => $textStyle["name"], 'size' => $textStyle["size"], 'spacing' => $textStyle["spacing"], 'borderColor' => '000000', 'cellMargin' => 80); $td_width = 2000; $newStats = array(); foreach ($data as $k => $v) { if ($v["is_stats"] === "1") { $sum = 0; if (!empty($v["original"][0]) && is_numeric($v["original"][0])) { foreach ($v["original"] as $kk => $vv) { $sum += floatval($vv); } $sum = unitExchange($sum, $v["funcdata"][0][0][1], $v["funcdata"][0][0][2], 3); $newStats[] = "小计:" . $sum; } else { $newStats[] = ""; } } else { $newStats[] = ""; } } $stats = false; foreach ($newStats as $k => $v) { if (!empty($v)) { $stats = true; break; } } if (!$stats) { $newStats = array(); } if (!empty($title)) { if ($showtype != 0) { $th_count = count($data[0]["value"]) + 1; } $table->addRow(); $table->addCell($td_width * $th_count, array('borderSize' => 6, 'borderColor' => '000000', 'cellMargin' => 80, 'align' => 'center', 'gridSpan' => $th_count))->addText($title, array('name' => $textStyle["name"], 'size' => $textStyle["size"], 'spacing' => $textStyle["spacing"], 'align' => 'center')); } if (!empty($titleGroupArr)) { $table->addRow(); foreach ($titleGroupArr as $k => $v) { $table->addCell($td_width * $v["colspan"], array('borderSize' => 6, 'borderColor' => '000000', 'cellMargin' => 80, 'gridSpan' => $v["colspan"]))->addText($v["title"], array('name' => $textStyle["name"], 'size' => $textStyle["size"], 'spacing' => $textStyle["spacing"], 'align' => 'center')); } } if (empty($showtype)) { //默认为横向输出 if (!empty($titleArr)) { $table->addRow(); foreach ($titleArr as $k => $v) { $table->addCell($widthArray[$k] ? $widthArray[$k] : $td_width, array('borderSize' => 6, 'borderColor' => '000000', 'cellMargin' => 80, 'valign' => 'center', 'align' => 'center'))->addText($v, $textStyle); } } foreach ($data[0]["value"] as $k => $v) { $table->addRow(); foreach ($data as $kk => $vv) { $table->addCell($widthArray[$kk] ? $widthArray[$kk] : $td_width, $cellStyle)->addText($vv["value"][$k], $textStyle); } } if (count($newStats) > 0) { $table->addRow(); foreach ($newStats as $k => $v) { $table->addCell($widthArray[$k] ? $widthArray[$k] : $td_width, $cellStyle)->addText($v, $textStyle); } } } else { if (!empty($titleArr)) { foreach ($titleArr as $k => $v) { $table->addRow(); $table->addCell($widthArray[$k] ? $widthArray[$k] : $td_width, array('borderSize' => 6, 'borderColor' => '000000', 'cellMargin' => 80, 'align' => 'center'))->addText($v, $textStyle); if (!empty($data)) { foreach ($data[$k]["value"] as $kk => $vv) { $table->addCell($widthArray[$kk] ? $widthArray[$kk] : $td_width, $cellStyle)->addText($vv, $textStyle); } } } } else { foreach ($titleArr as $k => $v) { $table->addRow(); if (!empty($data)) { foreach ($data[$k]["value"] as $kk => $vv) { $table->addCell($widthArray[$kk] ? $widthArray[$kk] : $td_width, $cellStyle)->addText($vv, $textStyle); } if (count($newStats) > 0) { $table->addCell($widthArray[$kk] ? $widthArray[$kk] : $td_width, $cellStyle)->addText($newStats[$k], $textStyle); } } } } } $objWriter = PHPWord_IOFactory::createWriter($obPHPWord, 'Word2007'); $tableXml = $objWriter->getWriterPart('document')->getObjectAsText($table); return $tableXml; }
/** * * @Title: lookupAssemble * @Description: todo(组装条件 返回list) * @return multitype:string Ambigous <multitype:, multitype:unknown , multitype:unknown NULL > * @author renling * @date 2014-9-17 下午6:33:52 * @throws */ private function lookupAssemble() { /* 黎明刚 加,为了满足流程管理,在一个页面同时出现多个条件选择器*/ $order = $_POST['order']; $roleexp = $_POST['tiprole'] ? $_POST['tiprole'] : $_POST['roleexp']; $roleexptype = $_POST['roleexptype']; $roleexptitle = $_POST['roleexptitle']; $modelname = $_POST['modelname']; if (substr($modelname, -4) == 'View') { $modelname = getFieldBy($modelname, 'name', 'modelname', 'mis_system_dataview_mas'); } //获取配置文件 $scdmodel = D('SystemConfigDetail'); //读取列名称数据(按照规则,应该在index方法里面) $detailList = $scdmodel->getDetail($modelname, '', '', '', 'rules'); //查询该模型是否有视图 $MisSystemDataviewMasView = D('MisSystemDataviewMasView'); $MisSystemDataviewMasMap = array(); $MisSystemDataviewMasMap['modelname'] = $modelname; $MisSystemDataviewMasMap['mstatus'] = 1; $MisSystemDataviewMasList = $MisSystemDataviewMasView->where($MisSystemDataviewMasMap)->getField("field,tablename"); $listarr = array(); $typearr = array(); $orspan = "<span style='color:red'> 或者 </span>"; $andspan = "<span style='color:blue'> 并且 </span>"; if ($order == "processcondition_batch") { /* 黎明刚 加,为了满足流程管理,在一个页面同时出现多个条件选择器*/ $orspan = "或者"; $andspan = "并且"; } if ($_POST['avgsql']) { //高级sql模式 $showmap = $_POST['avgsql']; } foreach ($roleexp as $key => $val) { //查询当前条件是否是视图字段 if ($MisSystemDataviewMasList[$val]) { //组装视图条件 $mapval = $MisSystemDataviewMasList[$val] . "." . $val; } else { if ($detailList[$val]['searchField']) { $mapval = $detailList[$val]['searchField']; } else { $mapval = $val; } } $leftipt = ""; $rightipt = ""; $centertip = ""; $centertip = $_POST['centertip'][$val]; $leftipt = $_POST['leftipt'][$key]; $rightipt = $_POST['rightipt'][$key]; if ($roleexptype[$val] == 'text') { $showval = $_POST[$val . 'text']; if ($val == "auditState") { $showval = getSelectByName('auditStateVal', $_POST[$val . 'text']); } if ($val == "operateid") { $showval = getSelectByName('operateidVal', $_POST[$val . 'text']); } $showmap .= "(" . $roleexptitle[$val] . ' ' . getSelectByName('roletextinexp', $_POST[$val . 'f']) . " '" . $showval . "') "; $map .= $leftipt . " " . $mapval . getSelectByName('roletextinset', $_POST[$val . 'f']) . "'" . $_POST[$val . 'text'] . "' " . $rightipt . " "; $typearr[$val][] = array('name' => $val, 'title' => $_POST['roleexptitle'][$val], 'symbol' => $_POST[$val . 'f'], 'val' => $_POST[$val . 'text'], 'control' => 'text', 'widget' => 'roletextinset', 'leftipt' => $leftipt, 'rightipt' => $rightipt, 'sort' => $key, 'centertip' => $centertip); } else { if ($roleexptype[$val] == 'select') { $showmap .= "(" . $roleexptitle[$val] . ' ' . getSelectByName('roletextinexp', $_POST[$val . 'f']) . " '" . implode(',', $_POST[$val . 'stitle']) . "')"; $tempData = $_POST[$val . 's']; if ($tempData) { $ret = "'"; if (is_array($tempData)) { $ret .= join("','", $tempData); } $ret .= "'"; } $map .= $leftipt . ' ' . $mapval . ' ' . getSelectByName('roletextinset', $_POST[$val . 'f']) . "(" . $ret . ")" . $rightipt . " "; $typearr[$val][] = array('name' => $val, 'symbol' => $_POST[$val . 'f'], 'title' => $_POST['roleexptitle'][$val], 'showval' => implode(',', $_POST[$val . 'stitle']), 'val' => $_POST[$val . 's'], 'control' => 'select', 'widget' => 'roletextinset', 'sort' => $key, 'leftipt' => $leftipt, 'rightipt' => $rightipt, 'centertip' => $centertip); } else { if ($roleexptype[$val] == 'number') { //带入单位存值 $showunit = getFieldBy($_POST[$val . "unitshow"], "danweidaima", "danweimingchen", "mis_system_unit"); //map转换单位 $mapunitsval = $_POST[$val . 'snum']; $mapuniteval = $_POST[$val . 'enum']; if ($showunit) { //转换为存储单位 $mapunitsval = unitExchange($_POST[$val . 'snum'], $_POST[$val . 'unitchange'], $_POST[$val . 'unitshow']); $mapuniteval = unitExchange($_POST[$val . 'enum'], $_POST[$val . 'unitchange'], $_POST[$val . 'unitshow']); } if ($_POST[$val . 'enum']) { $showmap .= "(" . $roleexptitle[$val] . ' ' . getSelectByName('roleinexp', $_POST[$val . 'sf']) . " '" . $_POST[$val . 'snum'] . $showunit . "' {$andspan} " . $roleexptitle[$val] . ' ' . getSelectByName('roleinexp', $_POST[$val . 'ef']) . " '" . $_POST[$val . 'enum'] . $showunit . "')"; $map .= $leftipt . " " . "(" . $mapval . ' ' . getSelectByName('roleexp', $_POST[$val . 'sf']) . $mapunitsval . " and " . $mapval . ' ' . getSelectByName('roleexp', $_POST[$val . 'ef']) . $mapuniteval . ")" . $rightipt . " "; } else { $showmap .= "(" . $roleexptitle[$val] . ' ' . getSelectByName('roleinexp', $_POST[$val . 'sf']) . " '" . $_POST[$val . 'snum'] . $showunit . ")"; $map .= $leftipt . " " . "(" . $mapval . ' ' . getSelectByName('roleexp', $_POST[$val . 'sf']) . "'" . $mapunitsval . "')"; } $typearr[$val][] = array('name' => $val, 'symbols' => $_POST[$val . 'sf'], 'symbole' => $_POST[$val . 'ef'], 'title' => $_POST['roleexptitle'][$val], 'vals' => $mapunitsval, 'vale' => $mapuniteval, 'sort' => $key, 'control' => 'number', 'widget' => 'roleexp', 'leftipt' => $leftipt, 'rightipt' => $rightipt, 'centertip' => $centertip); } else { if ($roleexptype[$val] == 'time') { if (!$_POST[$val . 'etime']) { $_POST[$val . 'etime'] = "\$" . "time"; $showtime = "当前时间"; $showetime = "\$" . "time"; } else { $showtime = $_POST[$val . 'etime']; $showetime = $showtime; $_POST[$val . 'etime'] = strtotime($_POST[$val . 'etime']); } $showmap .= "(" . $roleexptitle[$val] . ' ' . getSelectByName('roleinexp', $_POST[$val . 'sf']) . " '" . $_POST[$val . 'stime'] . "' {$andspan} " . $roleexptitle[$val] . ' ' . getSelectByName('roleinexp', $_POST[$val . 'ef']) . " '" . $showtime . "') "; $map .= $leftipt . " " . "(" . $mapval . getSelectByName('roleexp', $_POST[$val . 'sf']) . strtotime($_POST[$val . 'stime']) . " and " . $mapval . getSelectByName('roleexp', $_POST[$val . 'ef']) . $_POST[$val . 'etime'] . ")" . $rightipt . " "; $typearr[$val][] = array('name' => $val, 'symbols' => $_POST[$val . 'sf'], 'symbole' => $_POST[$val . 'ef'], 'title' => $_POST['roleexptitle'][$val], 'vals' => $_POST[$val . 'stime'], 'sort' => $key, 'vale' => $showetime, 'control' => 'time', 'widget' => 'roleexp', 'leftipt' => $leftipt, 'rightipt' => $rightipt, 'centertip' => $centertip); } } } } if ($roleexp[$key + 1]) { if (!$leftipt && !$rightipt) { $map .= " and "; $showmap .= $andspan; } else { if ($_POST['leftipt'][$key + 1] == "and" || $_POST['rightipt'][$key + 1] == "and") { if (!$centertip[$val]) { $showmap .= $andspan; } } else { if (!$centertip[$val]) { $showmap .= $orspan; } } } } if ($centertip[$val]) { $map .= " " . $centertip . " "; $showmap .= $centertip == "or" ? $orspan : $andspan; } } if ($_POST['mapsql']) { $typearr['mapsql'][] = array('name' => 'sql', 'sql' => $_POST['mapsql']); $map .= $_POST['mapsql']; } if ($_POST['avgsql']) { //高级sql模式 if ($map) { $endsql = $_POST['avgsql'] . " and " . $map; } else { $endsql = $_POST['avgsql']; } $typearr['avgsql'][] = array('name' => 'avgsql', 'avgsql' => $_POST['avgsql']); $avgmap = $_POST['avgsql']; } if ($typearr) { $typearr = base64_encode(base64_encode(serialize($typearr))); } else { $typearr = ""; } if (!$map) { $map = ""; } $listarr = array('list' => $typearr, 'map' => $map, 'endsql' => $endsql, 'jsshowmap' => $showmap . " " . $_POST['mapsql'], 'showmap' => $showmap . $_POST['mapsql']); return $listarr; }
public function unitExchange($qty = 0, $baseunit, $subunit, $type = 1) { //mis_system_unit_exchange里的$baseunit,$subunit,转换数量$qty,转换类型$type 1为存储 2为读取 $result = unitExchange($qty, $baseunit, $subunit, $type = 1); return $result; }