Como hacer paginación con JSP

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Como hacer paginación con JSP"

Transcripción

1 Como hacer paginación con JSP Documento propiedad del portal Autor: Miguel Angel García, Pág. 1 de 35

2 Ref: REX PAG. HOJA DE INFORMACIÓN GENERAL CONTROL DOCUMENTAL PROYECTO: ENTIDAD DE DESTINO: TITULO: CODIGO DE REFERENCIA: Rexerve.com Cómo hacer paginación con páginas JSP. REX PAG. VERSION: 2.0 FECHA EDICION: AUTOR: Miguel Angel García RESUMEN: El documento explica cómo hacer paginación de registros, con páginas JSP. DERECHOS DE USO: La presente documentación es propiedad del portal. No tiene carácter de confidencial y podrá ser objeto de reproducción total o parcial, tratamiento informático o transmisión de cualquier forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, registro o cualquiera otro. Asimismo se advierte que los nombres de los propietarios deberán quedar intactos, informando siempre al destinatario final, de dónde se ha obtenido este material. El incumplimiento de las limitaciones señaladas por cualquier persona que tenga acceso a la documentación será perseguido conforme a ley vigente. Pág. 2 de 35

3 Paginación Muchos de vosotros me pedisteis en su día como hacer paginación de registros con Jsp. Quizá en el tutorial de Introducción a Jsp no quedó demasiado claro en su día. Pues bien a partir de ahora, vamos a comenzar un tutorial que os permitirá crear páginas jsp, gracias a un Bean, que muestren registros de una consulta paginados de n en n registros por página. Qué es la paginación de registros? Lo primero de todo es saber de qué estamos hablando, la paginación de registros (a partir de ahora paginación) es la propiedad de mostrar los resultados de una consulta, sea cual sea, el número de registros que devuelva dicha consulta, acotados en número de registros por página. Es decir y en resumen, mostrar por ejemplo, los registros de una consulta de 10 en 10 ó de 20 en 20, o de lo que haga falta. Esta imagen muestra como quedará la página cuando acabemos el tutorial: Esta figura muestra los registros de una consulta o tabla mediante páginas, lo que ocurre es que quizá el ejemplo que he puesto, no es demasiado identificativo porque da la casualidad de que solo tiene una página, pero tranquilos lo que haremos podrá tener tantas páginas como queramos. Y además se podrá parametrizar el número de registros que se desea mostrar por página y muchas otras cosas, como hacer ordenación por un campo que seleccione el usuario o hacer clic en un campo y que se redireccione a otra página incluso pasándole parámetros de la misma consulta. Pág. 3 de 35

4 Estructura del desarrollo y arquitectura. El desarrollo consistirá en crear primeramente un Bean llamado BeanPaginacion.java que tendrá todos métodos y propiedades necesarios para ser utilizado desde una página jsp. Este Bean, será standard y funcionará con cualquier consulta que le pasemos y con cualquier número de campos y registros. Es decir desarrollaremos un componente totalmente autónomo que permita realizar paginación de registros de forma básica y linealmente, de cualquier consulta sencilla. Imposible?. No. Yo lo hice, me costó bastante, pero al final es el Bean que más uso hoy en día y siempre lo llevo conmigo en todos los proyectos, y más pensando que tengo miles de registros en las tablas de mi Oracle y que sacar consultas con muchos datos supondría un trauma muy grande tanto para el navegador como para el usuario que podría esperar indefinidamente a que se ejecutara la consulta. Por supuesto la base de datos que usaremos será Oracle (8.1.7) que es la que tengo montada, sobre un Windows Server en diferente servidor que dónde se ejecutan las páginas. El servidor web es Apache lógicamente, y el servidor de Servlets montado en mi Linux RedHat 7.1, es Jakarta-Tomcat.Con esto tenemos de sobra para empezar a trabajar. La verdad es que no lo he probado con ninguna otra base de datos, pero no creo que encontréis problemas a lo hora de implementar el desarrollo para distintos motores de gestión de datos. A quién va dirigido? A todo el mundo, principiantes, intermedios o avanzados que quieran profundizar. Pero antes de nada tendréis que tener en cuenta que deberéis saber algo sobre: Beans Oracle SQL Arrays de Java Session Formularios Si conocéis algo de todo esto, no os costará nada comprender qué hace y cómo funciona en Bean Paginacion En cuanto al desarrollo necesitareis unas cuantas imágenes, para que el resultado del BeanPaginacion surta efecto, estas imágenes ya os las pasaré cuando nos hagan falta no os preocupeis, aunque cada uno puede poner las imágenes que le de la gana. Pág. 4 de 35

5 Estas imágenes, son por ejemplo, las que saldrán para pulsar en siguiente página, página anterior, etc.o los bordes del marco de la tabla de resultados.estas imágenes deberán ir ubicados en un directorio llamado images, pero ya os digo, lo veremos más adelante. Pág. 5 de 35

6 Funcionalidad Los ejemplos que vamos a crear consistirán en una o múltiples consultas a la base de datos de nuestro portal Rexerve, exactamente a unas tablas que tenemos creadas únicamente para realizar pruebas pruebas. El contenido de estas tablas ha sido cedido por el portal al que estamos muy agradecidos, y que cuenta con más de 1500 alojamientos y más de 350 localidades Extremeñas. Resumiendo, disponemos de una magnifica base de datos de alojamientos de la región de Extremadura en España. (claro como Jorge y yo somo de allí, de dónde iban a ser si no) El desarrollo se basará en la creación de páginas JSP que muestren en pantalla el resultado de una consulta a una tabla llamada REX_ALOJAMIENTOS En la página se mostrarán los registros con la siguiente estructura: TIPO ALOJAMIENTO, NOMBRE ALOJAMIENTO, PROVINCIA, LOCALIDAD Es decir una consulta básica pero con relaciones entre tablas, ya que como vereis más adelante las tablas estarán formadas por campos PK (Primary Key) referenciadas entre sí, por dichos campos clave. También se harán otras consultas en base a peticiones del usuario, simulando así un escenario algo más real, lo que quiere decir que podremos, no sólo mostrar los registros, sino hacer búsquedas y filtros por provincia, localidad, nombre etc. Modelo de datos Antes de empezar a crear el famoso Bean de paginación, deberemos tener claro que este ejemplo que vamos a realizar consistirá en una consulta a unas tablas ya creadas en Oracle cuyos Scripts podeis encontrar a continuación: TABLA ALOJAMIENTOS CREATE TABLE ALOJAMIENTOS ( ID_TIPO_ALOJAMIENTO NUMBER (6), ID_PROVINCIA NUMBER (6), ID_AYUNTAMIENTO NUMBER (6), ID_ALOJAMIENTO NUMBER (6) NOT NULL, NOMBRE VARCHAR2 (50), CONSTRAINT PK_ALOJAMIENTOS PRIMARY KEY ( ID_ALOJAMIENTO ) ) ; TABLA PROVINCIAS CREATE TABLE PROVINCIAS ( ID_PROVINCIA NUMBER (6), PROVINCIA VARCHAR2 (50), CONSTRAINT PK_PROVINCIAS PRIMARY KEY ( ID_PROVINCIA ) ) ; Pág. 6 de 35

7 TABLA AYUNTAMIENTOS CREATE TABLE AYUNTAMIENTOS ( ID_PROVINCIA NUMBER (6), ID_AYUNTAMIENTO NUMBER (6), LOCALIDAD VARCHAR2(100), CONSTRAINT PK_AYUNTAMIENTOS PRIMARY KEY ( ID_AYUNTAMIENTO ) ) ; TABLA TIPO_ALOJAMIENTOS CREATE TABLE TIPO_ALOJAMIENTOS ( ID_TIPO_ALOJAMIENTO NUMBER (6) DESCRIPCION VARCHAR2 (100), IMAGEN VARCHAR2 (100), CONSTRAINT PK_TIPO_ALOJAMIENTOS PRIMARY KEY ( ID_TIPO_ALOJAMIENTO ) ) ; NOT NULL, Una vez creadas estas tablas tendremos el modelo de datos exactamente igual que el que voy a utilizar yo para hacer los ejemplos. Pág. 7 de 35

8 Contenido de las tablas Como hacer paginación con JSP. A continuación se muestra un ejemplo de los datos que hay en las tablas: Siento no poder poneros los Scripts de INSERT de todos los datos en las tablas pero, no puedo dejaros toda esta información, ya que nos ha sido cedida. Alojamientos Cómo ves está formado el tipo de alojamiento, la provincia, la localidad, el código único de cada alojamiento, y por supuesto del nombre de alojamiento. La tabla contiene registros. Ayuntamientos Esta tabla sólo contiene los datos básicos de una localidad, nuestros amigos de VerExtremadura.com, no nos han dado más información, de todos muchas gracias de nuevo, con el campo id_provincia, el campo único id_ayuntamiento y el nombre del municipio. La tabla contiene 382 registros. PROVINCIAS Pág. 8 de 35

