Ejemplo n.º 1
0
 function obtener_html($mostrar_cabecera = true, $titulo = null)
 {
     //Reproduccion del titulo
     if (isset($titulo)) {
         $this->memoria["titulo"] = $titulo;
         $this->memorizar();
     } else {
         if (isset($this->memoria["titulo"])) {
             $titulo = $this->memoria["titulo"];
             $this->memorizar();
         }
     }
     //Manejo del EOF
     if ($this->filas == 0) {
         //La consulta no devolvio datos!
         if ($this->info_cuadro["eof_invisible"] != 1) {
             if (trim($this->info_cuadro["eof_customizado"]) != "") {
                 echo ei_mensaje($this->info_cuadro["eof_customizado"]);
             } else {
                 echo ei_mensaje("La consulta no devolvio datos!");
             }
         }
     } else {
         if (!($ancho = $this->info_cuadro["ancho"])) {
             $ancho = "80%";
         }
         //echo "<br>\n";
         //--Scroll
         if ($this->info_cuadro["scroll"]) {
             $ancho = isset($this->info_cuadro["ancho"]) ? $this->info_cuadro["ancho"] : "500";
             $alto = isset($this->info_cuadro["alto"]) ? $this->info_cuadro["alto"] : "auto";
             echo "<div style='overflow: scroll; height: {$alto}; width: {$ancho}; border: 1px inset; padding: 0px;'>";
             //	echo "<table class='tabla-0'>\n";
         } else {
             $ancho = isset($this->info_cuadro["ancho"]) ? $this->info_cuadro["ancho"] : "100";
             //	echo "<table width='$ancho' class='tabla-0'>\n";
         }
         echo "<table class='objeto-base' width='{$ancho}'>\n\n\n";
         if ($mostrar_cabecera) {
             echo "<tr><td>";
             $this->barra_superior(null, true, "objeto-ei-barra-superior");
             echo "</td></tr>\n";
         }
         if ($this->info_cuadro["subtitulo"] != "") {
             echo "<tr><td class='lista-subtitulo'>" . $this->info_cuadro["subtitulo"] . "</td></tr>\n";
         }
         echo "<tr><td>";
         echo "<TABLE width='100%' class='tabla-0'>";
         //------------------------ Genero los titulos
         echo "<tr>\n";
         for ($a = 0; $a < $this->cantidad_columnas; $a++) {
             if (isset($this->info_cuadro_columna[$a]["ancho"])) {
                 $ancho = " width='" . $this->info_cuadro_columna[$a]["ancho"] . "'";
             } else {
                 $ancho = "";
             }
             echo "<td class='lista-col-titulo' {$ancho}>\n";
             $this->cabecera_columna($this->info_cuadro_columna[$a]["titulo"], $this->info_cuadro_columna[$a]["valor_sql"], $a);
             echo "</td>\n";
         }
         //-- Evento FIJO de seleccion
         echo "<td class='lista-col-titulo'>\n";
         echo "</td>\n";
         echo "</tr>\n";
         //-------------------------------------------------------------------------
         //----------------------- Genero VALORES del CUADRO -----------------------
         //-------------------------------------------------------------------------
         for ($f = 0; $f < $this->filas; $f++) {
             $resaltado = "";
             $clave_fila = $this->get_clave_fila($f);
             //$this->clave_seleccionada
             //$resaltado = "_s";
             echo "<tr>\n";
             for ($a = 0; $a < $this->cantidad_columnas; $a++) {
                 //----------> Comienzo una CELDA!!
                 //*** 1) Recupero el VALOR
                 if (isset($this->info_cuadro_columna[$a]["valor_sql"])) {
                     $valor = $this->datos[$f][$this->info_cuadro_columna[$a]["valor_sql"]];
                     //Hay que formatear?
                     if (isset($this->info_cuadro_columna[$a]["valor_sql_formato"])) {
                         $funcion = "formato_" . $this->info_cuadro_columna[$a]["valor_sql_formato"];
                         //Formateo el valor
                         $valor = $funcion($valor);
                     }
                     //Hay que hacer un formateo externo
                     if (trim($this->info_cuadro_columna[$a]["valor_proceso_parametros"]) != "") {
                         $funcion = $this->info_cuadro_columna[$a]["valor_proceso_parametros"];
                         //Formateo el valor
                         $valor = $funcion($valor);
                     }
                 } elseif (isset($this->info_cuadro_columna[$a]["valor_fijo"])) {
                     $valor = $this->info_cuadro_columna[$a]["valor_fijo"];
                 } else {
                     $valor = "";
                 }
                 //*** 2) PRoceso la columna
                 //Esto no se utiliza desde el instanciador
                 if (!$this->solicitud->hilo->entorno_instanciador()) {
                     if (isset($this->info_cuadro_columna[$a]["valor_proceso"])) {
                         $metodo_procesamiento = $this->info_cuadro_columna[$a]["valor_proceso"];
                         $valor = $this->{$metodo_procesamiento}($f, $valor);
                     }
                 }
                 //*** 3) Generacion de VINCULOS!
                 if (trim($this->info_cuadro_columna[$a]["vinculo_indice"]) != "") {
                     $id_fila = $this->get_clave_fila($f);
                     //Genero el VINCULO
                     $vinculo = $this->solicitud->vinculador->get_vinculo_de_objeto($this->id, $this->info_cuadro_columna[$a]["vinculo_indice"], $id_fila, true, $valor);
                     //El vinculador puede no devolver nada en dos casos:
                     //No hay permisos o el indice no existe
                     if (isset($vinculo)) {
                         $valor = $vinculo;
                     }
                 }
                 //*** 4) Genero el HTML
                 echo "<td class='" . $this->info_cuadro_columna[$a]["estilo"] . $resaltado . "'>\n";
                 echo $valor;
                 echo "</td>\n";
                 //----------> Termino la CELDA!!
             }
             //-- Evento FIJO de seleccion
             echo "<td class='lista-col-titulo'>\n";
             echo toba_form::image($this->submit . $clave_fila, toba_recurso::imagen_toba("doc.gif"), "onClick='seleccionar(\"{$this->datos[$f]['id']}\", \"{$this->datos[$f]['descripcion']}\")';");
             echo "</td>\n";
             //----------------------------
             echo "</tr>\n";
         }
         //----------------------- Genero totales??
         $this->generar_html_totales();
         echo "</table>\n";
         echo "</td></tr>\n";
         echo "</table>\n";
         //Y por cierto......... si esto tenia scroll, cierro el div !!!
         if ($this->info_cuadro["scroll"]) {
             echo "</div>";
         }
         //echo "<br>\n";
     }
 }