Mecanismo E-4 (listarsuppub.htm/verpub.htm):
Listado de varios registros – Vista de un registro

Este mecanismo se usa cuando se requieren mostrar al PÚBLICO datos almacenados en N2C, en una o más tablas. Estos reportes son realizados por un asesor. Pueden estar en cualquier dominio, usualmente en el dominio del USUARIO. Cuando se quiere hacer esta misma operación para un USUARIO, se debe utilizar el prograa ">listarsup.htm el cual es bastante similar a este programa. En esta explicación utilizaremos indiferentemente el término CLIENTE y PÚBLICO.

Nota:

Se define como USUARIO a la persona que tiene login de acceso a Net2Client y como PÚBLICO, al cliente de la organización del USUARIO. Por ejemplo, si la organización comercio.com tiene una licencia de Ner2Client, sus empleados serían USUARIOS y los clientes de la empresa, quienes eventualmente pudieran interactuar con el sitio serían lo que llamamos PÚBLICO. ">Ver Roles en el capítulo I.

El programa solicitante indica al programa listarsuppub.php, a través de campos de una “forma” de HTML, qué registros se desean listar. Esto produce un reporte de todos los registros que cumplen con las condiciones especificadas. Se van mostrando en varias páginas, con la cantidad de registros especificada como parámetro. El programa también permite que el PÚBLICO ordene el listado por cualquier campo.

Una de las cosas más interesantes de este programa, es que si uno de los campos seleccionados es un campo de código (Ejp EVECodigo), en vez de mostrarse el código, se va a mostrar un botón que dice “VER” y que al ser utilizado, pasa el control al programa verpub.php, que se va a encargar de mostrar el registro seleccionado. Esto se usa típicamente cuando se están listando una serie de productos o servicios y el CLIENTE quiere ver uno en particular. En esa vista, se pueden tener botones de acción que permitan, por ejemplo, comprar o contratar el servicio. Como esto se produce automáticamente, es desde el programa que invoca a listarsuppub.htm que se deben dar todas las especificaciones de que hacer. Esto se hace por medio de parámetros, tal como se explica más adelante.

El reporte especial construido tiene el “Look & Feel” de N2C. Es posible controlar bastante la presentación escogiendo los colores con los parámetros FondoTabla, FondoLinea, TextoListar e incluyendo instrucciones de HTML, a través de los parámetros IncluirHeadArch, IncluirHeadHTML, IncluirBodyArch, IncluirBodyHTML. Sin embargo, si se desea algo completamente distinto, se debe utilizar el programa verpub.php (mecanismo E-2) y construir el reporte correspondiente.

Nombre Uso
PARÁMETROS OBLIGATORIOS
BD Base de datos (Ej. 01)
Empresa Número de la empresa/aplicación (Ej. 231)
Perfil El nombre del perfil que tiene autorización para ejecutar el programa. En ese perfil, el directorio donde se encuentra el programa que invoca, debe estar definido
TablasAListar La lista de tablas que deben ser leídas, separadas por comas
CamposAListar

La lista de campos que se deben listar, separados por comas.

Opciones adicionales:

  • Si se desea que un campo sea modificable, se debe poner un asterisco delante del nombre del campo.
  • Cuando hay una sola tabla (en TablasAListar), se puede poner un botón de ELIMINAR, para que el visitante de la página pueda eliminar un registro. Para ello, escribir “Del” (Delete), en la posición que se desea que aparezca el botón.

Nota:

El perfil del usuario debe tener autorizada la modificación o eliminación de registros para la tabla correspondiente.

CONTROL DE LISTADO
Condiciones Las condiciones que se deben cumplir para listar registros. En cado de haber varias tablas a las cuales se les está haciendo un "join", deben aparecer aquí esas condiciones. Se debe usar la sintáxis de MySql, por ejemplo usando los "AND" y los "OR" que sean necesarios
Ordenamiento El Orden que se requiere en el reporte (Sort). Si se desea que un campo sea utilizado como ruptura de control (agrupación), poner un asterisco delante.
Idioma El código de tres letras del idioma. Si no viene se supone que es el idioma definido en la tabla de parámetros para la empresa
Titulo Título del reporte. Si no se especifica, se omite la barra de título
CantAListar La cantidad de registros a listar por página. Si se omite, se usa el valor por defecto de la aplicación (que viene en la tabla de parámetros)
Imagen Escribir "SI", si se desea que las imágenes sean mostradas, con cualquier otro valor, aparece un enlace con la palabra "Ver"
Totales Campos para los cuales se desea dar totales, separados por comas. Los campos deben ser numéricos (Tipo Cantidad o Monto). Los campos mencionados aquí, deben estar entre los “CamposAListar”.
SoloTotales Escribir "SI", si se desea que solo aparezcan las líneas de Total. Debe usarse en conjunto con los campos que tienen un asterisco en el parámetro Ordenamiento.
CONTROL DE LA PRESENTACION
Fondo Color del fondo del título. Escribir el color en inglés o en su configuración hexadecimal #XXXXXX (*)
Letras Color de las letras del título. Escribir el color en inglés o en su configuración hexadecimal #XXXXXX (*)
FondoTabla Color del fondo de la tabla (Marco). Escribir el color en inglés o en su configuración hexadecimal #XXXXXX (*)
FondoLinea Color del fondo de las líneas intercaladas. Escribir el color en inglés o en su configuración hexadecimal #XXXXXX (*)
AjustarFrame Escribir SI en éste parámetro si desea que el reporte sepa que se está desplegando dentro de un frame interno (iframe) y ajuste la altura del mismo para que pueda desplegar todo el reporte sin utilizar scrollbars ni dejar espacio vacio.
Ancho Especifique el número exacto de pixeles que desea que tenga como ancho la página del reporte. Si se omite este parámetro el ancho de la página será libre y dependerá de la cantidad de conetenido desplegado y de los estilos utilizados.
Borde Utilice este parámetro si desea que la pagina de reporte se despliegue dentro de un borde. Su valor sera interpretado como el número exacto de grosor en pixeles de dicho borde.
CONTROL DEL CONTENIDO DEL LISTADO
MensajeSiNoHay Mensaje que debe aperecer si no se consigue ningún registro. Si se escribe NO, no parece ningún mensaje, si se omite este parámetro, se escribe el mensaje estándar de Net2Client.
TextoListar Texto que aparece después de listar los registros de una página en el programa listarsuppub.php
Retorno Si se tiene el valor “NO”, en vez de poner un botón de retorno, pone un botón de cerrar ventana; Si tiene el valor “X” no pone nada. Si tiene el valor “-2” pone un botón de retorno que regresa dos pantallas atrás
BotonANombre
BotonBNombre
BotonCNombre
Texto que debe aparecer en el Botón X que se muestra al terminar de listar los registros de una página, después de TextoListar y antes del botón de Regresar
BotonADireccion
BotonBDireccion
BotonCDireccion
Dirección completa (www…) a donde ir cuando el usuario pulsa el botón X
CONTROL DEL CONTENIDO DE LA VISTA DE UN REGISTRO
(Esto se debe a que el programa puede pasar el control al programa verpub.php, si el usuario hace clic sobre el botón de ver, y por lo tanto es aquí donde se debe especificar lo que se quiere hacer)
TextoVer Texto que aparece después de mostrar un registro en el programa verpub.htm
Boton1Nombre
Boton2Nombre
Texto que aparece en el Botón X del programa verpub.htm, después de TextoVer
Boton1Direccion
Boton2Direccion
Dirección completa (www…) a donde ir cuando el usuario pulsa el botón X
CONTROL AVANZADO MEDIANTE HTML, JAVASCRIPT…
EN EL LISTADO PRODUCIDO POR listarsuppub.htm
AccionEspecial Permite indicar el programa a ejecutarse, en vez de verpub.htm, cuando el usuario hace clic sobre el botón de Ver
ListarHeadArch URL de un archivo que contiene instrucciones de HTML que se desean incluir entre de los tags <head></head>. Puede ser utilizado para tener rutinas de JavaScript, o para incluir una hoja de estilo CSS
ListarHeadHTML Igual que el anterior, pero en vez de tener un URL, se codifican las instrucciones directamente. Se coloca después del anterior
ListarBodyArch URL de un archivo que contiene instrucciones de HTML que se desean incluir justo después del tag <body>. Puede ser utilizado para poner logos, estilos, o cualquier texto que se desee
ListarBodyHTML Igual que el anterior, pero en vez de tener un URL, se codifican las instrucciones directamente. Se coloca después del anterior
ListarFinArch URL de un archivo que contiene instrucciones de HTML que se desean incluir justo antes del mensaje “powered by Net2Client”, que a su vez se encuentra justo antes del tag </body>. Puede ser utilizado para mensajes, dibujos o cualquier otra cosa que se desea
ListarFinHTML Igual que el anterior, pero en vez de tener un URL, se codifican las instrucciones directamente. Se coloca después del anterior.
CONTROL AVANZADO MEDIANTE HTML, JAVASCRIPT…
EN LA VISTA POSTERIOR PRODUCIDA POR EL PROGRAMA verpub.htm
VerHeadArch Igual que ListarHeadArch, pero en el programa verpub.htm
VerHeadHTML Igual que ListarHeadHTML, pero en el programa verpub.htm
VerBodyArch Igual que ListarBodyArch, pero en el programa verpub.htm
VerBodyHTML Igual que ListarBodyHTML, pero en el programa verpub.htm
VerFinArch Igual que ListarFinArch, pero en el programa verpub.htm
VerFinHTML Igual que ListarFinHTML, pero en el programa verpub.htm
Global1..4 4 variables globales que son pasadas de programa en programa
AYUDA PARA EL DEBUGGING
ECHO Poner con la palabra ECHO si se desea que aparezca la instrucción MySQL de lectura generada

(*) ">Ver la tabla de colores en el Anexo A

Los campos en negrita son obligatorios. Los parámetros pueden venir en cualquier orden y vienen bajo la forma:

 <input type='hidden' name='Nombre’ value='Valor'>

en donde “Nombre” es el de la columna de la izquierda y “Valor”, el valor correspondiente

Funcionamiento

El programa hace una llamada a la base de datos de Net2Client (SELECT) de acuerdo a los parámetros solicitados (TablasAListar, CamposAListar, Condiciones y Ordenamiento) y muestra los registros, en el formato clásico de un reporte con columnas. La apariencia (Look & Feel) es similar a la de Net2Client, pero puede ser controlada a través de los parámetros Fondo, Letras, FondoTabla y FondoLinea.

Cuando, a través del parámetro CamposAListar, se solicita un campo de Código (Ej. PERCodigo, EVECodigo…) en vez de escribirse este campo que contiene un número que usualmente no significa nada para el CLIENTE, se muestra un botón de Ver. Si el cliente hace clic sobre el mismo, se invoca el programa verpub.htm pasando como parámetro el Código correspondiente para mostrarle el registro al CLIENTE (a menos que haya usado el parámetro "AccionEspecial" explicado más arriba). Para que el asesor pueda tener control sobre lo que sucede en ese programa, tiene acceso a los parámetros TextoVer, que se va a mostrar después de los datos del registro y a dos botones (Boton1 y Boton2), para los cuales puede suministrar el texto y la dirección de enlace.

Después de listarse los registros del reporte en listarsuppub.php, justo antes del botón de regresar (que siempre se presenta para que el CLIENTE pueda regresar a la página invocante), aparece una explicación denominada TextoListar y cuatro botones (BotonA, BotonB, BotonC y BotonD), para los cuales se puede suministrar el texto y la dirección de enlace. Cuando el CLIENTE presiona uno de esos botones, el control pasa a los programas correspondientes, junto con los parámetros BD, Empresa, Perfil y las 4 variables globales Global1, Global2, Global3 y Global4 en donde se puede almacenar información que van siendo pasada de programa en programa.

POSIBLES MENSAJES DE ERROR

Nombre Uso
listarsuppub-1 Falla en la instrucción de lectura
listarsuppub-2 Se está solicitando la modificación o eliminación de un campo y hay más de una tabla.
listarsuppub-3 Se está solicitando que un campo pueda ser modificado o eliminado y el perfil autorizado no tiene la autorización apropiada

Ejemplo

El ejemplo que presentamos a continuación es tomado del site de demos de GlobalWebTek, en la página: http://www.globalwebtek.com/demos/209/02.html. Cuando el público solicita el alojamiento de selva, le aparece la pantalla que mostramos a continuación:

Esta pantalla es mostrada por el programa listarsuppub.htm. Consta de 4 grandes partes:

El código que generó este reporte es el siguiente:

<script language="JavaScript" type="text/JavaScript">
function seleccionar(){
   if (document.invocar.CPO0.value=="Todos")document.invocar.Condiciones.value='';
   else document.invocar.Condiciones.value="EVElista1='" + document.invocar.CPO0.value + "'";
   return true;
   }
</script>

<!------------------------------------- FORMA DE LLAMADA ---------------------------------> <?php if (strpos($HTTP_REFERER,"new")>=1) $neworsis="new"; else $neworsis="sis"; ?> <form name="invocar" method="POST" onSubmit='seleccionar();' action="http://www.net2client.com/<?php echo "$neworsis";?>/inter/listarsuppub.php">

<!------------------------------------- PARAMETROS OBLIGATORIOS ---------------------------------> <input type='hidden' name='BD' value='01'> <input type='hidden' name='Empresa' value='209'> <input type='hidden' name='Perfil' value='Internet'> <input type='hidden' name='TablasAListar' value='209EVE'> <input type='hidden' name='CamposAListar' value='EVELista1,EVECodigo,EVENombre,EVEBloque1,EVEBloque2'>

<!------------------------------------- CONTROL DEL LISTADO ---------------------------------> <input type='hidden' name='Condiciones' value=""> <input type='hidden' name='Ordenamiento' value='EVENombre'> <input type='hidden' name='Titulo' value='HOSPEDAJE DISPONIBLE'>