9 Como ves la cosa más simple del mundo, dos registros con el nombre de las diferentes provincias que tiene la comunidad Extremeña. Tiene 2 registros. TIPO_ALOJAMIENTOS Esta tabla es también muy simple, pero tiene la particularidad de que dispone de un campo llamado Imagen, el cual contiene la dirección exacta dónde se encuentra las imágenes que después vamos a mostrar en pantalla, es decir en lugar de poner la descripción del tipo de alojamiento, pondremos la imagen que suele ser identificarse más con el tipo de alojamiento. Esta tabla tiene 12 registros. IMAGENES Estas imágenes te las puedes descargar haciendo clic aquí y debes ponerlas exactamente en el directorio images/ de tu servidor o de tu directorio virtual. Pág. 9 de 35

10 Comenzamos el trabajo Como hacer paginación con JSP. En este apartado tocaremos de forma detallada algunos aspectos a tener en cuenta a la hora de desarrollar el Bean, qué es, cómo funciona, los métodos y las propiedades. En nuestro directorio de classes, habitualmente ubicado en, /WEB-INF/classes guardaremos nuestro BeanPaginacion.java, y una vez allí compilarlo tantas veces cómo haga falta. El BeanPaginacion no es complicado de implementar, pero leer el código puede llegar a ser tedioso ya que verás muchos nombre de variables que a lo mejor no aparece claro que hace. Por eso, mucha gente, sobreentiende que funciona, se lo descarga, lo compila y luego lo usa. Totalmente de acuerdo, si algo funciona úsalo sin más. No creo que tengas demasiado tiempo para leerte todo lo referente al bean. Dos cosas importantes: 1. Si quieres hacer tu BeanPaginacion.java te recomiendo que leas con dedicación todo lo referente a las variables y los métodos del mismo. Te servirá de mucho comprender que hace cada fragmente de código en el caso de que tengas problemas para implementarlo. 2. Y dos, si no quieres saber como funciona el Bean y simplemente quieres usarlo, puedes descargártelo y pasar a leer con mucha atención, como hacer las páginas JSP que lo utilizan. Pág. 10 de 35

