]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/PDF/Tabla.php
Sigo buscando el bug
[mecon/meconlib.git] / lib / MECON / PDF / Tabla.php
index bbe535c5a252ec74c01c7b144dd4d6c3a719db15..d0dc4b26e69b1d4478979e71602f9e4bfa647614 100644 (file)
@@ -60,8 +60,8 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
      * @return void
      * @access public
      */
-    function MECON_PDF_Tabla(&$TABLA) {
-        $this->_tabla =& $TABLA;
+    function MECON_PDF_Tabla($TABLA) {
+        $this->_tabla = $TABLA;
         $this->_config = include 'MECON/PDF/Tabla/medidas.php';
     }
     
@@ -120,12 +120,24 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
      */
     function _obtenerEstiloCelda($row, $col) {
         $clase = $this->_tabla->getCellAttributes($row, $col);
-        if (@$clase['cabecera'] || @$clase['oscura']) {
+        if (@$clase['cabecera']) {
             $estilo = $this->_config['celda_cabecera'];
         }
-        elseif (@$clase['titulo'] || @$clase['clara']) {
+        elseif (@$clase['titulo']) {
             $estilo = $this->_config['celda_titulo'];
         }
+        elseif (@$clase['oscura']) {
+            $tmp = $this->_config['celda_comun'];
+            $tmp['fillcolor'] = $this->_config['celda_cabecera']['fillcolor'];
+            $tmp['fill'] = $this->_config['celda_cabecera']['fill'];
+            $estilo = $tmp;
+        }
+        elseif (@$clase['clara']) {
+            $tmp = $this->_config['celda_comun'];
+            $tmp['fillcolor'] = $this->_config['celda_titulo']['fillcolor'];
+            $tmp['fill'] = $this->_config['celda_titulo']['fill'];
+            $estilo = $tmp;
+        }
         else {
             $estilo = $this->_config['celda_comun'];
         }
@@ -167,8 +179,9 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
         $alto = $this->_marco->espacioDisponible;
         if ($alto <= 0 ) {
             $this->_marco->newPage($this->_marco->tamanio);               
+            $alto = $this->_marco->espacioDisponible;
         }
-        //\@TODO Aca antes de crear una nueva pagina utilizar la que ya existe
+
         $attr2 = $this->_obtenerAnchoColumnas();
         for ($i = 0; $i < $this->_tabla->getRowCount(); $i++) {
             $max = 0;
@@ -187,7 +200,8 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
                 }
             }
             
-            if ($alto <= 0) {
+            if ($alto <= 0) 
+            {
                 $this->_marco->newPage($this->_marco->tamanio);
                 $alto = $this->_marco->espacioDisponible;
                 
@@ -225,15 +239,17 @@ class MECON_PDF_Tabla extends MECON_PDF_Contenido {
                         $this->_marco->orientacion);
                 
                 $alto1 = $alto + $max;
-                foreach ($txtt[$j] as $t) {
-                    $alto1 -= $estilo['alto_linea'];
+                if (@$txtt[$j]) {
+                    foreach ($txtt[$j] as $t) {
+                        $alto1 -= $estilo['alto_linea'];
 
-                    //Ubico el texto segun su alineacion
-                    $init = $this->_obtenerAlineacionTexto($i, $j, $t, $attr2,
-                            $estilo);
-                    
-                    $this->_marco->addText($init, $alto1 + 2,
-                            $t, $estilo, null, $this->_marco->orientacion);
+                        //Ubico el texto segun su alineacion
+                        $init = $this->_obtenerAlineacionTexto($i, $j, $t, $attr2,
+                                $estilo);
+                        
+                        $this->_marco->addText($init, $alto1 + 2,
+                                $t, $estilo, null, $this->_marco->orientacion);
+                    }
                 }
             }
         }