<!------------------------------------- CONTROL DE LA PRESENTACIÓN ---------------------------------> <input type='hidden' name='Fondo' value='chocolate'> <input type='hidden' name='FondoTabla' value='sandybrown'> <input type='hidden' name='FondoLinea' value='peachpuff'>

<!------------------------------------- CONTROL DEL CONTENIDO DEL LISTADO ---------------------------------> <input type='hidden' name='TextoListar' value='Haga clic sobre el Boton de Ver del alojamiento que le interese'>
<!-------------------------------- CONTROL DEL CONTENIDO DE LA VISTA DE UN REGISTRO ------------------> <input type='hidden' name='TextoVer' value='Utilice el botón de abajo para hacer su reservación'> <!-- Nota: Como se le está pidiendo al programa listarsuppub.php que liste los códigos de Eventos (EVECOdigo) estos van a aparecer como un botón de "Ver" que invoca al programa verpub.htm. Ese programa tiene dos botones disponibles, para los cuales se debe dar el nombre y la dirección en donde se quiere ir al ser pulsados --> <input type='hidden' name='Boton1Nombre' value='Reservar'> <input type='hidden' name='Boton1Direccion' value='www.globalwebtechnologies.com/demos/209/02reservar.html'> <input type='hidden' name='Boton2Nombre' value='Cancelar'> <input type='hidden' name='Boton2Direccion' value='www.globalwebtechnologies.com/demos/209/02.html'>

<!------------------------------------- CONTROL AVANZADO ---------------------------------> <!-- En la instrucción siguiente se incluye la instrucción de HTML que coloca el logotipo de la agencia de viajes --> <input type='hidden' name='ListarBodyHTML' value='<center><img src=http://www.net2client.com/ZZZ/01/20/209/logoav.JPG><br> A continuación le presentamos las opciones disponibles</center>'> <input type='hidden' name='ListarFinHTML' value='<div align=center> <font color=brown>Gracias por utilizar su <b>AGENCIA DE VIAJES</b></font></div>'> <input type='hidden' name='VerBodyHTML' value='<center><img src=http://www.net2client.com/ZZZ/01/20/209/logoav.JPG><br> Este es el lugar seleccionado</center>'> <input type='hidden' name='VerFinHTML' value='<div align=center> <font color=brown>Ud. puede contar con su <b>AGENCIA DE VIAJES</b></font></div>'>

<!--------------- CAMPOS DE DATOS (PARA SELECCIONAR EL TIPO DE ALOJAMIENTO ---------------> <span class="Textos">Productos</span> <select size=1 name='CPO0'><option value='---' selected>---</option> <option value="Alojamiento de Playa">Alojamiento de Playa</option> <option value="Alojamiento de Montaña">Alojamiento de Montaña</option> <option value="Alojamiento de Ciudad">Alojamiento de Ciudad</option> <option value="Alojamiento de Selva">Alojamiento de Selva</option> <option value="Todos">Todos</option> </select> <input type=submit value='OK'> </form>

La función “seleccionar” juega un papel bastante importante, ya que es la que rellena el parámetro Condiciones, según lo que haya especificado el cliente potencial. Esto se hace en JavaScript, asignando a la variable “document.invocar.Condiciones.value” el valor apropiado.

Veamos que sucede si el cliente decide ver “La casa de Carolina”: El control del programa pasa a verpub.htm en donde esta casa es mostrado. Sin embargo, muchos elementos de control ya vienen especificados desde nuestro programa que invoca. La pantalla mostrada es la siguiente:

Obsérvese que en el encabezado dice “A continuación le presentamos las opciones disponibles”, que fue indicado en el parámetro 'VerBodyHTML'. La palabra “Reservar”, fue indicada en el parámetro “Boton1Nombre”, así como la dirección de la forma http://www.globalwebtek.com/demos/209/02reservar.html, con el parámetro “Boton1Direccion”. Es de hacer notar que este programa, a su vez va a recibir como parámetro el número del registro que se está viendo.

Finalmente se puede observar que en el pie dice “Gracias por utilizar su AGENCIA DE VIAJES”, en letras marrones, que fue lo indicado a través del parámetro “VerFinHTML”.

En este ejemplo los códigos de HTML incluidos fueron muy sencillos. Si se requiere algo más complejo (como rutinas de JavaScript o códigos completos), se pueden incluir los archivos completos, usando los parámetros xxxxArch, en vez de xxxxHTML (Por ejemplo ListarBodyArch, en vez de ListarBodyHTML).

 


Enlaces en el mismo capítulo:

Enlaces otros capítulos: