public function autolistar($condicion = 'id<>0', $editar = '', $eliminar = '', $recuperar = '', $tabla = '')
    {
        include_once 'diseno.php';
        $pg = new Diseno();
        $vista = '<center><table class="tablalista">';
        $syntax = 'SELECT COLUMN_NAME, COLUMN_COMMENT 
				FROM    INFORMATION_SCHEMA.COLUMNS 
				WHERE   TABLE_SCHEMA="' . $this->db->database() . '" 
						AND TABLE_NAME="' . $this->estatabla . '"
						AND COLUMN_COMMENT LIKE "%listar:SI%"';
        // Consulta sql para obtener los comentarios de los campos de esta tabla
        //echo '['.$syntax.']<br><br><br>';
        $this->db->query($syntax);
        // Registros del sql
        $lineas = $this->db->rows();
        // cantidad de lineas de la consulta sql
        if (empty($lineas)) {
            $vista .= '<tr><td>No se ha definido ningun registro para mostrarse...!</td></tr>';
        } else {
            $campos = array();
            $comentaux = array();
            $datas = $this->db->getrecordstoarray();
            // trae una matriz con cada uno de los registros de comentarios...
            $lostitulos = $this->db->rows();
            // cantidad de lineas de la consulta sql que representan los campos a listar
            foreach ($datas as $dex => $columna) {
                $campos[$dex] = $columna['COLUMN_NAME'];
                $comentario = $columna['COLUMN_COMMENT'];
                $comentaux[$dex] = $comentario;
                $cols++;
                //---------------------------------------------------------------------------------------------------------------------------------
                // PARA DEFINIR EL TIPO DE EDICION O DISPLAY DE CADA COLUMNA //
                $mostrar[$dex] = '';
                // recuerda aqui definir el tipo de display que va a tener este campo (si es radio o check o FK o dropdown)
                //---------------------------------------------------------------------------------------------------------------------------------
                // PARA DEFINIR EL TITULO DE CADA COLUMNA //
                if ($campos[$dex] !== 'id') {
                    // De ser el campo distinto de id
                    $ps1 = strpos($comentario, 'nombre:');
                    if ($ps1 === false) {
                        $titulos[$dex] = $campos[$dex];
                        // cuando no encuentra nombre entonces el titulo es el campo...
                    } else {
                        $ps2 = strpos($comentario, ";", $ps1 + 7);
                        if ($ps2 === false) {
                            $titulos[$dex] = substr($comentario, $ps1 + 7);
                            // cuando no encuentre el ; del nombre: ...
                        } else {
                            $titulos[$dex] = substr($comentario, $ps1 + 7, $ps2 - ($ps1 + 7));
                            // cuando encuentre nombre: y el ;
                        }
                    }
                }
                //---------------------------------------------------------------------------------------------------------------------------------
            }
            $vista .= '<tr>
							<th style="width:50px;">' . $pg->enlace('./?accion=' . $editar . '&opc=0', 'Agregar', $pg->imagen('./imagenes/add.png" style="margin-top:1px;"')) . '&nbsp;</th>';
            foreach ($titulos as $dex => $titulo) {
                $vista .= '<th>' . $titulo . '</th>';
                //linea de titulos
            }
            $vista .= '</tr>';
            $pnt = $this->buscardonde($condicion, 0);
            if (!$pnt) {
                $vista .= '<tr><td>No se ha encontrado ningun registro para mostrarse...!</td></tr>';
                //En caso de que la tabla se ecuentre vacia
            } else {
                $areg = $this->db->getrecordstoarray();
                //En caso de que existan registros en la tabla
                foreach ($areg as $idx => $reg) {
                    $vista .= '<tr>
									<td style="width:70px">' . $pg->enlace('./?accion=' . $eliminar . '&id=' . $reg['id'], 'eliminar', $pg->imagen('./imagenes/delete.png" " style="margin-top:1px;"')) . $pg->enlace('./?accion=' . $editar . '&opc=' . $reg['id'], 'editar', $pg->imagen('./imagenes/edit.png" " style="margin-top:1px;"')) . '</td>';
                    //Iconos de Eliminaci\F3n y de Edici\F3n respectivamente
                    $c = 1;
                    foreach ($reg as $campo => $valor) {
                        // Obtensi\F3n de los valores de los campos de la tabla
                        $dex = 0;
                        foreach ($campos as $campot) {
                            $dex++;
                            $comentario = $comentaux[$dex];
                            if ($campo !== 'id') {
                                if ($campot === $campo) {
                                    $ps1 = !(strpos($comentario, 'edicion:dropdown') === false);
                                    $ps2 = !(strpos($comentario, 'referencia:') === false);
                                    if ($ps1 and $ps2) {
                                        $ps1 = strpos($comentario, 'referencia:');
                                        // Se obtiene la referencia
                                        $ps2 = strpos($comentario, ";", $ps1 + 11);
                                        $tablareferencia = substr($comentario, $ps1 + 11, $ps2 - ($ps1 + 11));
                                        $syntax = 'SELECT COLUMN_NAME, COLUMN_COMMENT 
										FROM    INFORMATION_SCHEMA.COLUMNS 
										WHERE   TABLE_SCHEMA="' . $this->db->database() . '" 
												AND TABLE_NAME="' . $tablareferencia . '"
												AND COLUMN_COMMENT LIKE "%desplegar:SI%"';
                                        //Sql para tomar tabla referenciada
                                        $this->db->query($syntax);
                                        $camporef = '';
                                        while ($rows = $this->db->fetch()) {
                                            $camporef .= $rows[0] . ',';
                                        }
                                        $syntax = 'SELECT ' . $camporef . ' FROM ' . $tablareferencia . ' WHERE id=' . $valor;
                                        //Sentencia SQL para recuperar valor de los campos para listarlos
                                        $syntax = str_replace(', FROM', ' FROM', $syntax);
                                        $valor = '';
                                        $this->db->query($syntax);
                                        while ($rows1 = $this->db->fetch()) {
                                            $valor = $rows1[0] . ' ' . $rows1[1];
                                            //============trampa de bruja
                                            //===========================
                                        }
                                    }
                                    $ps1 = !(strpos($comentario, 'edicion:radio') === false);
                                    $ps2 = strpos($comentario, 'valores:') === false;
                                    if ($ps1 and $ps2) {
                                        if ($valor == 0) {
                                            $valor = null;
                                        } else {
                                            $valor = $pg->imagen('./imagenes/close.png" style="margin-top:1px;"');
                                        }
                                    }
                                    $vista .= '<td class="mant">' . $valor . '</td>';
                                    // Se muestran los registros en pantalla
                                }
                            }
                        }
                    }
                    $vista .= '</tr>';
                }
            }
        }
        $vista .= '<tr><td colspan="3">' . $pg->enlace('./?accion=' . $editar . '&opc=0', 'Agregar', $pg->imagen('./imagenes/add.png " style="margin-top:1px;"')) . '&nbsp;</td></tr>
		</table></center>';
        $vista = $pg->mensaje('Listado de ' . $tabla, $vista, '', '.', $pg->colorweb2('azul'), $pg->colorweb2('amarillo'));
        return $vista;
    }