11 El BeanPaginacion.java El BeanPaginacion.java como cualquier otro Bean, empieza importando las clases necesarias, en esto caso, util,io y sql; y luego el propio nombre del fichero como constructor. import java.util.*; import java.io.*; import java.sql.*; public class BeanPaginacion{ Declaración de variables Entran a formar parte del Bean, numerosas variables que voy a detallar, más o menos, a continuación: //DECLARACIÓN DE VARIABLES //Variables de conexión a la base de datos. Connection cn = null; Statement s = null; boolean conectado; // Conectado si o no? //Datos de la conexión public String dburl = ""; public String pwd = ""; public String usuario = ""; // Variables para las funciones de Agregados, como un SUM // de algún campo numérico. String stragregados = ""; String strcadenafa = ""; // Variables globales para saber si existe un elemento o no y // auxiliar para guadar el target del enlace. boolean encontrado = false; String strtarget = ""; //Variable para guardar la cadena que mostrará el pie con los //número de página. String strcadenapaginas = ""; //Variables para los colores, está inicializados a mi gusto. Pág. 11 de 35

12 // Cambialos si lo deseas. String ColorFondoTabla = "#000066"; String ColorEncabezadoTabla = "#CCCCCC"; String ColorPieTabla = "#DDDDDD"; String ColorTextoFuncionesAgregado = "#123456"; String ColorTextoEncabezadoTabla = "#000000"; String ColorFilaImpar = "#FFFFFF"; String ColorFilaPar = "#EFEFEF"; String ColorFondoTitulo = "#000066"; String ColorTextoTitulo = "#FFFFFF"; String ColorTextoFilas = "#123456"; //Estas son genericas para el formateado de los resultados, como // el ancho de la tabla, el tamaño de la letra, el tipo de // letra etc. String stranchotabla = "70%"; String strtamanoletra = "2"; String strmensaje_no_hay_resultados = Sin datos"; String strhtml_no_resultados = ""; String strtitulo_rejilla = "Consulta"; String strfaceletra = "Verdana"; boolean bl_mostrar_paginaxdey = false; boolean bl_mostrar_paginas = true; // Quizá las más importantes son estas variables que son Arrays // de dos dimensiones. Se explicarán en detalle más adelante. String arcampos_ira[][]; String artitulo_campos[]; String arordenar_campos[][]; String arfagregados_campos[][]; String arnombres_campos[]; //Necesitamos una variable para saber por qué campo vamos a // contar el número de registros que hay en la consulta. String strcampocontarregistros = ""; //Al hacer clic en siguiente página o en anterior, hay que //decirle al Bean el nombre la página.se inicializa a prueba.jsp // pero es obligatorio poner el adecuado si quieres que // funcione. String que_pagina = "prueba.jsp"; //Variables que formaran la consulta. Muy importantes. String strselect = ""; String strfrom = ""; String strgroupby = ""; String strwhere = ""; String strorderby = ""; String enlace1,enlace2 = ""; boolean hay_orderby = false; //Variable para pasarle otros parámetros si hacen falta. // al estilo de &miparam1=valor1&miparam2=valor2 String strotrosparametros = "&"; Pág. 12 de 35

13 //Esta variable sigue aquí pero no implementaremos la impresión boolean imprimir = true; // Típica variable que me ayudará contar registros. int contador = 1; //Cuantos registros por página, se inicializa a 10. // Pero se puede cambiar claro. int registros = 10; //Esta variable, me dice en qué registro estamos, para mostrar //el resto a partir de él. int RegistroActual = 1; Hasta ahora sólo hemos visto como crear de cero el Bean, y las variables que necesitamos. Con lo que llevamos hasta ahora, que no es prácticamente nada, Quedaría de momento así: import java.util.*; import java.io.*; import java.sql.*; public class BeanPaginacion{ /* Declaración de variables aqui */ Pág. 13 de 35

14 Componentes del Bean Como hacer paginación con JSP. El BeanPaginacion.java, se compone de un constructor, funciones, métodos y propiedades. CONSTRUCTOR El constructor de una clase de Java, explicado básicamente, es lo primero que se ejecuta cuando un Bean es inicializado. Este contiene las instrucciones que necesitaremos para hacer correr nuestro Bean. El contructor quedará así: public BeanPaginacion() throws Exception { usuario pwd dburl Conectar(); = USUARIO_BASE_DATOS ; = PASSWORD_DE_BASE_DATOS ); = CADENA_URL_ORACLE_PARA_LA_CONEXION"); FUNCIONES GENERALES Las funciones son estas: Conectar La función Conectar, precisamente, inicializa las variables Cn y s con la conexión a la base de datos y el Statement principal que usaremos a lo largo del Bean. public void Conectar() throws Exception { conectado = true; try { Class.forName("oracle.jdbc.driver.OracleDriver"); cn = DriverManager.getConnection(dbURL, usuario, pwd) s = cn.createstatement(); catch(exception e) { conectado = false; throw e; Pág. 14 de 35

15 Hacer_CadenaNoDatos Como hacer paginación con JSP. Esta función crea un String con la cadena que queramos que salga en pantalla cuando no hay resultados en la consulta. Se puede hacer todo lo compleja o bonita que se quiera pero esta la vamos a hacer muy simple. public void Hacer_CadenaNoDatos() { strhtml_no_resultados= <P> ; strhtml_no_resultados+= strmensaje_no_hay_resultados; strhtml_no_resultados+= " <p> </p> "; Tiene_Registros Esta función tiene como finalidad, devolvernos true en caso de existan registros en la consulta o false, en caso contrario. public boolean TieneRegistros() { String strsql = ""; // SE CREA LA SELECT strsql=strselect; strsql+=strfrom; strsql+=strwhere; if (strgroupby!=null){ strsql+=strgroupby; strsql+=strorderby; boolean boltiene = false; int inttotalreg = 0; try { Statement s1 = cn.createstatement(); ResultSet rstotalregistros = s1.executequery("select count(" + strcampocontarregistros +") AS TOTAL_REGISTROS " + strfrom + strwhere ); if (rstotalregistros!= null){ rstotalregistros.next(); inttotalreg = rstotalregistros.getint("total_registros"); if (inttotalreg>0) boltiene=true; rstotalregistros.close(); s1.close(); catch(exception j){ return boltiene; Pág. 15 de 35

16 CerrarConexion Simplemente cierra la conexión cuando termina. public void CerrarConexion() { try { s.close(); cn.close(); catch(exception e){ Pág. 16 de 35

17 PROPIEDADES Como hacer paginación con JSP. Las propiedades, que yo las llamo así por su similitud a una clase de Visual Basic, son utilizadas para pasarle al Bean los parámetros necesarios antes de que muestre los registros en pantalla. Como por ejemplo el título del listado, el color de las filas impares, el de las pares, o bien el tipo de fuente o el tamaño que usará al imprimir los resultados en pantalla. Las propiedades cargan en las variables globales para el Bean, los datos que le pasemos desde la página JSP, así pues no voy a explicar cada propiedad ya que las variables están, a mi parecer, debidamente comentadas. Puedes guiarte por ellas para saber que hace cada propiedad. Estas son todas las propiedades del Bean: public void settextonohayresultados(string v_mensaje){ strmensaje_no_hay_resultados = v_mensaje; public void setotrosparametros(string v_otros){ strotrosparametros = v_otros; public void setanchotabla(string strancho){ stranchotabla = strancho; public void setcolorfondotabla (String RGBColor){ ColorFondoTabla = RGBColor; public void setcolorencabezadotabla (String RGBColor){ ColorEncabezadoTabla = RGBColor; public void settipoletra strfaceletra (String strtipoletra){ = strtipoletra; public void setcolorpietabla (String RGBColor){ ColorPieTabla = RGBColor; public void settamanoletra (String tamanio){ strtamanoletra = tamanio; public void setcolortextoencabezadotabla (String RGBColor){ ColorTextoEncabezadoTabla = RGBColor; public void setcolorfilaimpar (String RGBColor){ ColorFilaImpar = RGBColor; public void setcolorfilapar (String RGBColor){ ColorFilaPar = RGBColor; public void setcolortextofilas (String RGBColor){ ColorTextoFilas = RGBColor; public void setcolortextotitulo (String RGBColor){ ColorTextoTitulo = RGBColor; Pág. 17 de 35

18 public void setregistros_pagina(int intregistros){ registros = intregistros; public void setregistroactual(int intregistro){ RegistroActual = intregistro; public void settitulos_campos(string array_titulos_campos[]){ artitulo_campos = array_titulos_campos; public void setordenar_campo(string array_ordenar_campos[][]){ arordenar_campos = array_ordenar_campos; public void settitulo_rejilla(string strtitulo){ strtitulo_rejilla = strtitulo; public void setcamposira(string array_camposira[][]){ arcampos_ira = array_camposira; public String[][] getcamposira(){ return arcampos_ira; public void setpagina(string strpagina){ que_pagina = strpagina; public void setcampocontarregistros(string Campo){ strcampocontarregistros = Campo; public String getcampocontarregistros(){ return strcampocontarregistros; public void setfagregados_campo(string array1[][]){ arfagregados_campos = array1; public void setnombres_campos(string array_nombres_campos[]){ arnombres_campos = array_nombres_campos; public void setmostrar_paginaxdey(boolean SioNo){ bl_mostrar_paginaxdey = SioNo; public void setmostrar_paginas(boolean SioNo){ bl_mostrar_paginas = SioNo; public void setselect(string strselect1){ strselect = strselect1; public void setfrom(string strfrom1){ strfrom = strfrom1; public void setgroupby(string strgroupby1){ strgroupby = strgroupby1; public void setwhere(string strwhere1){ strwhere = strwhere1; Pág. 18 de 35

19 MÉTODOS Como hacer paginación con JSP. public void setorderby(string strorderby1){ strorderby = strorderby1; El más importante es el método Mostrar_Registros() que cómo su nombre indica es el que se encarga de imprimir los resultados y además de evaluar todos los parámetros que han sido pasados previamente. El único método que tiene el Bean es precisamente la parte más importante del mismo, ya que es el que te pondrá los datos en pantalla. Se llama Mostrar_Registros() Pág. 19 de 35

20 La página JSP Cómo tenemos casi todo el Bean creado, a falta del método, Mostrar_Registros(), vamos a hacer una pausa para empezar a ver cómo quedaría la página JSP, mediante el ejemplo que aparece en este tutorial. Nos detendremos en cada apartado de la página JSP para explicar a fondo lo que hace cada línea y los parámetros que se le pasan al Bean para que este, funcione adecuadamente. El código de la página JSP, no es especialmente difícil, si se conoce cómo funciona el Bean, ya que únicamente es rellenar las variables, establecerlas y llamar al método Mostrar_Registros(). Enumeraré en poco pasos, como debería ir quedando la página JSP. Son estos: 1.Cabecera de página. 2.JavaScript. 3.Posicionamiento y dirección del cursor. 4.Cláusula SELECT. 5.Nombre y Títulos de los campos 6.Campo clave. 7.Otras variables importantes. 8.Clic en los campos para detalles del registro 9.Ordenación. 10. Mostrar registros y cierre 1.Cabecera de página Lo primero de todo es incluir las líneas necesarias para decirle a la página JSP que utilice el Bean, son estas: <%@ page language="java" import="java.sql.*,java.io.*,java.util.*" %> <jsp:usebean id="mibeanprueba" class="beanpaginacion" scope="page"> <jsp:setproperty name="mibeanprueba" property="*"/> </jsp:usebean> Cómo deberías saber, para llamar a un Bean, necesitas la instrucción <jsp:usebean..> No voy a entrar a explicar cómo se establece la conexión con un Bean, ni los parámetros, tanto opcionales como obligatorios en dicha llamada, ya que no es materia de este tutorial. Simplemente yo lo hago así. Pág. 20 de 35

21 2. JavaScript Una parte fundamental de la página JSP para que el efecto de resaltado de cada línea tenga efecto son unas instrucciones de JavaScript que debe ir al principio de cada página, entre los tagas, <head> y </head> Un ejemplo de código sería este: <html> <head> <title>ejemplo de Paginación. Rexerve.com</title> <SCRIPT LANGUAGE="JavaScript"> <!-- function dentro(origen,color) { if (!origen.contains(event.fromelement)) { // origen.style.cursor = 'hand'; origen.bgcolor = Color; function salir(origen,color2) { if (!origen.contains(event.toelement)) { origen.style.cursor = 'default'; origen.bgcolor = Color2; function hacer_click(origen) { if(event.srcelement.tagname=='tr'){ origen.children.tags('a')[0].click(); // --> </SCRIPT> </head> Gracias a estas líneas, al poner el cursor sobre cualquier línea de los datos, dicha línea, se resaltará con un color que puede personalizarse a gusto del consumidor. Aunque lo ideal es meter este código dentro de un archivo de Script.js puede ponerlo en todas las páginas si lo deseas. 3. Posicionamiento y dirección del cursor. A continuación debemos recoger los parámetros que el propio Bean nos envía. Estos parámetros son el Registro por dónde quieres empezar a mostrar registros y otro es la dirección a dónde queremos dirigirnos, es decir hacia delante o hacia atrás. El código quedaría asi: <%// INICIALIZA EL REGISTRO EN EL QUE DEBE POSICIONARLE LA PRIMERA VEZ // QUE SE ENTRA EN LA PAGINA. // **************************************************** int RegistroActual = 1; String v_direccion = ""; // RECOGE EL PAREMETRO POR SI SE HA MOVIDO DE PAGINA // ************************************************** try { if (request.getparameter("actual")!= null) RegistroActual = Integer.parseInt(request.getParameter("Actual")); catch(exception e) { RegistroActual = 1; Pág. 21 de 35

22 // RECOGE EL PAREMETRO DE DIRECCION // ********************************** try { if (request.getparameter("direccion")!= null) v_direccion = request.getparameter("direccion"); catch(exception e) { v_direccion = null; String empezar = request.getparameter("actual"); if (empezar==null) empezar=""; //VARIABLE PARA EL REGISTRO ACTUAL DONDE SE ENCUENTRA // SI SE LE HA PASADO PARAMETRO DE BUSQUEDA SE LE PONE AL // RegistroActual if (!(empezar.equals(""))){ if (Integer.parseInt(empezar) <= 0) RegistroActual = 1; else RegistroActual = Integer.parseInt(empezar); %> A partir de estas líneas de código estamos en disposición para empezar a pasarle parámetros al BeanPaginacion. 4. Cláusula SELECT Ahora vamos a establecer las opciones de la SELECT, para ello contamos con 4 variables importantes, que además deben estar siempre creadas y establecidas, si no es así no funcionará correctamente. El siguiente fragmento de código quedará asi: <% // VARIABLES PARA FORMAR LA SELECT COMPLETA // **************************************************** String strselect = ""; String strfrom = ""; String strwhere = ""; String strorderby = ""; // SE CREA LA SENTENCIA 'SELECT', EL 'FROM', LA 'WHERE' Y EL // 'ORDER BY' // ****************************************************** strselect=" SELECT ALOJAMIENTOS.ID_ALOJAMIENTO AS CODIGO,"; strselect+=" '<img src=\"' TIPO_ALOJAMIENTOS.IMAGEN '\">' AS IMAGEN,TIPO_ALOJAMIENTOS.DESCRIPCION AS DESCRIPCION,ALOJAMIENTOS.NOMBRE AS NOMBRE, "; strselect+=" PROVINCIAS.PROVINCIA AS PROVINCIA,AYUNTAMIENTOS.LOCALIDAD AS MUNICIPIO"; strfrom=" FROM ALOJAMIENTOS,TIPO_ALOJAMIENTOS,PROVINCIAS,AYUNTAMIENTOS "; strwhere=" WHERE ALOJAMIENTOS.ID_AYUNTAMIENTO=AYUNTAMIENTOS.ID_AYUNTAMIENTO "; Pág. 22 de 35

23 strwhere+=" AND ALOJAMIENTOS.ID_PROVINCIA =PROVINCIAS.ID_PROVINCIA"; strwhere+=" AND PROVINCIAS.ID_PROVINCIA = AYUNTAMIENTOS.ID_PROVINCIA "; strwhere+=" AND ALOJAMIENTOS.ID_TIPO_ALOJAMIENTO=TIPO_ALOJAMIENTOS.ID_TIPO_ALOJAMIENTO "; strorderby=" ORDER BY ALOJAMIENTOS.NOMBRE "; %> <%// SE ESTABLECEN LA SELECT, LA FROM, LA WHERE Y EL ORDER BY // **************************************** mibeanprueba.setselect(strselect); mibeanprueba.setfrom(strfrom); mibeanprueba.setwhere(strwhere); mibeanprueba.setorderby(strorderby); %> 5. Nombres y Títulos de los campos Para que el Bean sepa cuales son los campos que necesita sabes, y para puedas imprimir solo aquellos que de verdad quieres que muestre, permitiendo hacer así una SELECT con más campos por si lo necesitas para algo, tiene que especificarle que campos quieres que muestre; esto se hace con este código: <%//ARRAY CON LOS NOMBRES DE LOS CAMPOS QUE SE QUIEREN MOSTRAR //********************************************************** String[] array_nombres_campos= new String[4]; array_nombres_campos[0] = "IMAGEN"; array_nombres_campos[1] = "NOMBRE"; array_nombres_campos[2] = "PROVINCIA"; array_nombres_campos[3] = "MUNICIPIO"; mibeanprueba.setnombres_campos(array_nombres_campos); %> Procura que coincidan con los de la SELECT, es totalmente obligatorio ya que si no lo es así te dirá que no encuentra el campo en la cláusula. Títulos de los campos. Los nombre de los campos no siempre coinciden con lo que de verdad quieres que escriba en pantalla, a decir verdad, casi nunca coincidirán. Por ejemplo es muy común que en la cabecera de la columna COD_REGISTRO, quieras poner CODIGO simplemente. Por este motivo he separado en dos Arrays los nombres de los campo de los nombres de las columnas. Para establecer la descripción de las columnas puedes escribir el siguiente código: <% //ARRAY CON LOS TITULOS DE LOS CAMPOS QUE APARECEN //************************************************ String[] array_titulos_campos = new String[4]; array_titulos_campos[0] = "Tipo"; array_titulos_campos[1] = "Alojamiento"; array_titulos_campos[2] = "Provincia"; array_titulos_campos[3] = "Localidad"; mibeanprueba.settitulos_campos(array_titulos_campos); %> Pág. 23 de 35

24 6. Campo clave Es muy importante, tener un campo clave único para que el Bean pueda saber cuantos registros tiene la consulta y así saber cuantas páginas tiene que mostrar en los resultados. Para ello debes establecer cual es campo clave o Primary Key de tu consulta, en este ejemplo es ALOJAMIENTOS.ID_ALOJAMIENTO: <%//CAMPO QUE SE UTILIZA PARA SABER CUANTOS REGISTROS TIENE LA SELECT //************************************************** mibeanprueba.setcampocontarregistros("alojamientos.id_alojamiento"); %> 7. Otras variables importantes Otros datos importantes serán el número de registros que deseas poner en cada pantalla, el ancho de la tabla con los resultados y el nombre de la página JSP. Para establecer estos valores sólo debes escribir las siguiente líneas de código: <% // SE ESTABLECEN EL NUMERO DE REGISTROS POR PAGINA // *********************************************** mibeanprueba.setregistros_pagina(5); // A QUE PAGINA TIENE QUE IRSE CUANDO HACE LA PAGINACIÓN // ES EL MISMO NOMBRE QUE ESTA PAGINA // ***************************************************** mibeanprueba.setpagina("ejemplo_paginacion2.jsp"); // ANCHO DE LA TABLA CON LOS RESULTADOS // ***************************************************** mibeanprueba.setanchotabla("500"); //PIXELS. TAMBIEN PUEDES PONER POR EJEMPLO 80% //SE LE PASA EN QUE REGISTRO SE QUIERE EMPEZAR A MOSTRAR DATOS //************************************************************* mibeanprueba.setregistroactual(registroactual); //TITULO DE LA REJILLA //********************* mibeanprueba.settitulo_rejilla("cabecera de la consulta"); %> 8. Clic en los campos para detalles del registro. Al mostrar registros en pantalla lo más habitual es que necesitemos hacer clic en alguna parte para irnos a otra página y mostrar detalle por ejemplo, o bien mostrar otra página que disponga de más información. Para ello he habilitado una propiedad especial que permitirá hacer este proceso :SetCampoIrA. SetCampoIrA, es una propiedad a la que deberás pasar siempre un Array con al menos 4 elementos, el nombre del campo que cogerá como valor del parámetro, el nombre del parámetro, el título del campo de los mostrados en pantalla que utilizará para hacer el clic y por último la página a la que debe irse. <% /* ******************************************************* Pág. 24 de 35

25 COMO CONSTRUIR EL ARRAY DE IR A --> IMPORTANTE QUE ESTE ARRAY TENGA INFORMACION CORRECTA array_camposira[n][0] = "CODIGO"; --> nombre del campo que coge como valor del parametro; array_camposira[n][1] = "id"; --> nombre del parametro array_camposira[n][2] = NOMBRE"; --> campo de los mostrados que se utiliza para hacer el link array_camposira[n][3] = "detalles1.jsp"; --> pagina a la que se va SI EL ENLACE A OTRA PAGINA TIENE MAS DE UNA PARAMETRO BASTA CON AGREGAR UN ELEMENTO MAS AL ARRAY CON EL MISMO NOMBRE DE CAMPO QUE VINCULA PERO CON DISTINTO NOMBRE DE PARAMETRO Y DISTINTO VALOR DE CAMPO EN EL EJEMPLO, EL ELEMENTO 0 Y 1 DEL ARRAY UTILIZAN EL MISMO CAMPO DE LINK Y TIENE DOS PARAMETRO QUE SE LE PASA A LA PAGINA detalles1.jsp ****************************************************** */ String[][] array_camposira = new String[3][4]; array_camposira[0][0] = "CODIGO"; array_camposira[0][1] = "id_alojamiento"; // --> SI HAY DOS IGUALES LOS COGERÁ JUNTOS array_camposira[0][2] = "NOMBRE ; array_camposira[0][3] = " detalles1.jsp"; %> mibeanprueba.setcamposira(array_camposira); 9. Ordenación. Otro aspecto que puede ser importante es la ordenación, para poder ordenar la consulta por alguno de los campos puedes utilizar la propiedad setordenar_campo(). Aquí tienes un ejemplo de cómo se usa. <% //ARRAY CON LOS NOMBRES DE LOS CAMPOS QUE PERMITEN ORDENACION //************************************************ String[][] array_ordenar_campos = new String[1][2]; array_ordenar_campos[0][0] = "Alojamiento";// --> título del campo array_ordenar_campos[0][1]= "NOMBRE";// ---> nombre del campo mibeanprueba.setordenar_campo(array_ordenar_campos); %> 10. Mostrar registros y cierre. Por último debemos llamar al método que hace que todo funcione que es, el ya fomoso, Mostrar_Registros(). Aunque todavía no lo hemos explicado, (ya lo haremos), es el motor que hace funcionar todo. Deberás poner esta líneas de código de esta forma: <% //MOSTRAR LOS RESULTADOS EN PANTALLA //********************************* %> Pág. 25 de 35

26 <%=mibeanprueba.mostrar_registros()%> </body> </html> La verdad es que entender todo lo que hemos visto hasta ahora, puede llevarte tiempo. Así que puedes ver y descargarte todo el código de la página JSP siguiendo este enlace : /rexerve/samples/ejemplo_paginacion.txt O bien si deseas ver un ejemplo de lo que hace esta página jsp, dirígete a: /rexerve/ejemplo_paginacion2.jsp Pág. 26 de 35

27 El método Mostrar_Registros() Por fin llegamos al último capítulo de este tutorial y lo hacemos mostrando el código que consigue mostrar los registros en pantalla, teniendo en cuenta todos los parámetros que le hemos pasado desde la página JSP. El método Mostrar_Registros(), como su propio nombre indica, es el encargado de elaborar la Select, en base a las variables strselect, strfrom, strwhere y strorderby, una simple concateneción basta para formar la cláusula, y empezar, después, a recorrer los registros des el registro marcado como RegistroActual. No es difícil de entender, pero si de hacer, ya que además de poner los registros en la página de una forma coherente y paginada, tiene que saber, por ejemplo en campo se tiene que hacer un clic, y que página ir, y además que parámetros pasarle a dicha págia. O bien saber si tiene que hacer ordenación por un campo u otro. Se utilizan algunas imágenes que puedes encontrar justo debajo. y además un punto transparente de 1x1 pixels. Puedes descargártelas de : Como se que ahí es difícil de leer, tienes el Bean completo en la dirección: En fin aquí el va todo el código de este método: public String Mostrar_Registros(){ String strsql = ""; String strcadena = ""; int contador = 1; int i = 0; // CREO LA SELECT strsql=strselect; strsql+=strfrom; strsql+=strwhere; //GROUP BY 25/02/2002 if (strgroupby!=null){ strsql+=strgroupby; strsql+=strorderby; try { // ***************************************** // SACA LOS DATOS PARA LAS FUNCIONES DE AGREGADO. Pág. 27 de 35

28 // ***************************************** Statement sfa = cn.createstatement();; ResultSet rsagregados ; if (arfagregados_campos!= null){ for (int mk=0;mk<arfagregados_campos.length;mk++){ stragregados = "SELECT "; stragregados+= "'<div align=\""+arfagregados_campos[mk][4]+"\">' TO_CHAR("+arFAgregados_Campos[mk][2]+ "(" +arfagregados_campos[mk][1]+"),'99,999,999,990.90') '</div>' "; stragregados+=strfrom; stragregados+=strwhere; rsagregados = sfa.executequery(stragregados); if (rsagregados!= null){ rsagregados.next(); arfagregados_campos[mk][3] = rsagregados.getstring(1); // CALCULA EL NUMERO DE PAGINAS QUE HAY EN LA SELECT rsagregados.close(); // ***************************************** // SACA EL NUMERO DE REGISTROS DE LA TABLA // ***************************************** int inttotalreg = 0; Statement s1 = cn.createstatement(); ResultSet rstotalregistros = s1.executequery("select count(" + strcampocontarregistros +") AS TOTAL_REGISTROS " + strfrom + strwhere ); if (rstotalregistros!= null){ rstotalregistros.next(); inttotalreg = rstotalregistros.getint("total_registros"); // CALCULA EL NUMERO DE PAGINAS QUE HAY EN LA SELECT // *************************************************** int Total_Paginas = 0; if (inttotalreg > 0){ Total_Paginas = inttotalreg / registros; if (inttotalreg % registros >0) Total_Paginas ++; rstotalregistros.close(); s1.close(); // FIN DEL REGISTROS DE LA TABLA // ***************************** { if (inttotalreg >0 && (RegistroActual >=1) ) strcadena+="<table width='"+stranchotabla+"' border='0' cellspacing='2' cellpadding='1' align='center'>"; strcadena+=" <tr bgcolor='"+colorfondotabla+"'> "; strcadena+=" <td> "; Pág. 28 de 35

29 strcadena+="<table width='100%' border='0' cellspacing='1' cellpadding='3' align='center'>"; strcadena+=" <tr background=\"images/top_nav.jpg\" bgcolor='"+colorfondotitulo+"'> "; if( imprimir ) { strcadena+=" <td background=\"images/top_nav.jpg\" colspan='"+arnombres_campos.length+"'><b><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextotitulo+"'><b>" + strtitulo_rejilla + "</b></font></b></td>"; else { strcadena+=" <td colspan='"+(arnombres_campos.length- 1)+"'><b><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextotitulo+"'><b>" + strtitulo_rejilla + "</b></font></b></td>"; //strcadena+=" <td align='right'><a href='imprimir_busqueda.jsp?formulario=1'><image src='images/printer2a.gif' border='0' alt='versión imprimible'></a></td>"; strcadena+="</tr>"; strcadena+=" <tr> "; //el order by pasado por el array hay_orderby=false; for (int k=0;k<artitulo_campos.length;k++){ strcadena+="<td bgcolor='" +ColorEncabezadoTabla+"'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextoencabezadotabla+"'><b>" + artitulo_campos[k] + "</b></font>"; try { for (int mm=0;mm<arordenar_campos.length;mm++){ if (artitulo_campos[k].equals(arordenar_campos[mm][0])){ strcadena+="<a href="+que_pagina+"?orderby=order%20by%20"+arordenar_campos[mm][1]+str OtrosParametros+"><img width=\"20\" height=\"17\" align=\"absmiddle\" alt=\"ordenar Ascendente\" border=\"0\" src=\"images/order_down1.gif\"></a> <a href="+que_pagina+"?orderby=order%20by%20"+arordenar_campos[mm][1]+"%2 0DESC"+strOtrosParametros+"><img border=\"0\" width=\"16\" height=\"17\" align=\"absmiddle\" src=\"images/order_up1.gif\" alt=\"ordenar descendentemente\"></a>"; catch(exception e){ strcadena+="</td>"; strcadena+=" </tr>"; //**************************************************************** *********** //PONE LOS RESULTADOS DE LAS FUNCIONES DE AGREGADO EN UNA CADENA. strcadenafa Pág. 29 de 35

30 //**************************************************************** *********** try{ if (arfagregados_campos.length>0) strcadenafa=" <tr> "; catch(exception j){ for (int yk=0;yk<artitulo_campos.length;yk++){ try { encontrado = false; for (int sa=0;sa<arfagregados_campos.length;sa++){ if (artitulo_campos[yk].equals(arfagregados_campos[sa][0])){ encontrado = true; strcadenafa+="<td bgcolor='" +ColorEncabezadoTabla+"'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextofuncionesagregado+"'><b>" + arfagregados_campos[sa][3] + "</b></font>"; if (!(encontrado)) strcadenafa+="<td bgcolor='" +ColorEncabezadoTabla+"'><img src=\"images/punto_trans.gif\">"; try{ catch(exception e){ strcadenafa+="</td>"; if (arfagregados_campos.length>0) strcadenafa+=" </tr> "; catch(exception j){ ResultSet rs = s.executequery(strsql); if (inttotalreg >0 && (rs.next() RegistroActual >=1) ) { int contador_registros = 1; int pagina = 1; int registros_anteriores = 1; //**************************************************************** ****** //SABER LOS REGISTROS ANTERIORES Y Y LA PAGINA EN LA QUE ESTA EL USUARIO //**************************************************************** ****** while (registros_anteriores < RegistroActual) { rs.next(); registros_anteriores++; //CALCULA QUE PAGINA SE ESTA MOSTRANDO //************************************** if (contador_registros >= registros) { contador_registros = 0; pagina++; //VARIABLE CUYO VALOR ES LA PAGINA EN LA QUE EST\u00c1 Pág. 30 de 35

31 Como hacer paginación con JSP. contador_registros++; //********************** //PAGINAS DE LA CONSULTA //********************** int inicio = 1; // SE CALCULA EN QUE PAGINA DEBE EMPEZAR LA CADENA DE PAGINAS // ********************************************************** if ( pagina > 10 ) inicio = pagina - 5; else if (pagina==10) inicio = 9; int contador_paginas = 1; // HAGO LA CADENA QUE SIRVE PARA MOSTRAR LAS PAGINAS // *************************************************** for (int y=inicio;y<=total_paginas;y++){ if (y!= pagina) strcadenapaginas+="<a href='" +que_pagina +"?Actual=" + String.valueOf((y*registros)+1- registros)+"&direccion=s&orderby="+strorderby+strotrosparametros+"'>"; else strcadenapaginas+="<b><font size='"+strtamanoletra+"' face='"+strfaceletra+"'>["; strcadenapaginas+=y; if (y!= pagina) strcadenapaginas+="</a>"; else strcadenapaginas+="]</font></b>"; if (y!=total_paginas) strcadenapaginas+=" "; contador_paginas++; if (contador_paginas >10) break; // si ya se que queda un poco mal pero me la suda!! // REGISTROS DE LA CONSULTA // *********************** do { if (i==0){ strcadena+="<tr bgcolor='" + ColorFilaImpar +"' onclick=\"hacer_click(this)\" onmouseout=\"salir(this,'"+colorfilaimpar+"');\" onmouseover=\"dentro(this,'#efef99');\">"; i=1; else { strcadena+="<tr bgcolor='" + ColorFilaPar + "' onclick=\"hacer_click(this)\" onmouseout=\"salir(this,'"+colorfilapar+ "');\" onmouseover=\"dentro(this,'#efef99');\">"; i=0; Pág. 31 de 35

32 CAMPO Como hacer paginación con JSP. for (int j=0;j<arnombres_campos.length;j++){ enlace1= ""; enlace2= ""; //SE CONTROLA SI HAY QUE PONER <A HREF..> EN EL boolean hay_mas; int g=0; int h=0; while (g<arcampos_ira.length){ // SI HAY QUE PONER UN LINK... if (arcampos_ira[g][2] == arnombres_campos[j]){ hay_mas = false; strtarget=""; try{ if (arcampos_ira[g][4]!= null){ strtarget = " target="+arcampos_ira[g][4]; catch(exception e){ enlace1 = "<a "+strtarget+" href="+ arcampos_ira[g][3]+ "?" + arcampos_ira[g][1] + "=" + rs.getstring(arcampos_ira[g][0]); h=g+1; // PUEDE QUE TENGA MAS PARAMETROS EN LA LLAMADA A LA PAGINA... while (h<arcampos_ira.length){ if (arcampos_ira[h][2] == arnombres_campos[j]){ hay_mas = true; enlace1+="&" + arcampos_ira[h][1] + "=" + rs.getstring(arcampos_ira[h][0]); h++; if (hay_mas) g=h-1; enlace1+= strotrosparametros+ ">"; enlace2= "</a>"; g++; // SE EVITAN LOS NULOS EN LOS ENLACES if (enlace1==null) enlace1= ""; if (enlace2==null) enlace2= ""; // SE IMPRIME LA FILA CON EL VALOR strcadena+="<td><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextofilas+"'>" + enlace1 + rs.getstring(arnombres_campos[j]) + enlace2+"</font></td>"; strcadena+="</tr>"; contador++; while ( contador<=registros && rs.next() ); //SE IMPRIME LAS FUNCIONES DE AGREGADO try { if (arfagregados_campos.length>0) strcadena+=strcadenafa; Pág. 32 de 35

33 catch(exception j){ //PIE DE LA TABLA 1 --> PAGINA 1 DE n //************************************* if (bl_mostrar_paginaxdey){ strcadena+=" <tr> "; strcadena+="<td colspan='"+ artitulo_campos.length+1 +"' bgcolor='" +ColorPieTabla+"'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextoencabezadotabla+"'>p\u00e1gina " + pagina + " de " + Total_Paginas+"</font></td>"; strcadena+="</tr> "; //PIE DE LA TABLA --> P\u00e1gina : n //********************************************************* if ((bl_mostrar_paginas) && (Total_Paginas >= pagina)) { strcadena+=" <tr> "; strcadena+="<td colspan='"+ artitulo_campos.length+1 +"' bgcolor='" +ColorPieTabla+"' align='center'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextoencabezadotabla+"'>" + strcadenapaginas + "</font></td>"; strcadena+="</tr> "; strcadena+="</table>"; strcadena+=" </td></tr></table>"; // *********************************************** // SE CALCULA SI HAY QUE PONER ANTERIOR Y/o SIGUIENTE // *********************************************** String StrNavegacion = ""; StrNavegacion+= "<table width='508' border='0' cellspacing='2' cellpadding='1' align='center'>"; StrNavegacion+= "<tr align='center'> "; if (RegistroActual >= registros + 1){ StrNavegacion+= "<td width='220'> "; StrNavegacion+= "<div align='right'><a href='"+que_pagina+"?actual="+string.valueof(registroactualregistros)+"&direccion=ant&orderby="+strorderby+strotrosparametros+"'> "; StrNavegacion+= "<font size='"+strtamanoletra+"' face='"+strfaceletra+"' ><img src='images/back.gif' border='0' alt='"+registros+" registros anteriores'></font></a> </div>"; StrNavegacion+= "</td>"; else { StrNavegacion+= "<td width='220'>\u00a0\u00a0 </td>"; StrNavegacion+= "<td width='220'>\u00a0\u00a0 </td>"; if ( (contador - 1 < inttotalreg) && (RegistroActual == 1) ){ StrNavegacion+= "<td ' width='220'>"; StrNavegacion+= "<div align='left'><a href='"+que_pagina+"?actual="+string.valueof(registroactual+registros) +"&Direccion=Sig&orderby="+strOrderBy+strOtrosParametros+"'>"; Pág. 33 de 35

34 StrNavegacion+= "<font size='"+strtamanoletra+"' face='"+strfaceletra+"'><img src='images/next.gif' border='0' alt='"+registros+" registros siguientes'></font></a> </div>"; StrNavegacion+= "</td>"; else { if (RegistroActual contador - 1 < inttotalreg){ StrNavegacion+="<td width='220'> "; StrNavegacion+= "<div align='left'><a href='" + que_pagina+"?actual="+string.valueof(registroactual+registros)+"&direc cion=sig&orderby="+strorderby+strotrosparametros+"'> "; StrNavegacion+= "<font size='"+strtamanoletra+"' face='"+strfaceletra+"' ><img src='images/next.gif' border='0' alt='"+registros+" registros siguientes'></font></a> </div>"; StrNavegacion+= "</td>"; else { StrNavegacion+= "<td >\u00a0 </td> "; StrNavegacion+= "</tr>"; StrNavegacion+= "</table>"; strcadena+=strnavegacion; else{ Hacer_CadenaNoDatos(); strcadena = strhtml_no_resultados; rs.close(); catch(exception e) { strmensaje_no_hay_resultados = "<P><b><font size='3' face='"+strfaceletra+"' color='#ff1111'>se ha producido el siguiente error:</font></b><p><font size='"+strtamanoletra+"' face='"+ strfaceletra + "' color='"+ ColorTextoEncabezadoTabla+"'>" + e + "</p>"; Hacer_CadenaNoDatos(); //strmensaje_no_hay_resultados = "<p><b>se ha producido un error:</b><p>"+e+"</p>"; strcadena = strhtml_no_resultados; e.printstacktrace(); return strcadena; Pág. 34 de 35

35 Consideraciones finales Resumen Como hacer paginación con JSP. En los primeros capítulos hemos dado un repaso a lo que es la paginación y el material necesario para crear las tablas y los datos, además de las imágenes necesarias. Posteriormente, nos hemos ido adentrando en cómo se crean las propiedades, funciones y la propia página Jsp que llama al Bean. Y como hemos visto al final, te he puesto el método Mostrar_Registros() que es el que desempeña la función principal de mostrar registros. Qué no hemos visto? Como mucho de vosotros ya sabeis, un método que se usa para hacer paginación de registros el método Absulte(), que permite posicionarle en un Statement, en algún registro determinado. Este método no se ha usado en este tutorial. Pág. 35 de 35

Copyright 2015 Pepa Cobos. Todos los derechos reservados.

Copyright 2015 Pepa Cobos. Todos los derechos reservados. Copyright 2015 Pepa Cobos. Todos los derechos reservados. Puedes imprimir una copia de este documento para tu uso personal. Excepto para ese fin, ninguna parte de esta publicación puede ser reproducida,

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes? Preguntas frecuentes Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes? Atención! Esta opción es de configuración y solamente la prodrá realizar el administrador de la

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL.

Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL. Sistema de encuestas PHP y MySQL Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL. Sistema de encuestas. Base de datos a utilizar Algunas

Más detalles

Introducción a Moodle

Introducción a Moodle Instituto la Américas de Nayarit Ing. Elías Portugal Luna Qué es Moodle? Moodle es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda

Más detalles

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

Más detalles

COMO CREAR UNA PÁGINA WEB 3-VÍNCULOS. IMÁGENES. FORMULARIOS.

COMO CREAR UNA PÁGINA WEB 3-VÍNCULOS. IMÁGENES. FORMULARIOS. 2011 2012 COMO CREAR UNA PÁGINA WEB 3-VÍNCULOS. IMÁGENES. FORMULARIOS. WWW.FAUBELL.COM vicente@faubell.com VÍNCULOS: Antes de proseguir hemos de repasar el concepto vínculo ya que vamos a utilizarlo mucho

Más detalles

TEMA 9 CREACIÓN DE PÁGINAS WEB

TEMA 9 CREACIÓN DE PÁGINAS WEB TEMA 9 CREACIÓN DE PÁGINAS WEB OBJETIVOS Conocer las páginas web y sus elementos. Insertar tablas, capas, enlaces en las páginas web. Crear páginas web con NVU. Crear un sitio web. Configurar un sitio

Más detalles

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19

Más detalles

BANNERS CÍCLICOS CON JAVASCRIPT

BANNERS CÍCLICOS CON JAVASCRIPT BANNERS CÍCLICOS CON JAVASCRIPT ÍNDICE 1. INTRODUCCIÓN. 2. BANNERS CÍCLICOS. 2.1.BANNER CÍCLICO. 2.2.BANNERS CÍCLICOS CON CAMBIO DE COLOR DEL FONDO DE LA PÁGINA. 2.3.AÑADIR VÍNCULOS A LOS BANNERS CÍCLICOS.

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS En este manual aprenderemos a introducir un Ticket de Soporte (Incidencia Informática) y ver todo el proceso hasta que se resuelve. Para poder escribir Tickets

Más detalles

Curso Excel Básico - Intermedio

Curso Excel Básico - Intermedio Curso Excel Básico - Intermedio Clase 4 Relator: Miguel Rivera Adonis Introducción Base de Datos: Definición de Base de Datos Ordenar datos Formulario Filtros Trabajar con Sub-Totales Validación de Datos

Más detalles

Manual de NVU Capítulo 4: Los enlaces

Manual de NVU Capítulo 4: Los enlaces Manual de NVU Capítulo 4: Los enlaces Pág. 1 Manual de NVU Capítulo 4: Los enlaces Reconocimiento-NoComercial-CompartirIgual 2.5 España Realizado por: Julio Ruiz Palmero (Universidad de Málaga) julioruiz@uma.es

Más detalles

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) APRENDERAPROGRAMAR.COM GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) Sección: Cursos Categoría: Tutorial básico del programador web: HTML desde cero Fecha

Más detalles

Introducción a PHP. * No es necesario declarar previamente las variables.

Introducción a PHP. * No es necesario declarar previamente las variables. Introducción a PHP La programación de sitios web cada día está más orientada al desarrollo de páginas dinámicas y aplicaciones, o sea sitios donde el usuario pueda interactuar con la web. Dentro de los

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 Servicio de Informática y Comunicaciones Para poder diseñar un formulario y que éste nos envíe los resultados a nuestro correo electrónico, necesitamos

Más detalles

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

PHP Perfect SQL v1.0 (SQL perfectas en PHP) PHP Perfect SQL v1.0 (SQL perfectas en PHP) Muchas veces cuando programamos para web es muy fácil cometer errores en la construcción sintáctica de consultas SQL, por ejemplo cuando tenemos que realizar

Más detalles

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ]

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Agosto 09 Un primer JSP Guía rápida [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Un Primer JSP Guía rápida Este documento te guiará por los primeros pasos para desarrollar

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

Creando una webquests

Creando una webquests Creando una webquests 1. LO PRIMERO EL PROGRAMA Para crear paginas web necesitamos el software apropiado. Hay muchas formas y programas para hacerlo, pero por su facilidad de uso y por ser software libre

Más detalles

PASOS PARA CREAR UNA PÁGINA WEB

PASOS PARA CREAR UNA PÁGINA WEB http://www.rafatux.com PASOS PARA CREAR UNA PÁGINA WEB Con éste documento trato de orientar de una forma genérica los distintos pasos que deben de realizarse para crear una página web. PRIMER PASO: Estructura

Más detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

Correo Electrónico: Webmail: Horde 3.1.1

Correo Electrónico: Webmail: Horde 3.1.1 CONTENIDOS: PAGINA Qué es Webmail?. 2 Acceder a Webmail. 2 Instilación del Certificado UCO. 4 Instilación Certificado I.explorer. 4 Instilación Certificado Firefox. 7 Opciones Webmail. 8 Opciones Información

Más detalles

NOTA:Necesario verificar el nombre de nuestro Servidor-Equipo en donde está nuestro sistema gestor de base de datos.

NOTA:Necesario verificar el nombre de nuestro Servidor-Equipo en donde está nuestro sistema gestor de base de datos. Instrucciones para corrección del error conexión PHP-SqlServer Como habíamos platicado en clase, les comente acerca de la conexión posible de SQL Server mediante un script de PHP, en este caso solo lo

Más detalles

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín TEMA 4: EMPEZANDO A ESCUELA UNIVERSITARIA DE INFORMÁTICA NAVEGAR Raúl Martín Martín SERVICIOS DE INTERNET SERVICIOS DE INTERNET Las posibilidades que ofrece Internet se denominan servicios. Hoy en día,

Más detalles

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS UNIVERSIDAD DE MEDELLÍN MANUAL DE USUARIO GESTOR DE CONTENIDOS NUEVO PORTAL WEB TABLA DE CONTENIDO Tabla de Contenido 2 Consideraciones Iniciales 3 Ingreso al Sistema 4 Opciones de Gestor de contenidos

Más detalles

MANUAL DE AYUDA MODULO TALLAS Y COLORES

MANUAL DE AYUDA MODULO TALLAS Y COLORES MANUAL DE AYUDA MODULO TALLAS Y COLORES Fecha última revisión: Enero 2010 Índice TALLAS Y COLORES... 3 1. Introducción... 3 CONFIGURACIÓN PARÁMETROS TC (Tallas y Colores)... 3 2. Módulos Visibles... 3

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Combinar correspondencia (I)

Combinar correspondencia (I) Combinar correspondencia (I) Mediante la opción Combinar correspondencia Word2007 nos permite incluir en un documento, datos almacenados en otro sitio. De esta forma podremos obtener copias de un mismo

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

Más detalles

Filezilla: Qué es y para qué sirve un cliente FTP

Filezilla: Qué es y para qué sirve un cliente FTP Filezilla: Qué es y para qué sirve un cliente FTP Básicamente, y sin utilizar palabras ni lenguaje técnico, un cliente FTP es un programilla que nos permite conectarnos desde nuestro ordenador, a un servidor

Más detalles

Tutorial de manejo de los portafolios de objetivonatural.com. Bienvenidos a Portafolios.objetivonatural.com

Tutorial de manejo de los portafolios de objetivonatural.com. Bienvenidos a Portafolios.objetivonatural.com La revista objetivonatural.com presenta su nuevo apartado" Portafolios objetivonatural.com ", con ello pretendemos que todos los usuarios de nuestra revista puedan disponer de un sitio web personal, fácil

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra. Gestión de la tesorería y del riesgo El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra. En este manual nos

Más detalles

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

USANDO SERVLETS EN UN SERVIDOR WEB RESIN USANDO SERVLETS EN UN SERVIDOR WEB RESIN Servidor Web Resin Resin es un servidor web que permite no solo despachar un página web, sino aplicaciones web construidos bajo la arquitectura J2EE, así como el

Más detalles

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes

Más detalles

Configurar protección infantil en Windows XP

Configurar protección infantil en Windows XP Configurar protección infantil en Windows XP Web de la asociación española de pediatría En la web de la asociación española de pediatría podemos encontrar un link al site que han montado junto a Microsoft

Más detalles

Desarrollo de Servicios Web con JBuilder

Desarrollo de Servicios Web con JBuilder Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo

Más detalles

SISTEMA DE ENCUESTAS CON PHP Y MYSQL

SISTEMA DE ENCUESTAS CON PHP Y MYSQL SISTEMA DE ENCUESTAS CON PHP Y MYSQL Objetivo: Trabajar con MySQL, Base Datos y Tablas Trabajar con Librería de Conexión, INCLUDE Generar un grafico de columnas con Codigo PHP I. CREAR LA BASE DE DATOS:

Más detalles

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C. EJERCICIO GUIADO. JAVA: VARIABLES GLOBALES Variables Globales / Propiedades de la Clase Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

Más detalles

15 CORREO WEB CORREO WEB

15 CORREO WEB CORREO WEB CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

Manual de NetBeans y XAMPP

Manual de NetBeans y XAMPP Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación

Más detalles

MS ACCESS BÁSICO 6 LOS INFORMES

MS ACCESS BÁSICO 6 LOS INFORMES 2010 MS ACCESS BÁSICO 6 LOS INFORMES 93 LOS INFORMES Los informes son una herramienta de Access para elaborar información, sobre los datos que deseemos, preparada para ser impresa. A partir de una base

Más detalles

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Introducción Con la finalidad de mantenerte informado respecto a todos los cambios y mejoras de los productos de CONTPAQ i, ponemos a tu disposición

Más detalles

Laboratorio 8. Hojas de estilo, plantillas y bibliotecas en Dreamweaver

Laboratorio 8. Hojas de estilo, plantillas y bibliotecas en Dreamweaver UNIVERSIDAD CARLOS III DE MADRID. ESCUELA DE TURISMO. Informática aplicada al sector turístico Laboratorio 8. Hojas de estilo, plantillas y bibliotecas en Dreamweaver En esta práctica guiada vamos a ver

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Parsear HTML con htmlparser para Android Guillem Pérez

Parsear HTML con htmlparser para Android Guillem Pérez Parsear HTML con htmlparser para Android Guillem Pérez He escogido esta librería(http://htmlparser.sourceforge.net/) aunque no había muchos ejemplos porque la he visto realmente ligera y esta en java hay

Más detalles

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir? Google Docs 1 Itinerario 1.1 Qué vamos a hacer? En este tutorial aprendemos a manejar la herramienta Google Docs, de esta forma nos introduciremos en el llamado cloud computing, que podemos traducir como,

Más detalles

GUÍA RED SOCIAL FACEBOOK

GUÍA RED SOCIAL FACEBOOK GUÍA RED SOCIAL FACEBOOK Qué es una Red Social? Una Red Sociales un sitio en internet donde compartir información, mensajes, ideas, fotos, etc., con amigos, conocidos y desconocidos. Para acceder a una

Más detalles

La elección de Blogger como la plataforma o lugar donde

La elección de Blogger como la plataforma o lugar donde 1. INTRODUCCIÓN La elección de Blogger como la plataforma o lugar donde alojar nuestro blog es adecuada si no deseamos complicarnos con la instalación de un servidor propio, con todo lo que ello conlleva:

Más detalles

Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;

Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ; 7. CONCEPTOS AVANZADOS DE CURSORES EXPLICITOS En este capítulo veremos algunas cosas bastante útiles respecto a los cursores explícitos, como pueden ser los cursores con parámetros (que nos permitirán

Más detalles

MÓDULO 3 HERRAMIENTAS EN LA NUBE: ANFIX

MÓDULO 3 HERRAMIENTAS EN LA NUBE: ANFIX MÓDULO 3: TEMA 1 INTRODUCCIÓN Hemos elegido esta herramienta, por su sencillez de acceso a través de la web, es bastante fácil e intuitiva, tan sólo tienes que registrarte, confirmar tu cuenta y ya puedes

Más detalles

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar. TUTORIAL INCEME Programas necesarios PC s usuarios En los ordenadores donde se va a ejecutar INCEME van hacer falta una serie de programas para su funcionamiento. Tendremos que tener los.net Framework

Más detalles

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente. PLANTILLAS EN PHP El concepto de plantilla, es un criterio del desarrollo web que propone optimizar la cantidad de documentos HTML que se usan en el desarrollo de un sitio web. A lo largo de la navegación

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

El proceso de edición digital en Artelope y CTCE

El proceso de edición digital en Artelope y CTCE El proceso de edición digital en Artelope y CTCE Carlos Muñoz Pons Universitat de València carlos.munoz-pons@uv.es Introducción Una de las cuestiones más importantes a la hora de trabajar en proyectos

Más detalles

Manual de iniciación a

Manual de iniciación a DOCUMENTACIÓN Picasa y otras nubes Manual de iniciación a DROPBOX 1 Últimamente se ha hablado mucho de la nube y de cómo es el futuro de la Web. También se han presentado servicios y aplicaciones que ya

Más detalles

GMAIL (avanzado) 1. Accede a la web de Gmail, www.gmail.com. Te destacamos las funcionalidades que vamos a enseñarte a. 2. Vamos a enseñarte a:

GMAIL (avanzado) 1. Accede a la web de Gmail, www.gmail.com. Te destacamos las funcionalidades que vamos a enseñarte a. 2. Vamos a enseñarte a: Sabes que puedes hacer muchas más cosas que enviar y recibir correo con Gmail? Puedes organizarlo, crear reglas de correo, filtrar correo, organizar contactos Adriana va a enseñar a su padre cómo aprovechar

Más detalles

Como verás pone Microsoft Office y si te colocas sobre esta línea debería salir:

Como verás pone Microsoft Office y si te colocas sobre esta línea debería salir: :: Introducción: Microsoft dispone de un conjunto de herramientas llamado Office que se compone de todo lo necesario para resolver cuantos problemas se presenten en los trabajos propios de cualquier usuario

Más detalles

Guía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica

Guía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica Guía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica HOJA DE CONTROL Título Nombre del Fichero Autores Guía rápida de la Oficina Virtual (Solicit@V5) UHU_GuiaRapidaSolicita_V5.pdf

Más detalles

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que

Más detalles

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La puesta en marcha de WordPress es muy sencilla,

Más detalles

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores.

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores. COMO FUNCIONA INTERNET Internet es una gran red de ordenadores a nivel mundial, que pueden intercambiar información entre ellos. Se pueden comunicar porque están unidos a través de conexiones telefónicas,

Más detalles

Marketing y Estadística 1. 2. 3. 4. Listados de clientes con selección de criterios Generación de Cartas, SMS y Etiquetas Estadísticas Avanzadas, GIO BI Gestión de Avisos 1. Listados de clientes con selección

Más detalles

Tutorial del administrador de la web del departamento

Tutorial del administrador de la web del departamento Tutorial del administrador de la web del departamento Antes de leer este tutorial, debes leer el tutorial del profesor. Observa que en la parte inferior de la página de INICIO de tu departamento aparece

Más detalles

INSTALACIÓN DE MEDPRO

INSTALACIÓN DE MEDPRO 1 Estimado Cliente: Uno de los objetivos que nos hemos marcado con nuestra nueva plataforma de gestión, es que un cliente pueda instalar MedPro y realizar su puesta en marcha de forma autónoma. Siga paso

Más detalles

Manual de adminitración web www.accioncosteira.es

Manual de adminitración web www.accioncosteira.es Manual de adminitración web www.accioncosteira.es Manual de administración Accioncosteira.es Contenidos 1. Presentación de la página...3 2. Tipos de contenido...5 2.1. Tipos de contenido...5 2.2. Categorías...5

Más detalles

CITRIX 4.5 - Citrix Application Streaming

CITRIX 4.5 - Citrix Application Streaming 1 de 39 01/12/2007 1:06 CITRIX 4.5 - Citrix Application Streaming Es la caracteristica principal de la versión 4.5 de Citrix, el Application Streaming, en este documento se explica cómo usarlo. Application

Más detalles

Unidad Didáctica 12. La publicación

Unidad Didáctica 12. La publicación Unidad Didáctica 12 La publicación Contenido 1. Desarrollar y explotar 2. Definición del Sitio 3. Alojar nuestra primera página Web 4. Configurar la conexión FTP U.D. 12 La publicación 1. Desarrollar y

Más detalles

Lectura No. 3. Contextualización. Nombre: Página web DISEÑO DIGITAL 1. Para qué te sirve saber elaborar una página web?

Lectura No. 3. Contextualización. Nombre: Página web DISEÑO DIGITAL 1. Para qué te sirve saber elaborar una página web? Diseño Digital DISEÑO DIGITAL 1 Lectura No. 3 Nombre: Página web Contextualización Para qué te sirve saber elaborar una página web? A través de una página web puedes atraer a una mayor cantidad de clientes

Más detalles

Curso Internet Básico - Aularagon

Curso Internet Básico - Aularagon Antes de empezar es necesario que tengas claro algunas cosas: para configurar esta cuenta de correo, debes saber que el POP y el SMTP en este caso son mail.aragon.es; esta cuenta de correo hay que solicitarla

Más detalles

Implementación de widgets Avaibook en Blogger

Implementación de widgets Avaibook en Blogger Implementación de widgets Avaibook en Blogger Introducción Blogger es un sistema de blogs como cualquier otro. Permite la publicación de entradas, páginas, etc. Mucha gente lo utiliza como página web personal

Más detalles

Cómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO

Cómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO Cómo registrarse y crear su cuenta de usuario? Si es la primera vez que visita la página, y nunca ha creado un usuario para poder acceder a todos los servicios que el sistema ofrece, deberá registrarse

Más detalles

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico Acceso al correo electrónico Pasamos ahora a lo que sería usar la cuenta de correo que nos hicimos en la clase anterior. Lo primero que hacemos es entrar en la página web de Yahoo y localizar el icono

Más detalles

Manual de Instalación y uso de FTP

Manual de Instalación y uso de FTP Manual de Instalación y uso de FTP Que es el FTP? El FTP es un sistema que nos permite de forma cómoda subir o bajar archivos a otra ubicación. Hay FTP públicos y privados, es decir en algunos todo el

Más detalles

Marta Soler Tel: 902 33 12 12 Fax: 93 352 36 14 http://www.interdigital.es acc@interdigital.es TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE

Marta Soler Tel: 902 33 12 12 Fax: 93 352 36 14 http://www.interdigital.es acc@interdigital.es TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE . Marta Soler Tel: 902 33 12 12 Fax: 93 352 36 14 http://www.interdigital.es acc@interdigital.es TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE El entorno de trabajo La página tiene como base una plantilla

Más detalles

Guía de instalación de la carpeta Datos de IslaWin

Guía de instalación de la carpeta Datos de IslaWin Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3

Más detalles

Capítulo 0. Introducción.

Capítulo 0. Introducción. Capítulo 0. Introducción. Bueno, por fin está aquí el esperado (espero!!) Capítulo Cero del Tutorial de Assembler. En él estableceremos algunos conceptos que nos serán de utilidad a lo largo del Tutorial.

Más detalles

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

Crear la base de datos antes de la instalación de Wordpress.

Crear la base de datos antes de la instalación de Wordpress. Introducción En este tutorial básico sobre instalar Wordpress en tu propio hosting mediante un panel de control cpanel y aprenderás como personalizar las bases de datos MySQL que utiliza Wordpress. Para

Más detalles

JavaScript toma su sintaxis de los lenguajes de programación más conocidos, fundamentalmente C/C++, aunque también algo de Pascal.

JavaScript toma su sintaxis de los lenguajes de programación más conocidos, fundamentalmente C/C++, aunque también algo de Pascal. 1 JavaScript 1.1 Qué es JavaScript? JavaScript es un lenguaje interpretado. Es idóneo para trabajar en Web, ya que son los navegadores que utilizamos los que interpretan (y por tanto ejecutan) los programas

Más detalles

Tutorial 1: Creación de páginas web con Editor HTML de OpenOffice

Tutorial 1: Creación de páginas web con Editor HTML de OpenOffice Tutorial 1: Creación de páginas web con Editor HTML de OpenOffice Nota: el propósito del curso no es aprender a elaborar páginas web complejas. Por eso, únicamente vamos a aprender a manejar ocho procedimientos:

Más detalles

Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Accediendo a los contenidos

Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Accediendo a los contenidos Plataforma Moodle Accediendo a los contenidos Formatos ----------------------------------------------------------------------- 2 Glosarios -----------------------------------------------------------------------

Más detalles

Instalar y configurar W3 Total Cache

Instalar y configurar W3 Total Cache Instalar y configurar W3 Total Cache en WordPress Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La velocidad de carga de una web influye mucho a la hora de mejorar el

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

Colegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS

Colegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS Colegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS Versión 2.0 3/05/2010 Manual de Gestión de correo electrónico y SMS (v 2.0) 1 GESTOR DE CORREO ELECTRÓNICO

Más detalles

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición. Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en

Más detalles

Para trabajar este tema vamos a situarlo un poco más en el lenguaje común:

Para trabajar este tema vamos a situarlo un poco más en el lenguaje común: Curso de Internet a distancia para sacerdotes, religiosos y religiosas Material de apoyo para las teleclases - Viernes,18 de noviembre2011 Vea los vídeos resúmenes en: www.medioscan.es y www.teleiglesia.es

Más detalles

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal Karel para todos! 1 Estás interesado en aprender a programar en lenguaje de Karel? Te interesa la Olimpiada Mexicana de Informática? Esta es tu oportunidad de unirte al equipo OMI y ser parte de la mejor

Más detalles

Manual para la utilización de PrestaShop

Manual para la utilización de PrestaShop Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para

Más detalles

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP Práctica 9 GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2001/2002 TCP/IP: protocolo TCP Introducción Como se ha comentado en la práctica anterior, el protocolo UDP es muy sencillo de implementar, pero

Más detalles