$com){ if($_REQUEST['fl_'.$name]==$com['attributes']['value']){ $_REQUEST['fl_'.$name] = ""; } if(trim($_REQUEST["fl_".$name])&&$_REQUEST["fl_".$name]!='@'){ if($form['components'][$name]['valueType']=='date'){ $whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'"; } else { if($form['components'][$name]['valueType']=='numeric'){ $whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'"; } else { if($form['components'][$name]['type']=='hidden'){ $whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'"; } else { if($com['type']=='check'){ if($_REQUEST["fl_".$name]==$form['components'][$name]['checkedValue']) $whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'"; } else { if($com['type']=='time'){ if($_REQUEST["fl_".$name]!='00:00'){ $whereCondition.=" and {$form['source']}.$name = '".$_REQUEST["fl_".$name]."'"; } } else { if($com['primary']||$com['type']=='combo'){ $whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'"; } else { $whereCondition.=" and ".$form['source'].".$name like '%".$_REQUEST["fl_".$name]."%'"; } } } } } } } } } //Modificaciones para seleccion de la ordenacion del report, si esta acabado en _id, quiere decir foreignkey //Cojeremos el texto sin el id, tendremos la tabla ActiveRecord::sql_item_sanizite($_REQUEST['reportTypeField']); if (substr($_REQUEST['reportTypeField'],strlen($_REQUEST['reportTypeField']) -3,strlen($_REQUEST['reportTypeField'])) == "_id"){ $OrderFields = substr($_REQUEST['reportTypeField'],0,strlen($_REQUEST['reportTypeField'])-3); }else{ $OrderFields =$_REQUEST['reportTypeField']; } $maxCondition = $whereCondition; $n = 0; foreach($form['components'] as $name => $com){ if(!$com['notReport']){ $headerArray[$n] = str_replace("ó", "ó", $com['caption']); $headerArray[$n] = str_replace("á", "á", $headerArray[$n]); $headerArray[$n] = str_replace("é", "é", $headerArray[$n]); $headerArray[$n] = str_replace("í", "í", $headerArray[$n]); $headerArray[$n] = str_replace("ú", "ú", $headerArray[$n]); $headerArray[$n] = str_replace("
", " ", $headerArray[$n]); if($com['type']=='combo'&&$com['class']=='dynamic'){ if($com['extraTables']){ $tables.="{$com['extraTables']},"; } if($com['whereConditionOnQuery']){ $whereCondition.=" and {$com['whereConditionOnQuery']}"; } if(strpos(" ".$com['detailField'], "concat(")){ $selectedFields.=$com['detailField'].","; } else { $selectedFields.=$com['foreignTable'].".".$com['detailField'].","; //Comparamos la Tabla foranea que tenemos, y cuando sea igual, suponiendo no hay //mas de una clave foranea por tabla, sabremos a que tabla pertenece if ($com['foreignTable'] == $OrderFields){ $OrderFields = $com['foreignTable'].".".$com['detailField']; } } $tables.=$com['foreignTable'].","; if($com['column_relation']){ $whereCondition.=" and ".$com['foreignTable'].".".$com['column_relation']." = ".$form['source'].".".$name; } else { $whereCondition.=" and ".$com['foreignTable'].".".$name." = ".$form['source'].".".$name; } $weightArray[$n] = strlen($headerArray[$n])+2; $n++; } else { if($com['type']!='hidden'){ if($com['class']=='static'){ $weightArray[$n] = strlen($headerArray[$n])+2; if($config->database->type=='postgresql'){ $selectedFields.="case "; } if($config->database->type=='mysql'){ for($i=0;$i<=count($com['items'])-2;$i++){ $selectedFields.="if(".$form['source'].".".$name."='".$com['items'][$i][0]."', '".$com['items'][$i][1]."', "; if($weightArray[$n]database->type=='postgresql'){ for($i=0;$i<=count($com['items'])-1;$i++){ $selectedFields.=" when ".$form['source'].".".$name."='".$com['items'][$i][0]."' THEN '".$com['items'][$i][1]."' "; if($weightArray[$n]database->type=='mysql'){ $selectedFields.="'".$com['items'][$i][1]."')"; for($j=0;$j<=$i-2;$j++) { $selectedFields.=")"; } } if($config->database->type=='postgresql'){ $selectedFields.=" end "; } $selectedFields.=","; } else { $selectedFields.=$form['source'].".".$name.","; //Aqui seguro que no es foranea, entonces tenemos que poner la tabla principal // //antes para evitar repeticiones if ($name == $OrderFields){ $OrderFields = $form['source'].".".$OrderFields; } $weightArray[$n] = strlen($headerArray[$n])+2; $n++; } } } } } $tables.=$form['source']; $selectedFields = substr($selectedFields, 0, strlen($selectedFields)-1); if($form['dataRequisite']){ $whereCondition.=" and {$form['dataFilter']}"; } //Modificacion del order $OrderCondition = "Order By ".$OrderFields; $query = "select $selectedFields from $tables where 1 = 1 ".$whereCondition. " " .$OrderCondition; $q = $db->query($query); if(!is_bool($q)){ if(!$db->num_rows($q)){ Flash::notice("No hay información para listar"); return; } } else { Flash::error($db->error()); return; } $result = array(); $n = 0; while($row = $db->fetch_array($q, db::DB_NUM)){ $result[$n++] = $row; } foreach($result as $row){ for($i=0;$i<=count($row)-1;$i++){ if($weightArray[$i]