Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2011, 08:26
Avatar de 8461277
8461277
 
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años
Puntos: 1
tabla anidada con foreach controlador con cakephp

Buenos dias, amigos foreros, aqui con un problemas q tengo hace varios dias, tengo una consulta en donde quiero pasarla a PDF, elcual utilizo a traves de TCPDF, en si es una tabla bastante compleja en donde consigo imprimir la cedula, nombres y apellidos, las siguiente columnas son mas compleja ya que cada personas tiene una serie de planilla la cual se distribuye segun la orde de pago para cancelar ese monto de inscripción, es decir si el semestre cuesta 2000 bs.f el estudiante puede pagarla con varios depsoito, por lo q puedo tener varios vaucher por planilla.
Logro llegar hasta el apellido para mandarlo a PDF, pero al llegar al numero de planilla se me complica construir la tabla. Esto lo hago en el controlador con el siguiente codigo:
Código PHP:
private function generarTablaHTML($postgrado,$trimestre,$secc)
     {
         
//$datos = $this->getPosts();
    //print_r($secc);

     
$this->Expediente->recursive=2;
               
$vercurso $this->Expediente->find('all', array('conditions' => array('Expediente.programa_id' => $postgrado,'Expediente.trimestre_id' => $trimestre,'Expediente.aula_id' => $secc)));
    
//print_r($vercurso);
    
$inicial0;
    
$fila 0;
    
$contadorRegistro=1;
         
$tablaHTML '<table border="3" cellspacing="2" cellpadding="2">
                         <tr>
                           <th align="center" WIDTH="50">Nª.</th>
                           <th align="center" WIDTH="80">Cédula</th>
                           <th align="center">Nombres</th>
                           <th align="center">Apellidos</th>
                           <th align="center">Nº. Planilla</th>
                         </tr>'
;
                            
         foreach(
$vercurso as $nrg=>$estu)
         {
         
$cedula=number_format($estu['Estudiante']['cedula'],0,'.''.');     
             
//$this->log($estu , LOG_DEBUG);
               
$tablaHTML .= '<tr>
                             <td align="center" WIDTH="50">' 
$nrg '</td>
                 <td WIDTH="80">'
$cedula'</td>
                             <td>' 
$estu['Estudiante']['nombre'] . '</td>
                             <td>' 
$estu['Estudiante']['apellido'] .'</td>';
               foreach(
$estu['Planilla'] as $estu) {
                      
$tablaHTML .='<td><table border="2"><tr><td>'.$estu['numplanilla'].'</td></tr></table></td></tr>';
               }
                          
                
         }
        
// $contadorRegistro++;
    
$tablaHTML .= '</table>';
    
//$tablaHTML .= 'lolo'; 
    
return $tablaHTML;
        
     } 
En la vista utilizo:

Código PHP:
App::import('Vendor','tcpdf');
 
$tcpdf = new TCPDF('L','mm','LETTER',true,'UTF-8',false);
 
//$textfont = 'freesans';
 
$tcpdf->SetCreator(PDF_CREATOR);
 
$tcpdf->SetAuthor("autor");
 
$tcpdf->SetTitle("Título");
 
$tcpdf->SetSubject("Tutorial TCPDF en cakePHP");
 
$tcpdf->SetKeywords("TCPDF, PDF, cakePHP, ejemplo");
 
$tcpdf->setPrintHeader(true);
 
$tcpdf->setPrintFooter(true);
 
$tcpdf->SetMargins(PDF_MARGIN_LEFTPDF_MARGIN_TOPPDF_MARGIN_RIGHT);
 
$tcpdf->SetAutoPageBreak(TRUEPDF_MARGIN_BOTTOM);
 
$tcpdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
 
$tcpdf->setLanguageArray($l);
 
$tcpdf->AliasNbPages();
 
$tcpdf->AddPage();
 
$tcpdf->SetFont("times""BI"12);
 
//$tcpdf->Cell(0,10,$contenido,1,1,'C');
 //$tcpdf->writeHTML();
 
$this->log($contenido LOG_DEBUG);
 
$tcpdf->writeHTML($contenidotrue0true0);
 
$tcpdf->Output($nombreArchivo.".pdf""F"); 
A partir de Nº planilla hay 6 columna mas( vaucher, mono, descripcion costo, resta)

es alli q solo e logrado imprimir en html, pero lo quiero en PDF, es alli q la tabla se anida ya que como dije ante una planilla puede ser pagada con varios depositos, y durante la vida del estudiante tendra varias planillas y por ende muchos depsoitos

Por favor alguien q me pueda orientar a resolver este problema, como puedo atarves de FOREACH anidar tablas e enviarla a la vista desde controlador. Gracias
__________________
Miguel Padrón :cool: