Foros del Web » Programando para Internet » PHP »

Subtotales en una pagina con php

Estas en el tema de Subtotales en una pagina con php en el foro de PHP en Foros del Web. Buenas tardes amigos, Tengo una función en PHP que genera una tabla HTML , con 4 campos, UNO DE ELLOS ES EL MONTO, el cual ...
  #1 (permalink)  
Antiguo 01/02/2012, 13:13
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 5 meses
Puntos: 1
Subtotales en una pagina con php

Buenas tardes amigos,

Tengo una función en PHP que genera una tabla HTML

, con 4 campos, UNO DE ELLOS ES EL MONTO, el cual quiero que una pagina a carta vaya dando los SUB-TOTALES hasta llegar la última fila y alli de el GRAN TOTAL (suma de todos los subtotales).

La funcion es la siguiente:

Código PHP:
private function generarTablaHTML($fecha_inicial,$fecha_final){
//aqui codigo donde recive los parametros para la busquedas segun un rango de fecha (incial, final)...........

        
$tablaHTML '<table style="text-align: center; width: 460px; " border="1" cellspacing="0" cellpadding="0">
                              <tr>
                                  <td style=" text-align: center; width:50;">Nº</td>
                                  <td style=" text-align: center;">Fecha Deposito</td>
                                  <td style=" text-align: center;">Vaucher / Monto</td>
                                  <td style=" text-align: center; width:220;">Banco</td>
                            </tr>'
;
                
$numLinea=1;
                
$totdep=0;
                
$totdep2=0;
        foreach(
$enter_fechas as $datofecha ){
                    if(
$totdep==0) {
                        
$fecha=$datofecha['Fechadeposito']['fecha'];
                    }
                
$fecha_espa=date("d-m-Y",strtotime($datofecha['Fechadeposito']['fecha']));
                            
                        
$depo=$datofecha['Bauche'];
                        
$monto=number_format($depo['monto'],2,',''.');
                       
        
$tablaHTML .= '<tr>
                           <td style=" text-align: center; width:50;">' 
$numLinea'</td>
                           <td style=" text-align: center;">' 
$fecha_espa'</td>
                           <td><table border="1"><tr><td style=" text-align: center;">' 
$depo['num_bauche'] .'</td><td style=" text-align: right;">'.$monto.'</td></tr></table></td>';
                           
$totdep $totdep $depo['monto'];
                           
$totdep2 $totdep2 $depo['monto'];
                           
        
$tablaHTML .= '<td style=" text-align: center; width:220;">'.$datofecha['Banco']['agencia'].'</td></tr>';
        
$numLinea++;
        
       if(
$fecha != $datofecha['Fechadeposito']['fecha']) {

               
$fecha=$datofecha['Fechadeposito']['fecha'];
               
$tablaHTML .= '<tr><td ></td><td></td><td></td><td style="width:155;"><b>SUBTOTAL='.number_format($totdep,2,',''.').' Bs.</b></td></tr>';
               
$totdep=0;
        }
//if($fecha != $datofecha['Fechadeposito']['fecha'])
                    
                
        
        
}//fin del primer foreach foreach($datosFecha as $datofecha )
        
if($totdep<0) {
            
$tablaHTML .= '<tr><td></td><td></td><td></td><td><b>SUBTOTAL='.number_format($totdep,2,',''.').' Bs.<b></td></tr>';
        }
        if(
$totdep2>0) {
            
$tablaHTML .='<tr><td></td><td></td><td></td><td style="width:155;"><b>TOTAL='.number_format($totdep2,2,',''.').' Bs.</b></td></tr>';
        }
        
$tablaHTML .= '</table>';
        
$TOTAL=$totdep2;
        
$totalLetras=$this->num2letras(number_format($totdep2,2,'.',''));
        
        return array(
$tablaHTML,$TOTAL,$totalLetras,$fecha_final,$bancoid);
      }
    }
//fin function generarTablaHTML($fecha_inicial,$fecha_final) 
como pòdria logra eso, ya que e intentado cortar la tabla cuando llegue a <=50 lineas y me de el subtotal, pero no sigue con el calculo al pasar a la sigueinte hoja, alguna idea por favor
__________________
Miguel Padrón :cool:
  #2 (permalink)  
