Paginar en HTML con Velneo (I)

Gracias a la ayuda de Ikonos y Pepeto, obtuve la idea sobre la que trabajar, y aqui teneis una solucion provisional al paginado en html con vModApache, y digo provisional, porque a partir de aquí, se puede mejorar el proceso y las posibles variantes que se nos ocurran.

Este proceso únicamente muestra el resultado paginado de una lista de registros.

La clave estaba en conocer varios datos referentes a la lista, que los vamos a tratar a través de variables locales:

PAG: pagina en la que nos encontramos. Esta variable, aunque contiene un dato numérico, DEBE SER DE TIPO ALFABETICO, ya que en los procesos accesibles via web, las variables locales SIEMPRE son de tipo alfabético.
R: numero de registros totales que tiene nuestra lista.
K: numero de registros que queremos mostrar por pagina.
C: numero de paginas que contienen el numero de registros que queremos mostrar (K)
N: numero de paginas en total que tendrá nuestro resultado, en función del numero de registros que hemos obtenido.
P: numero de registros en la ultima pagina, ya que esta puede contener desde 1 hasta el numero de registros que hayamos indicado en la variable (K)
Por defecto, en las búsquedas, al mostrar el resultado, lo mostraremos en la primera pagina, por lo que en la URL resultante de la búsqueda, ya deberemos indicar la variable PAG=1, y esto nos lleva al comienzo del proceso para realizar la búsqueda y paginar su resultado.

Vamos con el proceso:

Establecemos la pagina en la que estamos.
Añadimos contenido a la variable RETORNO (es la que contiene el código html que mostraremos a final de proceso)
Cargamos lista o Busqueda, por los índices que nos interesan desde un formulario html.
Una vez cargada, establecemos los valores de las diferentes variables que hemos visto al principio.
R: establecemos el numero de registros que han resultado de la búsqueda o lista
K: establecemos el numero de registros a mostrar por pagina. (este valor, lo podemos traer desde la ficha de usuario, desde la configuración de la web, … desde donde nos interese. Para este ejemplo, le damos el valor directamente en el proceso)
C: establecemos el numero de paginas completas con (K) registros, para lo que nos interesa el numero entero, del resultado de dividir el numero total de registros (R) entre los registros por pagina (K)
N: aquí vamos a establecer como valor el numero de paginas totales que tendrá nuestro paginador, por lo que deberemos elegir entre dos resultados:

  • si el resultado de, restar al numero de registros (R) el numero de registros (K) por el numero de paginas completas (C) fuese cero, es decir, si (R-(K*C))=0, estableceremos (C) como valor de (N)
  • si el resultado fuese distinto de cero, estableceremos (C)+1 como valor de (N). Esto quiere decir que habrá (C) paginas con (K) registros, y una ultima pagina con alguna registro más, a los que llamaremos (P).

P: para establecer el valor a esta variable, restamos al numero de registros (R) el numero de registros (K) por el numero de paginas completas (C)
Aqui ya conocemos los valores de todas las variables, por lo que continuamos el proceso con:
Cortar lista, y aquí cortamos la lista por el numero de registros que hemos decidido mostrar por pagina, en nuestro caso (K), y seguido, como fórmula de posición, posición a partir de la cual queremos cortar la lista.
Llegados a este punto, solo nos queda recorrer la lista para mostrar el resultado del proceso, con un navegador para las paginas, para lo que deberemos determinar si nos encontramos en la primera, en la ultima pagina, o en cualquiera diferente de estas dos, estableciendo en la variable RETORNO el codigo html resultante, y dando por finalizado el proceso, estableciendo el dato de retorno del mismo, con la instrucción Set dato de retorno del proceso (RETORNO).

ATENCION: para operar con la pagina actual, la variable PAG, recordad que por necesidad de los procesos accesibles via web, esta es de tipo alfabético, por lo que debereis convertirla en numero para operaciones aritméticas con ella. stringToNumber(PAG)

Cualquier tipo de sugerencia, opinion y/o critica, son bienvenidas. 😉

Anuncios

Acerca de gegeo

--;) --

Publicado el 2 mayo, 2011 en Ejemplos, HowTo, vModApache. Añade a favoritos el enlace permanente. 6 comentarios.

  1. Ya estoy de vuelta al ciberespacio, y vaya! me encuentro un blog de gegeo, no lo tenia controlado, lo añadiré a mis favoritos 🙂

    Me alegra que hallas encontrado un camino válido para tu aplicación. He de decir que me gusta tu solución para el HTML, sobre todo porque has conseguido utilizar un único proceso para el paginado guardando en las variables locales todo lo que necesitas, sobre todo PAG, que “ingeniosamente” queda grabada el en HTML que interpreta el navegador, con lo que tras paginar tienes de nuevo un hipervinculo con el valor deseado !ACABAS DE HACER GLOBALES TUS VARIABLES LOCALES! GENIAL! por que ni Pepeto, por que no lo necesitaba, ni Yo ( maliciosamente:) ) apuntamos nada a cerca de eso en los articulos. Veo que hay mucha materira gris en esta IP.
    En cuanto a la forma de paginar, es curioso como partiendo de la misma base teórica, los tres paginamos con procesos distintos, y es que todos los caminos llevan a Roma y por encima de todo no hay que perder nuestra propia seña de identidad.

    Un saludo

    P.D. Por cierto Paginar en HTML con Velneo (I), me invitar a pensar que habrá un (II), estaré espectante.

    • Gracias por visitar este rincón.
      La verdad que la formula propuesta por ti y unas indicaciones de Pepeto me dieron la idea, yo solo la he plasmado en el proceso, eso si, sin desmerecer por ello las opiniones del resto de usuarios 😉
      Yo la verdad, creo que la materia gris de esta IP está un tanto verde, pero con ganas de mejorarla dia a dia rodeado de maestros.
      Efectivamente, habrá una parte (II), pero eso será para la semana que viene, y si mis obligaciones me dejan otro hueco, habrá una parte (III) con pruebas de rendimiento con bastante mas registros.

  2. Gracias por el artículo,
    hasta ahora no habia tenido tiempo de leerlo tranquilamente
    me alegro de que al fin lo hayas conseguido.

    un saludo.

  1. Pingback: Pepeto's blog » Blog Archive » Guia V7: ejemplos

  2. Pingback: Paginar en HTML con Velneo (II) « vPruebas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: