Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/01/2009, 02:04
miSko
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 19 años, 2 meses
Puntos: 84
Respuesta: Duda con FPDF

Buenas de Nuevo,

Me he hecho esta funcioncita q de momento me saka del apuro, La pongo aqui por si a alguien le hace falta algo parecido, q la modifique a su gusto :P.

Habria que llamar a la funcion por cada fila d la tabla aunq podreis haceros una funcion para enviarle la tabla entera y yasta ;)

Igual es un Poco Caotica xD
A la funcion se le pasa un array de datos compuesto por otro array cuyos campos son texto y size.

Por Ejemplo
Código PHP:

$datos
[0]['texto'] = 'Celda 1 con tamaño 90' ;
$datos[0]['size'] = 90 ;
$datos[1]['texto'] = 'Celda 2 con tamaño 40' ;
$datos[1]['size'] = 40 
Y se le pasa un True | False en funcion si le queremos poner borde a las celdas.

D todas formas insisto, esto me vale a mi, pero a quien lo necesite mas modificado q se lo cambie :P

Código PHP:
function dibujar_fila($array_datos,$poner_borde)
    {
        
$posX $this->GetX() ;
        
$posY $this->GetY() ;
        
$posicionXactual = (integer)$posX ;
        
$numeroLineas ;
        
$sumSize ;        
        foreach(
$array_datos as $dato)
        {
            
$sumSize += $dato['size'] ;
            
$text_size = (integer)$this->GetStringWidth($dato['texto'])+1.5 ;
            
$cell_size = (integer)$dato['size'] ;
            
$numLineas number_format( ($text_size/$cell_size) , 2) ;
            
            
$tmp explode('.',$numLineas) ;

            if (
$tmp[1] > 0)
                
$tmp[0]++ ;
                        
            if (
$tmp[0] > $numeroLineas)
                
$numeroLineas $tmp[0];
        }
        
        foreach(
$array_datos as $dato)
        {
            
$this->SetY($posY) ;
            
$this->SetX($posicionXactual) ;
            if (
$poner_borde == true)
                
$this->MultiCell($dato['size'],6,$dato['texto'],'LR',1,'L') ;
            else
                
$this->MultiCell($dato['size'],6,$dato['texto'],0,1,'L') ;
                
            
$posicionXactual $posicionXactual $dato['size'] ;
        }
        
        if (
$numeroLineas 10)
            
$numeroLineas++ ;
        

        
$a ;
        foreach(
$array_datos as $dato)
        {
            
$sizes[$a] = $dato['size'] ;
            
$a++ ;
        }
        
        if(
$poner_borde == true)
        {
            
$this->SetY($posY) ;
            
            if (
$numeroLineas == 1)
            {
                
$this->Cell($sumSize,6,'',1,1) ;
            }
            else
            {
                if (
$numeroLineas == 2)
                {
                    
$this->Cell($sumSize,6,'','T',1) ;
                    
$this->Cell($sumSize,6,'','B',1) ;
                }
                else
                {
                
                    
$this->Cell($sumSize,6,'','T',1) ;
                    for(
$i=$i $numeroLineas+$i++)
                    {
                        for (
$a=$a count($sizes)-1$a++)
                                
$this->Cell($sizes[$a],6,'','LR',0) ;                            

                        
$this->Cell($sizes[count($sizes)-1],6,'','LR',1) ;                            
                    }
                        for (
$a=$a count($sizes)-1$a++)
                                
$this->Cell($sizes[$a],6,'','LR',0) ;                            

                        
$this->Cell($sizes[count($sizes)-1],6,'','LR',1) ;    
                }
            }
        }
        else
        {
            
$this->SetY($posY) ;
            for(
$i=$i $numeroLineas $i++)
                
$this->Cell(0,6,'',0,1) ;
        }
        
        return 
$numeroLineas ;
    } 
__________________
» Presupuesto Pagina Web