]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/PDF/Tabla.php
Se borran cosas que no entran en mlib.
[mecon/meconlib.git] / lib / MECON / PDF / Tabla.php
index db1f332c2d32992b16d30fea6a32c64fc6010c63..499c406bc3e0f8af596248045ca31889a83d124c 100644 (file)
@@ -59,6 +59,13 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
      */
     var $_orientacion;
     
      */
     var $_orientacion;
     
+    /**
+     * Indica si el encabezado debe ir en la nuevas paginas.
+     * @var bool $encabezado
+     * @access protected;
+     */
+    var $_encabezado;
+    
     /**
      * Class Constructor
      *
     /**
      * Class Constructor
      *
@@ -69,10 +76,11 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
      * @return void
      * @access public
      */
      * @return void
      * @access public
      */
-    function MECON_PDF_Tabla($TABLA, $orientacion = null) {
+    function MECON_PDF_Tabla($TABLA, $orientacion = null, $encabezado = true) {
         $this->_tabla = $TABLA;
         $this->_orientacion = $orientacion;
         $this->_config = include 'MECON/PDF/Tabla/medidas.php';
         $this->_tabla = $TABLA;
         $this->_orientacion = $orientacion;
         $this->_config = include 'MECON/PDF/Tabla/medidas.php';
+        $this->_encabezado = $encabezado;
     }
     
     /**
     }
     
     /**
@@ -177,14 +185,16 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
         for ($row = 0; $row<$this->_tabla->getRowCount(); $row++) {
             for ($i=0; $i<$this->_tabla->getColCount(); $i++ ) {
                 $tmp = $this->_tabla->getCellAttributes($row,$i);
         for ($row = 0; $row<$this->_tabla->getRowCount(); $row++) {
             for ($i=0; $i<$this->_tabla->getColCount(); $i++ ) {
                 $tmp = $this->_tabla->getCellAttributes($row,$i);
-                 if(intval($tmp['width']) != 0)
+                if(@intval($tmp['width']) != 0)
                     $attr[$i] = intval($tmp['width']);
                     $attr[$i] = intval($tmp['width']);
-                if(count($attr) == $this->_tabla->getColCount())
-                  break;
+                if(@count($attr) == $this->_tabla->getColCount())
+                  break 2;
             }
             }
-            if(count($attr) == $this->_tabla->getColCount())
-               break;
         }
         }
+        
+        if (!isset($attr))
+            trigger_error ('Todas las columnas tienen que tener un ancho asignado', E_USER_ERROR);
+        
         $tmp = array_sum($attr);
         
         $attr2[0] = 0;
         $tmp = array_sum($attr);
         
         $attr2[0] = 0;
@@ -204,7 +214,7 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
     function _newPage() {
         $tmp = ($this->_orientacion) ? $this->_orientacion :
             $this->_marco->getOrientation();
     function _newPage() {
         $tmp = ($this->_orientacion) ? $this->_orientacion :
             $this->_marco->getOrientation();
-        $this->_marco->newPage($this->_marco->tamanio, $tmp);               
+        $this->_marco->newPage($this->_marco->tamanio, $tmp, $this->_encabezado);               
     }
 
     /**
     }
 
     /**
@@ -240,9 +250,15 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
                 else {
                    $ancho_columna = $attr2[$j+1] - $attr2[$j];
                 }
                 else {
                    $ancho_columna = $attr2[$j+1] - $attr2[$j];
                 }
-                $txt = $this->_marco->wordWrap(
-                        @$this->_tabla->getCellContents($i,$j), $ancho_columna, 
-                        $estilo);
+                if (@$this->_tabla->getCellContents($i,$j)) {
+                    $txt = $this->_marco->wordWrap(
+                            @$this->_tabla->getCellContents($i,$j), $ancho_columna, 
+                            $estilo
+                            );
+                }
+                else {
+                    $txt = array (' ');
+                }
                 
                 $txtt[$j] = $txt; //Esto es para no hacer el wordWrap siempre
                 $max = max($estilo['alto_linea'] * count($txt), $max);
                 
                 $txtt[$j] = $txt; //Esto es para no hacer el wordWrap siempre
                 $max = max($estilo['alto_linea'] * count($txt), $max);
@@ -295,7 +311,7 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
                         }
 
                         if (@$estilo['colspan']) {
                         }
 
                         if (@$estilo['colspan']) {
-                            $jj += $estilo['colspan'];
+                            $jj += $estilo['colspan'] -1;
                         }
                         
                     }
                         }
                         
                     }
@@ -339,7 +355,7 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
                     }
                 }
                 if (@$estilo['colspan']) {
                     }
                 }
                 if (@$estilo['colspan']) {
-                    $j += $estilo['colspan'];
+                    $j += $estilo['colspan']-1;
                 }
 
             }
                 }
 
             }