Antiguo 01/02/2012, 14:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Subtotales en una pagina con php

Pues tu código se ve bien... ¿a que te refieres con "la siguiente hoja"? ya que eso te debe de imprimir todo tu HTML de forma correcta...
  #3 (permalink)  
Antiguo 01/02/2012, 14:12
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Subtotales en una pagina con php

Gracias por contestar, Sr GatorV

Lo q pasa si viste bien la imagen, tengo la funcion que devuelve subtotales por grupo de fecha, ed decir:
fecha Monto
01-03-2010 200
01-03-2010 200
01-03-2010 200
SUBTOTAL=600

02-03-2010 200
02-03-2010 200
02-03-2010 300
SUBTOTAL=700

Y la idea es que dicho SUBTOTAL=xxxx lo haga al final en la fila 50 ante de pasar a la sigueinte hoja (hoja 2), asi sucesivamente hasta q no encuentre mas fila para imprimir

Alguna sugerencia por favor????
__________________
Miguel Padrón :cool:
  #4 (permalink)  
Antiguo 01/02/2012, 14:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Subtotales en una pagina con php

Pues simplemente cambia la condición del if:
Código PHP:
Ver original
  1. if($fecha != $datofecha['Fechadeposito']['fecha']) {

Ahí tienes la variable $numLinea que estas usando, simplemente comprueba si es la fila 50 y ahí imprimes.

Saludos.
  #5 (permalink)  
Antiguo 01/02/2012, 14:51
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Subtotales en una pagina con php

Cita:
Iniciado por GatorV Ver Mensaje
Pues simplemente cambia la condición del if:
Código PHP:
Ver original
  1. if($fecha != $datofecha['Fechadeposito']['fecha']) {

Ahí tienes la variable $numLinea que estas usando, simplemente comprueba si es la fila 50 y ahí imprimes.

Saludos.

Listo Sr. GatorV, cambiando lo que tu me sugeriste quedo perfecto, GRACIAS, espero simepre contar contigo y con los demas usuarios de este PRESTIGIOSO foro, saludos

Código PHP:
if($numLinea>50) {

               
$fecha=$datofecha['Fechadeposito']['fecha'];
               
$tablaHTML .= '<tr><td ></td><td></td><td></td><td style="width:155;"><b>SUBTOTAL='.number_format($totdep,2,',''.').' Bs.</b></td></tr>';
               
$totdep=0;
                    }
//if($fecha != $datofecha['Fechadeposito']['fecha']) 
__________________
Miguel Padrón :cool:
  #6 (permalink)  
Antiguo 01/02/2012, 15:09
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Subtotales en una pagina con php

Sr. GatorV, estoy encontre con un pequeño problema a partir de la segunda hoja, ya que continua el conteo de lineas 51,52.......N fila, y veo q me imprime por ejemplo fila 51 y me da el subtotal, fila 52 y me da el subtotal, fila 53 y me da el subtotal, asi sucesivamente y luego el TOTAL

La idea es que continue 51,52.......N fila y si es menor 50 fila que debe llevar una hoja (carta) imprima subtotal y TOTAL general de una vez. Si la funcion sigue y llega a 50 repita el proceso como la hoja uno.

Buenos pasare esta noche y mañana resolviendo esto, si tiene alguna idea porfa comentalo aqui.
hasta mañana,

Saludos
__________________
Miguel Padrón :cool:
  #7 (permalink)  
Antiguo 01/02/2012, 15:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Subtotales en una pagina con php

Tienes que comparar si la fila es la 50'ava fila, por ejemplo:
Código PHP:
Ver original
  1. if ($fila % 50) == 0) { // es la fila 50'ava
  2.  
  3. }
  #8 (permalink)  
Antiguo 02/02/2012, 07:53
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Subtotales en una pagina con php

GatorV, buenos dias, tiene toda la razon Sr. solo modifique la cantidad, para que solo me imprimiera hasta la fila 50, quedando asi:

Código PHP:
if (($numLinea 51) == 0) { 
Solo debo probar coma mas datos para ver como se comporta, en toda caso mil gracias, culaquier cosa regresare por aqui
__________________
Miguel Padrón :cool:

Etiquetas: html, subtotales, tabla
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 21:07.