Exemplo n.º 1
0
 function vista_excel(toba_vista_excel $salida)
 {
     $excel = $salida->get_excel();
     $excel->setActiveSheetIndex(0);
     $excel->getActiveSheet()->setTitle('Principal');
     $salida->titulo('Filtro', 3);
     $this->dependencia('filtro')->vista_excel($salida);
     $salida->separacion(2);
     $salida->titulo('Multilínea', 3);
     $this->dependencia('ml')->vista_excel($salida);
     $salida->separacion(2);
     $this->dependencia('cuadro')->vista_excel($salida);
     $salida->separacion(2);
     $salida->titulo('Formulario', 2);
     $this->dependencia('formulario')->vista_excel($salida);
     $salida->crear_hoja('Copia');
     $excel->setActiveSheetIndex(1);
     $salida->titulo('Copia del filtro en hoja 2', 3);
     $this->dependencia('filtro')->vista_excel($salida);
     $salida->separacion(2);
     $salida->titulo('Multilínea', 3);
     $this->dependencia('ml')->vista_excel($salida);
     $salida->separacion(2);
     $this->dependencia('cuadro')->vista_excel($salida);
     $salida->separacion(2);
     $salida->titulo('Formulario', 2);
     $this->dependencia('formulario')->vista_excel($salida);
 }
