*/
var $_orientacion;
+ /**
+ * Indica si el encabezado debe ir en la nuevas paginas.
+ * @var bool $encabezado
+ * @access protected;
+ */
+ var $_encabezado;
+
/**
* Class Constructor
*
* @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->_encabezado = $encabezado;
}
/**
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']);
- 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;
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);
}
/**
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);
}
if (@$estilo['colspan']) {
- $jj += $estilo['colspan'];
+ $jj += $estilo['colspan'] -1;
}
}
}
}
if (@$estilo['colspan']) {
- $j += $estilo['colspan'];
+ $j += $estilo['colspan']-1;
}
}