Foros del Web » Programando para Internet » PHP »

Darle formato a reportes

Estas en el tema de Darle formato a reportes en el foro de PHP en Foros del Web. hola tengo un pequeño problema, estoy haciendo un sistema de reportes y hasta ahora todo esta bien, lo unico que el cliente me pidio que ...
  #1 (permalink)  
Antiguo 12/06/2013, 08:24
 
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 11 años, 8 meses
Puntos: 1
Darle formato a reportes

hola tengo un pequeño problema, estoy haciendo un sistema de reportes y hasta ahora todo esta bien, lo unico que el cliente me pidio que no salieran lineas repetidas. Por ejemplo ahora esta saliendo asi

NombreA ------ ApellidoB -------- ProductoC
NombreA ------ ApellidoB -------- ProductoD
NombreA ------ ApellidoB -------- ProductoF
NombreA ------ ApellidoB -------- ProductoE

El cliente solicita que en las lineas que sean del mismo cliente salga de la siguiente manera

NombreA ------ ApellidoB -------- ProductoC
ProductoD
ProductoF
ProductoE
NombreQ ------ ApellidoW -------- ProductoC
ProductoD
ProductoF
ProductoE

Yo ahora estoy haciendo un simple select a una base de datos MySQL y estoy recorriendo uno por uno los datos que me trae el select con un while y dentro del while hago el echo de los datos recorridos. No se si esto que quiero se podra hacer desde la DB o desde la programacion, espero que me orienten un poco. Gracias
  #2 (permalink)  
Antiguo 12/06/2013, 08:44
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Darle formato a reportes

Pon el código que utilizas para imprimir el reporte tal cual lo tienes ahora.
__________________
Aprendiendo!!!
  #3 (permalink)  
Antiguo 12/06/2013, 09:16
 
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Darle formato a reportes

Código PHP:
$queEmp2 "SELECT * FROM socios s 
join transacciones_galeria t  on t.Num_socio=s.Num_socio
WHERE s.id like 'g%'"
." ".$querysocio." ".$queryfactura." ".$queryestatus." ".$querytarifa." ".$querytipos." "$querymeses." ".$querypagohasta." ".$querycodoperativo." ".$queryuser." ".$queryfecha." ".$queryvendedor."
AND s.sucursal='Gold\'s Gym - Arroyo Hondo' 
ORDER BY id_recibo"
;


$resEmp2 mysql_query($queEmp2,$conec1)or die(mysql_error());
$totEmp2 mysql_num_rows($resEmp2); 
Código HTML:
<table width="100%" class="page_header" cellspacing="0" cellpadding="0">
  
  <tr>
    <td style="350px;" align="left" bgcolor="#FFFFFF">&nbsp;</td>
    <td style="400px;" align="left" bgcolor="#C0C0C0"><div style="width:80px;"><b><font style="font-size: 8pt" face="Calibri">&nbsp;&nbsp;&nbsp;&nbsp;FACTURA</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:100px;"><b><font style="font-size: 8pt" face="Calibri">FECHA</font></b></div></td>
    <td style="100px;" align="left" bgcolor="#C0C0C0"><div style="width:60px;"><b><font style="font-size: 8pt" face="Calibri">ID SOCIO</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:110px;"><b><font style="font-size: 8pt" face="Calibri">NOMBRE</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:100px;"><b><font style="font-size: 8pt" face="Calibri">APELLIDO</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:55px;"><b><font style="font-size: 8pt" face="Calibri">COD</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:220px;"><b><font style="font-size: 8pt" face="Calibri">DESCRIPCION</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:75px;"><b><font style="font-size: 8pt" face="Calibri">CANTIDAD</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:75px;"><b><font style="font-size: 8pt" face="Calibri">MONTO UNITARIO</font></b></div></td>
    <td style="350px" align="left" bgcolor="#C0C0C0"><div style="width:75px;"><b><font style="font-size: 8pt" face="Calibri">MONTO</font></b></div></td>
    <td style="350px" align="right" bgcolor="#C0C0C0"><div style="width:75px;"><b><font style="font-size: 8pt" face="Calibri">USUARIO</font></b></div></td>
  </tr>



while ($rowemp2 = mysql_fetch_assoc($resEmp2)) 
{

?>
     <tr>
    <td width="50"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2 ["id_recibo"]; ?></font></td>
    <td width="100"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["fecha"]; ?></font></td>
    <td width="55"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["id_socio"]; ?></font></td>
    <td width="100"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["nombre"]; ?></font></td>
    <td width="100"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["apellido"]; ?></font></td>
    <td width="50"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["cod_ope"]; ?></font></td>
    <td width="220"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["descripcion_cod"]; ?></font></td>
    <td width="75" align="center"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["cantidad"]; ?></font></td>
    <td width="75" align="center"><font face="Calibri" style="font-size: 7.5pt"><?php echo $montouni; ?></font></td>
    <td width="75"><font face="Calibri" style="font-size: 7.5pt"><?php echo $monto ?></font></td>
    <td width="88"><font face="Calibri" style="font-size: 7.5pt"><?php echo $rowemp2["usuario"]; ?></font></td>
  </tr>
<?php





}
  </table> 
como veran el query lo voy armando dinamicamente segun sean los filtros que eliga el usuario, no puse la parte de mas para arriba porque no la crei necesaria. Simplemente el query ya armado
  #4 (permalink)  
Antiguo 12/06/2013, 10:04
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Darle formato a reportes

Justo antes del while creo una variable, (yo la llamo variable bandera)

Código PHP:
Ver original
  1. $codigo_cliente = NULL;

Cuando vayas a imprimir datos de el cliente compruebas que el cliente de esa fila, no sea el mismo que se imprimió en la fila inmediatamente anterior:

Código PHP:
Ver original
  1. //Si no es igual imprimes una fila con datos del socio
  2. if ($codigo_cliente != $rowemp2["id_socio"]) {
  3. //Imprime fila con datos del cliente/socio
  4.  
  5. }
  6. //Imprimes demas filas

Y justo antes de terminar el while debes reasignar la variable $codigo_cliente

Código PHP:
Ver original
  1. $codigo_cliente = $rowemp2["id_socio"];

De esta manera lo que logras es que no se impriman los datos del socio dos veces, mi idea seria, imprimes un td con colspan donde pones los datos del socio y ya el resto de filas con los datos que requieras.

Ahora seria practico que ordenes el resultado de tu consulta por id_socio
__________________
Aprendiendo!!!

Etiquetas: darle, formato, mysql, reportes, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:16.