Exemplo n.º 2
0
 /**
  * @ignore
  * @param toba_vista_excel $salida
  */
 function vista_excel(toba_vista_excel $salida)
 {
     //$this->salida = $salida;
     $titulo = $this->get_titulo();
     $cant_columnas = count($this->_columnas);
     if ($titulo != '') {
         $salida->set_hoja_nombre($titulo);
         $salida->titulo($titulo, $cant_columnas);
     }
     if ($this->_info_cuadro["subtitulo"] != '') {
         $salida->titulo($this->_info_cuadro["subtitulo"], $cant_columnas);
     }
     $this->generar_salida("excel", $salida);
 }
 function vista_excel(toba_vista_excel $salida)
 {
     $salida->set_nombre_archivo("Resultados_Encuesta.xls");
     $excel = $salida->get_excel();
     //recuperamos el objeto
     $salida->titulo("Resultados de la Encuesta");
     $sql = "select titulo,estado from encuesta where id_encuesta=" . $this->s__encuesta;
     $res = toba::db('encuesta')->consultar($sql);
     $tit = utf8_decode($res[0]['titulo']);
     $estado = $res[0]['titulo'];
     if ($estado == 'A') {
         $tit = $tit . '-' . 'Resultados Parciales';
     } else {
         $tit = $tit . '-' . 'Resultados Finales';
     }
     $salida->set_hoja_nombre("Hoja 1");
     $excel->setActiveSheetIndex(0)->setCellValue('A1', $tit);
     //recorro las secciones
     $sql = "select t_s.* from seccion t_s where t_s.id_enc=" . $this->s__encuesta . " order by t_s.id_seccion";
     $res = toba::db('encuesta')->consultar($sql);
     $seccion_nro = 1;
     $fila = 2;
     foreach ($res as $sec) {
         $s = $sec['id_seccion'];
         $consulta = "select count(t_c.id_opcion) as cant from pregunta t_p JOIN seccion t_s ON (t_p.id_sec=t_s.id_seccion)   RIGHT OUTER JOIN opcion_comun t_c ON (t_p.id_pregunta=t_c.id_preg) where t_s.id_seccion=" . $s;
         $resultado = toba::db('encuesta')->consultar($consulta);
         if ($resultado[0]['cant'] != 0) {
             //solo muestro las secciones que tienen al menos una pregunta con opciones comunes
             $dato = $seccion_nro . '. ' . utf8_decode($sec['titulo']);
             //inserto el titulo de la seccion
             $excel->setActiveSheetIndex(0)->setCellValue('A' . $fila, $dato);
             $fila = $fila + 1;
             //recupero los datos de las preguntas de la seccion
             $sql2 = "select t_p.* from pregunta t_p where t_p.id_sec=" . $s . " order by t_p.id_pregunta";
             $datos_preguntas = toba::db('encuesta')->consultar($sql2);
             $preg_nro = 1;
             foreach ($datos_preguntas as $pregunta) {
                 $p = $pregunta['id_pregunta'];
                 $estilo = $pregunta['estilo'];
                 $dato = $preg_nro . '. ' . utf8_decode($pregunta['descripcion']);
                 if ($estilo == 'VR' or $estilo == '1R') {
                     $excel->setActiveSheetIndex(0)->setCellValue('A' . $fila, $dato);
                     $fila = $fila + 1;
                     $preg_nro = $preg_nro + 1;
                     //recupero los datos de las opciones comunes de la pregunta
                     $sql4 = "select t_o.* from opcion_comun t_o where t_o.id_preg=" . $p . " order by t_o.id_opcion";
                     $datos_opciones = toba::db('encuesta')->consultar($sql4);
                     foreach ($datos_opciones as $opcion) {
                         $dato1 = utf8_decode($opcion['nombre']);
                         $dato2 = $opcion['cantidad_respuestas'];
                         //inserto el nombre de la opcion
                         $excel->setActiveSheetIndex(0)->setCellValue('A' . $fila, $dato1);
                         //inserto la cantidad de respuestas de la opcion
                         $excel->setActiveSheetIndex(0)->setCellValue('B' . $fila, $dato2);
                         $fila = $fila + 1;
                     }
                 }
             }
             $seccion_nro = $seccion_nro + 1;
         }
         //fin del if
     }
     //for de las secciones
     //agrego una nueva hoja al excel
     $salida->crear_hoja('Hoja 2');
     $salida->set_hoja_nombre("Hoja 2");
     //inicializo nuevamente para comenzar desde la fila 1
     $seccion_nro = 1;
     $fila = 1;
     //recorro de nuevo todas las secciones
     foreach ($res as $sec) {
         $s = $sec['id_seccion'];
         $consulta = "select count(t_l.id_opcion) as cant from pregunta t_p JOIN seccion t_s ON (t_p.id_sec=t_s.id_seccion)   RIGHT OUTER JOIN opcion_libre t_l ON (t_p.id_pregunta=t_l.id_preg) where t_s.id_seccion=" . $s;
         $resultado = toba::db('encuesta')->consultar($consulta);
         if ($resultado[0]['cant'] != 0) {
             //solo muestro las secciones que tienen al menos una pregunta con opciones libres. Si la seccion no tiene preguntas libres entonces no muestro nada
             $dato = $seccion_nro . '. ' . utf8_decode($sec['titulo']);
             //inserto el titulo de la seccion
             $excel->setActiveSheetIndex(1)->setCellValue('A' . $fila, $dato);
             $fila = $fila + 1;
             //recupero los datos de las preguntas que tienen opciones libre de la seccion
             $sql2 = "select distinct t_p.* from pregunta t_p, opcion_libre t_l where t_p.id_sec=" . $s . " and t_p.id_pregunta=t_l.id_preg order by t_p.id_pregunta";
             $datos_preguntas = toba::db('encuesta')->consultar($sql2);
             $preg_nro = 1;
             foreach ($datos_preguntas as $pregunta) {
                 $p = $pregunta['id_pregunta'];
                 $estilo = $pregunta['estilo'];
                 $dato = $preg_nro . '. ' . utf8_decode($pregunta['descripcion']);
                 //inserto el nombre de la pregunta
                 $excel->setActiveSheetIndex(1)->setCellValue('A' . $fila, $dato);
                 $preg_nro = $preg_nro + 1;
                 //recupero los datos de las opciones libres de la pregunta
                 $sql4 = "select t_l.* from opcion_libre t_l where t_l.id_preg=" . $p . " order by t_l.id_opcion";
                 $datos_opciones = toba::db('encuesta')->consultar($sql4);
                 foreach ($datos_opciones as $opcion) {
                     $dato2 = utf8_decode($opcion['observacion']);
                     //inserto la respuesta de la pregunta
                     $excel->setActiveSheetIndex(1)->setCellValue('B' . $fila, $dato2);
                     $fila = $fila + 1;
                 }
             }
             $seccion_nro = $seccion_nro + 1;
         }
         //fin del if
     }
     //for de las secciones
 }