Hola! Estamos trabajando en un sistema con toba 1.4.8, y tenemos un problema al exportar un docuento al momento de definir la exportacion desde el evento del ci que contiene la pantalla. En la mayoria de los casos dentro de nuestro proyecto tenemos un solo cuadro por pantalla, por lo que la exportación no tiene grandes inconvenientes y se aplica tildando la opción “Exportar a Excel” que se encuentra en las propiedades de la pantalla, de esta manera funciona correctamente.
Pero si tenemos varios cuadros en la pantalla y queremos ver toda la informacion en un solo documento (excel, pdf, impresion o vista preliminar) implementamos la exportacion configurando los 4 eventos en el ci. Existe un filtro a partir del cual se completan los cuadros, si exportamos la informacion antes de filtrar los archivos se generan sin problemas, mostrando solo los titulos y el texto “No hay datos cargados”, pero si existe informacion cargada en los cuadros e intentamos exportar aparece el error. Utilizando la herramienta Logger encontramos la posible causa del problema, los cuatro cuadros se completan en base a un filtro con 3 parametros (facultad, mes y ejercicio), segun lo que muestra el log y lo que pudimos interpretar del manejo interno de toba es que al momento de realizar la exportacion vuelve a hacer la consulta a la base de datos en vez de utilizar los datos que estan en pantalla, y el error surge porque le faltan los parametros, que deberian venir del filtro, la pregunta seria ¿Como le envio los parametros que necesita? si desconozco la sección del código en donde invoca a la consulta nuevamente, es un poco complicado de explicar, pero adjunto la clase que estamos utilizando, el archivo sistema.log y el error que aparece en la pantalla para ver si alguien nos puede dar una mano.
Muchas Gracias!
Alejandra.-
<?php
class ci_mostrar_parte extends toba_ci
{
protected $s__filtro_facultad;
function conf()
{
$this->pantalla()->set_modo_descripcion(false);
}
function conf__bajas($cuadro)
{
if (isset($this->s__filtro_facultad)) {
//$this->s__datos_parametros_consulta es un array que se arma cuando carga el filtro. Si no hay parte registrado, no debe consultar nada.
$cuadro->set_datos(dt_desig_baja::get_bajas_de_parte_novedad($this->s__datos_parametros_consulta));
}
}
//-----------------------------------------------------------------------------------
//---- designaciones ----------------------------------------------------------------
//-----------------------------------------------------------------------------------
function conf__designaciones($cuadro)
{
if (isset($this->s__filtro_facultad)) {
//$this->s__datos_parametros_consulta es un array que se arma cuando carga el filtro. Si no hay parte registrado, no debe consultar nada.
$cuadro->set_datos(dt_designaciones::get_designaciones_de_parte_novedad($this->s__datos_parametros_consulta));
}
}
//-----------------------------------------------------------------------------------
//---- filtro -----------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function conf__filtro()
{
if (isset($this->s__filtro_facultad)) {
return $this->s__filtro_facultad;
}
}
function evt__filtro__filtrar($datos)
{
$this->s__filtro_facultad = $datos;
$this->s__datos_parametros_consulta = array('codc_uacad' => $this->s__filtro_facultad['codc_uacad'],
'idmes' => $this->s__filtro_facultad['idmes'],
'anio' => $this->s__filtro_facultad['ejercicio']);
}
function evt__filtro__cancelar()
{
unset($this->s__filtro_facultad);
}
//-----------------------------------------------------------------------------------
//---- licencias --------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function conf__licencias($cuadro)
{
if (isset($this->s__filtro_facultad)) {
$cuadro->set_datos(dt_designaciones_licencias::get_licencias_de_parte_novedad($this->s__datos_parametros_consulta));
}
}
//-----------------------------------------------------------------------------------
//---- suplencias -------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function conf__suplencias($cuadro)
{
if (isset($this->s__filtro_facultad)) {
$cuadro->set_datos(dt_designaciones::get_suplencias_de_parte_novedad($this->s__datos_parametros_consulta));
}
}
function vista_impresion($salida)
{
$salida->titulo("Parte de Novedades");
//$salida->mensaje('Nota: Este es el Principal');
$this->dependencia('designaciones')->vista_impresion($salida);
$this->dependencia('suplencias')->vista_impresion($salida);
$this->dependencia('licencias')->vista_impresion($salida);
$this->dependencia('bajas')->vista_impresion($salida);
$salida->salto_pagina();
}
function vista_pdf(toba_vista_pdf $salida)
{
//Cambio lo márgenes accediendo directamente a la librería PDF
$pdf = $salida->get_pdf();
$pdf->ezSetMargins(80, 50, 60, 30); //top, bottom, left, right
//Inserto los componentes usando la API de toba_vista_pdf
$salida->titulo("Parte de Novedades");
$salida->separacion();
$salida->separacion();
$salida->separacion();
$this->dependencia('designaciones')->vista_pdf($salida);
$this->dependencia('suplencias')->vista_pdf($salida);
$this->dependencia('licencias')->vista_pdf($salida);
$this->dependencia('bajas')->vista_pdf($salida);
//Pie de página
$formato = 'Página {PAGENUM} de {TOTALPAGENUM}';
$pdf->ezStartPageNumbers(300, 20, 8, 'left', $formato, 1); //x, y, size, pos, texto, pagina inicio
//Encabezado
$pdf = $salida->get_pdf();
foreach ($pdf->ezPages as $pageNum=>$id) {
$pdf->reopenObject($id);
$imagen = toba::proyecto()->get_path().'/www/img/2logo_toba_siu.jpg';
$pdf->addJpegFromFile($imagen, 50, 780, 141, 45); //imagen, x, y, ancho, alto
$pdf->closeObject();
}
}
function vista_excel(toba_vista_excel $salida)
{
$excel = $salida->get_excel();
$excel->setActiveSheetIndex(0);
$salida->separacion(1);
$this->dependencia('designaciones')->vista_excel($salida);
$salida->separacion(3);
$this->dependencia('suplencias')->vista_excel($salida);
$salida->separacion(3);
$this->dependencia('licencias')->vista_excel($salida);
$salida->separacion(3);
$this->dependencia('bajas')->vista_excel($salida);
$excel->getActiveSheet()->setTitle('Parte de Novedades');
}
}
?>