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); }
function vista_excel(toba_vista_excel $salida) { $this->_carga_opciones_ef->cargar(); $formateo = new $this->_clase_formateo('excel'); $datos = array(); foreach ($this->_lista_ef_post as $ef) { $opciones = array(); $etiqueta = $this->_elemento_formulario[$ef]->get_etiqueta(); //Hay que formatear? $estilo = array(); if (isset($this->_info_formulario_ef[$ef]["formateo"])) { $funcion = "formato_" . $this->_info_formulario_ef[$ef]["formateo"]; $valor_real = $this->_elemento_formulario[$ef]->get_estado(); list($valor, $estilo) = $formateo->{$funcion}($valor_real); } else { list($valor, $estilo) = $this->_elemento_formulario[$ef]->get_descripcion_estado('excel'); } if (isset($estilo)) { $opciones['valor']['estilo'] = $estilo; } $opciones['etiqueta']['estilo']['font']['bold'] = true; $opciones['etiqueta']['ancho'] = 'auto'; $opciones['valor']['ancho'] = 'auto'; $datos = array(array('etiqueta' => $etiqueta, 'valor' => $valor)); $salida->tabla($datos, array(), $opciones); } }
/** * @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($this->s__sigla . ".xls"); $this->s__datos_filtro['sigla']['valor'] = $this->s__sigla; $excel = $salida->get_excel(); $cabecera = false; //para determinar si escribir los nombre de campo en la fila 1 $fila = 2; $columna = 65; //caracter A //chr(66) devuelve letra de ascii $datos = $this->dep('datos')->tabla('plan_estudio')->listar_planes($this->s__datos_filtro); //print_r($datos[1]); foreach ($datos as $key => $valor) { //Itera sobre los planes $salida->set_hoja_nombre('Planes'); foreach ($valor as $campo => $dato) { //Itera sobre los campos de un plan if (!$cabecera) { //aun no se escribieron los nombres de campos $celda = chr($columna) . '1'; $excel->setActiveSheetIndex(0)->setCellValue($celda, mb_convert_encoding($campo, "UTF8")); //con utf8_decode no se visualiza bien } $celda = chr($columna) . $fila; if (strcasecmp($campo, 'nivel') == 0) { switch ($dato) { case 0: //grado $excel->setActiveSheetIndex(0)->setCellValue($celda, "Grado"); break; case 1: //posgrado $excel->setActiveSheetIndex(0)->setCellValue($celda, "Posgrado"); break; case -1: //pregrado $excel->setActiveSheetIndex(0)->setCellValue($celda, "Pregrado"); break; case 2: //ciclo de licenciatura $excel->setActiveSheetIndex(0)->setCellValue($celda, "Ciclo de Licenciatura"); break; } } else { //demas campos $excel->setActiveSheetIndex(0)->setCellValue($celda, mb_convert_encoding($dato, "UTF8")); } //con utf8_decode no se visualiza bien $columna++; } $fila++; $columna = 65; $cabecera = true; } //Los vuelvo a obtener porque en la otra consulta traia las sedes entonces repetia registros para distintas sedes $datos = $this->dep('datos')->tabla('plan_estudio')->get_ids($this->s__datos_filtro); $hoja = 1; $cabecera = false; foreach ($datos as $key => $valor) { //Itera sobre los planes $nombre_hoja = is_null($valor['iniciales_siu']) ? "Plan" : $valor['iniciales_siu']; $salida->crear_hoja($nombre_hoja); $fila = 2; //Coloca el nombre de la carrera en fila 1 $excel->setActiveSheetIndex($hoja)->setCellValue("A1", mb_convert_encoding($valor['nombre'], "UTF8")); //con utf8_decode no se visualiza bien //Coloca la/s descripcion/es del plan $filtro['id_plan']['valor'] = $valor['id_plan']; $descr = $this->dep('datos')->tabla('seccion')->get_listado($filtro); foreach ($descr as $key => $una_descripcion) { $celda = 'A' . $fila; $excel->setActiveSheetIndex($hoja)->setCellValue($celda, mb_convert_encoding($una_descripcion['titulo'], "UTF8")); //con utf8_decode no se visualiza bien $celda = 'B' . $fila; $excel->setActiveSheetIndex($hoja)->setCellValue($celda, mb_convert_encoding($una_descripcion['contenido'], "UTF8")); //con utf8_decode no se visualiza bien $fila++; } $fila += 2; //Separación extra entre descripciones y materias //Coloca las materias del plan, una por fila $datos = $this->dep('datos')->tabla('materia')->listar_materias($valor['id_plan']); foreach ($datos as $key => $valor) { //Itera sobre las materias foreach ($valor as $campo => $dato) { //Itera sobre los campos de una materia if (!$cabecera) { //aun no se escribieron los nombres de campos $celda = chr($columna) . ($fila - 1); $excel->setActiveSheetIndex($hoja)->setCellValue($celda, mb_convert_encoding($campo, "UTF8")); //con utf8_decode no se visualiza bien } $celda = chr($columna) . $fila; $excel->setActiveSheetIndex($hoja)->setCellValue($celda, mb_convert_encoding($dato, "UTF8")); //con utf8_decode no se visualiza bien $columna++; } $fila++; $columna = 65; $cabecera = true; } $fila++; //Coloca la observación del plan $obs = $this->dep('datos')->tabla('obs_plan')->get_listado($filtro); if (count($obs) > 0) { $excel->setActiveSheetIndex($hoja)->setCellValue("A{$fila}", "Observaciones:"); $excel->setActiveSheetIndex($hoja)->setCellValue("B{$fila}", mb_convert_encoding($obs[0]['descripcion'], "UTF8")); } $cabecera = false; $hoja++; } }
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 }
function vista_excel(toba_vista_excel $salida) { $this->totalizar_columnas_impresion(); $formateo = new $this->_clase_formateo('excel'); $opciones = array(); $datos = array(); if (isset($this->_ordenes)) { //--Titulos $titulos = array(); foreach ($this->_lista_ef_post as $ef) { $titulos[$ef] = $this->ef($ef)->get_etiqueta(); } //--Datos foreach ($this->_ordenes as $fila) { $dato = $this->_datos[$fila]; $this->cargar_registro_a_ef($fila, $dato); $this->_carga_opciones_ef->cargar(); $datos_temp = array(); foreach ($this->_lista_ef_post as $ef) { $this->_elemento_formulario[$ef]->ir_a_fila($fila); if (isset($this->_info_formulario_ef[$ef]["formateo"])) { $funcion = "formato_" . $this->_info_formulario_ef[$ef]["formateo"]; $valor_real = $this->_elemento_formulario[$ef]->get_estado(); list($valor, $estilo) = $formateo->{$funcion}($valor_real); } else { list($valor, $estilo) = $this->_elemento_formulario[$ef]->get_descripcion_estado('excel'); } if (isset($estilo)) { $opciones[$ef]['estilo'] = $estilo; } $opciones[$ef]['ancho'] = 'auto'; $datos_temp[$ef] = $valor; } $datos[] = $datos_temp; } $salida->tabla($datos, $titulos, $opciones); } }
function vista_excel(toba_vista_excel $salida) { $this->_carga_opciones_ef->cargar(); $formateo = new $this->_clase_formateo('excel'); $datos = array(); foreach ($this->_columnas as $columna) { if (!$columna->es_visible()) { continue; } if ($columna->get_ef()->tiene_estado()) { $opciones = array(); $etiqueta = $columna->get_ef()->get_etiqueta(); //Hay que formatear? $estilo = array(); $fn_formateo = $columna->get_formateo(); if (!is_null($fn_formateo)) { $funcion = "formato_" . $fn_formateo; $valor_real = $columna->get_ef()->get_estado(); list($valor, $estilo) = $formateo->{$funcion}($valor_real); } else { list($valor, $estilo) = $columna->get_ef()->get_descripcion_estado('excel'); } $condicion = $columna->condicion()->get_etiqueta(); if (isset($estilo)) { $opciones['valor']['estilo'] = $estilo; } $opciones['etiqueta']['estilo']['font']['bold'] = true; $opciones['etiqueta']['ancho'] = 'auto'; $opciones['condicion']['ancho'] = 'auto'; $opciones['valor']['ancho'] = 'auto'; $datos = array(array('etiqueta' => $etiqueta, 'condicion' => $condicion, 'valor' => $valor)); $salida->tabla($datos, array(), $opciones); } } }
protected function servicio__vista_excel($objetos) { $salida = new toba_vista_excel(); $salida->asignar_objetos($objetos); $salida->generar_salida(); $salida->enviar_archivo(); }