From 8930e1763e1e01dd9f46bb79a4ea2834143f562f Mon Sep 17 00:00:00 2001 From: humano Date: Sun, 28 Sep 2014 11:19:16 -0500 Subject: [PATCH] =?UTF-8?q?Organizaci=C3=B3n=20subsitema=20de=20consultas?= =?UTF-8?q?=20y=20descargas=20en=20CSV?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- milfs/funciones/funciones.php | 433 ++++++++++++++++++++-------------- 1 file changed, 250 insertions(+), 183 deletions(-) diff --git a/milfs/funciones/funciones.php b/milfs/funciones/funciones.php index dc2309a..7b5269a 100644 --- a/milfs/funciones/funciones.php +++ b/milfs/funciones/funciones.php @@ -24,7 +24,7 @@ $consulta ="SELECT count(control) as cantidad FROM form_datos WHERE form_id = '$ $sql=mysql_query($consulta,$link); if (mysql_num_rows($sql)!='0'){ $resultado=mysql_result($sql,0,"cantidad"); - }else {$resultado ='';} + }else {$resultado ='0';} return $resultado; } @@ -348,52 +348,14 @@ if (mysql_num_rows($sql)!='0'){ $resultado .= "
$campo_nombre[0]
$contenido
"; } - $resultado .=" + + $resultado .="
Datos registrados el $fecha
"; } return $resultado; } -/* -function formulario_imprimir($id,$control) { - $id = mysql_seguridad($id); - if($id !='') {$w_id = "AND form_id = '$id'";} - $control = mysql_seguridad($control); - $consulta = "SELECT form_datos.*,campo_nombre, contenido, campo_tipo FROM form_datos, form_campos - WHERE form_datos.id_campo = form_campos.id - AND control ='$control' - $w_id GROUP BY form_datos.id_campo order by form_datos.timestamp DESC - "; -$link=Conectarse(); -mysql_query("SET NAMES 'utf8'"); -$sql=mysql_query($consulta,$link); - -$timestamp=mysql_result($sql,0,"timestamp"); -$fecha = date ( "Y-m-d h:i:s" , $timestamp); -if (mysql_num_rows($sql)!='0'){ - mysql_data_seek($sql, 0); - $resultado =" - $consulta"; - while( $row = mysql_fetch_array( $sql ) ) { - if($row[campo_tipo]=='15'){$contenido = ""; } - elseif($row[campo_tipo]=='14'){ - $campos = explode(" ",$row[contenido]); - $lat = $campos[0]; - $lon = $campos[1]; - $zoom = $campos[2]; - $contenido = ""; - } - else {$contenido = "$row[contenido]";} - $resultado .= ""; - } - $resultado .="
$row[campo_nombre]$contenido
-
Datos registrados el $fecha
- "; -} - return $resultado; -} -*/ function formulario_respuesta($id,$control) { $id = mysql_seguridad($id); $consulta = "SELECT * FROM form_id @@ -667,22 +629,122 @@ return $respuesta; } $xajax->registerFunction("borrar_tmp"); + +function formulario_imprimir_linea($id,$control,$tipo) { + $id = mysql_seguridad($id); + if($id !='') {$w_id = "AND form_id = '$id'";} + $control = mysql_seguridad($control); + $consulta = "SELECT * + FROM form_contenido_campos + WHERE form_contenido_campos.id_form = '$id' + ORDER BY form_contenido_campos.orden ASC + "; +$link=Conectarse(); +mysql_query("SET NAMES 'utf8'"); +$sql=mysql_query($consulta,$link); + +$timestamp=mysql_result($sql,0,"timestamp"); +$fecha = date ( "Y-m-d h:i:s" , $timestamp); + +if (mysql_num_rows($sql)!='0'){ + mysql_data_seek($sql, 0); + $resultado =" + "; + $imagen = formulario_valor_campo("$id","0","","$control"); + $imagen = $imagen[3]; + if($imagen[3] != null) { + $imagen= ""; + } + $resultado .="$imagen"; + while( $row = mysql_fetch_array( $sql ) ) { + $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo'); + $campo_tipo =$campo_tipo[0]; + $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control"); + $contenido = $contenido[3]; + $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre'); + if($tipo=="titulos") { + $contenido = "$campo_nombre[0]"; + } + elseif($tipo=="titulos_csv"){ + $csv .= '"'.$campo_nombre[0].'";'; + } + elseif($tipo=="linea_csv"){ + $csv .= '"'.$contenido.'";'; + } + else{ + $limite = 100; + $size= strlen($contenido); + $restante = ($limite - $size); + if($size > $limite) { + $contenido = substr($contenido,0, $length = 100)."... ";//$contenido; + } + } + + + + $resultado .= "$contenido"; + + } + + $resultado .=" "; +} + if($tipo =='titulos_csv' or $tipo=='linea_csv') { + +return $csv; + } + return $resultado; +} + + function matriz_formulario($formulario,$div,$registros,$pagina,$formato){ - $id=mysql_real_escape_string($id); - + $respuesta = new xajaxResponse('utf-8'); +if ( !isset ( $_SESSION['id_empresa'] ) ) { +$respuesta->addRedirect("index.php"); +//header("Location: index.php"); +return $respuesta; +} +$formulario = mysql_seguridad($formulario); +$perfil = $formulario["form_id_id"]; $control = md5(rand(1,99999999).microtime()); -$respuesta = new xajaxResponse('utf-8'); +$cantidad = formulario_contar($perfil); +$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre') ; +if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{ + $resultado ="

Por favor seleccione un formulario

"; + $respuesta->addAssign($div,"innerHTML",$resultado); + return $respuesta; + } +if($cantidad < 1) { + $resultado ="
+

+ El formulario \"$formulario_nombre[0]\" no tiene registros +

+
"; + $respuesta->addAssign($div,"innerHTML",$resultado); + return $respuesta; + +} $fecha_inicio = $formulario["inicio"]; $fin = $formulario["fin"]; -$perfil = $formulario["form_id_id"]; -if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{$perfil ='';} $id_campo = $formulario["id_campo"]; $busqueda = $formulario["busqueda"]; + if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";} -if($id_campo ==''){$campo ='';}else{$campo ="AND id_campo = '$id_campo'";} -if($busqueda !=''){$busca ="AND contenido LIKE '$busqueda'";}Else{$busca ='';} +if($id_campo ==''){ + $campo =''; + + }else{ + if($busqueda =='') { + $resultado ="

Por favor escriba una palabra para buscar

"; + $respuesta->addAssign($div,"innerHTML",$resultado); + return $respuesta; + } + $campo ="AND id_campo = '$id_campo'"; + + } + +if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';} $link=Conectarse(); mysql_query("SET NAMES 'utf8'"); @@ -694,107 +756,104 @@ $consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS for $perfil $campo AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') - AND UNIX_TIMESTAMP('$fin 23:59:59') $orden"; + AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden"; + + $sql=mysql_query($consulta,$link); - -if (mysql_num_rows($sql)!='0'){ - if($formato=='csv'){ - $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv"; - $resultado ="Descargar Archivo"; -$archivo_reporte=fopen($nombre_archivo , "w"); - -$encabezado =";;Periodo\n;;$inicio\n;;$fin \n "; -fputs ($archivo_reporte,$encabezado); - $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n"; -fputs ($archivo_reporte,$tabla); -while( $row = mysql_fetch_array( $sql ) ) { - $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ; -$linea = array("$row[form_datos_id]","$row[fecha]","$row[timestamp]","$formulario_nombre[0]","$row[campo_nombre]","$row[contenido]","$row[control]"); - -fputcsv ($archivo_reporte,$linea,';'); - } -rewind($archivo_reporte); - -$respuesta->addAssign($div,"innerHTML",$resultado); -return $respuesta; - - } - } else{ - $respuesta ="
No hay resultados
"; +if (mysql_num_rows($sql)==0){ + $resultado ="

No hay resultados para la consulta

"; $respuesta->addAssign($div,"innerHTML",$resultado); - return $respuesta; - } + return $respuesta; - -if ($pagina =='') { - $inicio = 0; - $pagina = 1; -} -else { - $inicio = ($pagina - 1) * $registros; -} - -$total_registros = mysql_num_rows($sql); -if($total_registros < $registros) { -$limite =""; -}else{ -$limite =" LIMIT $inicio, $registros "; -} - - -$consulta_limite = $consulta.$limite; -$sql=mysql_query($consulta_limite,$link); - -if (mysql_num_rows($sql)!='0'){ - $resultado .= "Limpiar resultado | "; -if($formato!='csv'){ - $resultado.= "Exportar resultados a CSV - - - "; + } +if (mysql_num_rows($sql)!=0){ + $total_registros = mysql_num_rows($sql); + if($formato=='csv'){ + $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv"; + $boton_descarga ="Descargar "; + $archivo_reporte=fopen($nombre_archivo , "w"); + $encabezado =";;Periodo\n;;$inicio\n;;$fin \n "; + fputs ($archivo_reporte,$encabezado); + $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n"; + fputs ($archivo_reporte,$titulo); + mysql_data_seek($sql, 0); + while( $row = mysql_fetch_array( $sql ) ) + { + $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv'); + $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv'); + $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ; + $linea = $linea."\n"; + $lineas .= $linea; } - $resultado .=""; -$total_paginas = ceil($total_registros / $registros); -$indice .= ""; -if(($pagina - 1) > 0) { -$indice .= ""; - } - -for ($i=1; $i<=$total_paginas; $i++) - if ($pagina == $i){ -$indice .= " "; -} else { -$indice .= " -"; -} + $contenido ="$titulo \n $lineas"; + //rewind($archivo_reporte); + fputs ($archivo_reporte,$contenido); + $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga); + $respuesta->addAssign($div,"innerHTML",$resultado); + return $respuesta; -if(($pagina + 1)<=$total_paginas) { + } + } + else{ + $respuesta ="
No hay resultados
"; + $respuesta->addAssign($div,"innerHTML",$resultado); + return $respuesta; + } +/// PAGINACION + if ($pagina =='') {$inicio = 0; $pagina = 1; } + else { $inicio = ($pagina - 1) * $registros;} -$indice .= ""; -} + if($total_registros < $registros) { $limite ="";} + else{$limite =" LIMIT $inicio, $registros ";} + $consulta_limite = $consulta.$limite; + $sql=mysql_query($consulta_limite,$link); + if (mysql_num_rows($sql)!='0'){ + $botones .= "Limpiar "; + if($formato!='csv'){ + $botones .= " + Exportar + "; + } + $paginacion ="
< Anterior ".$pagina."$i Siguiente >
"; -$resultado .= $indice; + if(($pagina + 1)<=$total_paginas) { + $indice .= "
  • Siguiente >
  • "; + } + $indice .= ""; + $paginacion .= $indice; + $encabezado = " +
    +
    +
    $botones $paginacion $total_registros registros
    - - mysql_data_seek($sql, 0); - $resultado .=" "; - $resultado .= " - "; + "; $fila=0; -while( $row = mysql_fetch_array( $sql ) ) { + mysql_data_seek($sql, 0); + while( $row = mysql_fetch_array( $sql ) ) { $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ; - $fila = $fila +1; - if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';} - -$resultado .= ""; + $fila = $fila +1; + if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';} + $depliegue = formulario_imprimir_linea($row[form_id],$row[control]); + $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos'); + $campos .= "$depliegue"; } - - $resultado .="
    MUESTRA $registros REGISTROS de $total_registros
    IDFechaTimestampFormularioCampoContenido
    $row[form_datos_id]$row[fecha]$row[timestamp]$formulario_nombre[0] $row[campo_nombre]$row[contenido]
    "; - }else{$resultado = "No hay resultados para mostrar ";} - + $resultado .="
    $titulo $campos
    "; + }else{ + $resultado ="

    No hay resultados para la consulta

    "; + } +$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado); $respuesta->addAssign($div,"innerHTML",$resultado); return $respuesta; @@ -844,55 +903,63 @@ return $respuesta; $xajax->registerFunction("formulario_campos_select"); function formulario_consultar($div){ - if($div==''){ - $div = "contenido"; - -$resultado .= " Consultas"; - - return $resultado; - } - + if($div==''){ + $div = "contenido"; + $resultado .= " Consultas"; + return $resultado; + } $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'"); $fecha = time (); -$ahora = date ( "Y-m-d" , $fecha ); -$peticion = " -
    -
    -
    -
    - - + $ahora = date ( "Y-m-d" , $fecha ); + $peticion = " + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + $formulario +
    +
    +
    +
    + +
    +
    +
    -
    -
    -
    - - -
    -
    -
    -
    - - $formulario -
    -
    -
    -
    -
    - - -
    -
    -
    - - - - - +
    Consultar
    - - -
    +
    +
    + +
    +
    +
    +
    "; $respuesta = new xajaxResponse('utf-8'); @@ -2009,7 +2076,7 @@ return $respuesta; } $nuevo_formulario = "Llenar otro formulario "; - if($control !='' AND $tipo =='' ) { + if($control !='' AND $tipo !='edit' ) { $impresion = formulario_imprimir("$id","$control");