|
板凳

楼主 |
发表于 2021-10-14 11:22:25
|
只看该作者
下拉框分几种处理方式,先直接看源代码的处理部分:
plugins\function.nago_options.php
处理逻辑:
- $items=getSpecialValue($reportid);
- if(empty($items)){ // 不符合特殊转化
- //从xml中去找
- $xmlfile="./XML/Condition.xml";
- $report= new report($reportid);
- reportXml::FillReport($xmlfile,$report);
- $report->TransformSQL();
- $sqlstr=$report->SQLStatment;
- //__saveLog($sqlstr);
- $myFetchMode=$db->fetchMode;
- $db->fetchMode = ADODB_FETCH_ASSOC;
- $data=$db->getall($sqlstr);
- //__saveLog(print_r($data,true));
- $db->fetchMode =$myFetchMode;
- if(is_array($data)){
- foreach($data as $vv){
- //$items[$vv["TEXT"]] = $vv["VALUE"]; //syant觉得调换位置
- $items[$vv["VALUE"]] = $vv["TEXT"];
- }
- }
- //直接从数据库中获取?应该要加一下缓存!
- if(empty($items)){
- //重新从数据库中查询数据
- $sql=getCommonData($reportid);
- $data=$db->getall($sql);
- /*
- Array(
- [0] => Array(
- [VALUE] => P1
- [TEXT] => P1)
- [1] => Array(
- [VALUE] => S1
- [TEXT] => S1
- )*/
- //fix by syant 2020/02/27 于凤天
- if(is_array($data)){
- foreach($data as $vv){
- //$items[$vv["TEXT"]] = $vv["VALUE"];
- $items[$vv["VALUE"]] = $vv["TEXT"];
- }
- }
- }
- }
复制代码
特殊的处理:
- function getSpecialValue($name){
- $ret=array();
- //add by syant 2020-07-23, $name="TURNPCB,INPUT,INSP";
- if(strpos($name,",")>0){
- $data=explode(",",$name);
- foreach($data as $item){
- $ret[$item]=$item;
- }
- return $ret;
- }
- //---
- switch($name) {
- case 'WORK_SECTION':
- case 'WORK_SECTION_1':
- case 'WORK_SECTION_2':
- $ret=array( "00"=>"00","01"=>"01","02"=>"02","03"=>"03","04"=>"04","05"=>"05","06"=>"06",
- "07"=>"07","08"=>"08","09"=>"09","10"=>"10","11"=>"11","12"=>"12",
- "13"=>"13","14"=>"14","15"=>"15","16"=>"16","17"=>"17","18"=>"18",
- "19"=>"19","20"=>"20","21"=>"21","22"=>"22","23"=>"23",);
- break;
- case 'MES_INPUT':
- $ret=array( "SN"=>"SN","MAC"=>"MAC","MO"=>"MO",);
- break;
- case 'SMT_STATION_TYPE': //机台类型
- $ret=array( "1"=>"SMT MACHINE","2"=>"STATION","3"=>"PRINTER MACHINE","4"=>"AOI MACHINE",);
- break;
- case 'SMT_PCB_SIDE': //机台类型
- $ret=array( "A"=>"A","B"=>"B",);
- break;
- }
- return $ret;
- }
复制代码
通用的处理:
- /*
- * 约定的一些特殊SQL
- */
- function getCommonData($name){
- $sql="";
- switch($name) {
- case 'SMT_LINE':
- $sql="SELECT DISTINCT LINE_NAME VALUE ,LINE_NAME TEXT
- FROM smt.c_line_station
- WHERE line_name NOT IN ('L_I_N_E')
- ORDER BY line_name";
- break;
- default:
- /*
- 此处引用一个通用表:
- CREATE TABLE sfc.`c_options_item_t` (
- `ITEM_TYPE` varchar(20) DEFAULT NULL,
- `ITEM_NAME` varchar(50) DEFAULT NULL,
- `ITEM_VALUE` varchar(50) DEFAULT NULL,
- `ITEM_ORDER` int(11) DEFAULT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8
- */
- $sql="select ITEM_NAME TEXT,ITEM_VALUE VALUE
- from c_options_item_t where ITEM_TYPE='{$name}'
- order by ITEM_ORDER ";
- break;
- }
- return $sql;
- }
复制代码
|
|