En la edición pasada de las Noticias GeneXus, vimos dos
propiedades que se pueden configurar para simplificar la entrada de datos y
ayudar el diseño de interfaces más atractivas y amigables con la inclusión
automática de código basado en Ajax: InputType y Suggest. En esta edición que
veremos un ejemplo de uso de otras de las propiedades basadas en Ajax que
introduce GeneXus 9.0: Filtros con combos dinámicos.
Consideremos un ejemplo simple como el de Countries &
Cities. La idea principal es que en un formulario (como por ejemplo los
formularios para dar de alta una casilla que correo), el usuario debe ingresar
el País y la Ciudad donde vive. Para facilitar el ingreso de esta información,
tanto el campo País como Ciudad se presentan en forma de combo. Es de esperarse
entonces que una vez seleccionado el País, el combo de ciudades deberá cargarse
automáticamente con las ciudades del País previamente seleccionado.
Explicado ya el problema tenemos entonces:
Transacción Country con la siguiente
estructura:
La transacción
City, y por otro lado tenemos una transacciones de Customers donde
se dará de alta a los distintos clientes. Entre la información a completar se
encuentra el Country la City donde vive el cliente.
En cualquier lenguaje de programación convencional crear
un form donde el combo de Ciudades se cargue automáticamente a partir del País
seleccionado y sin refrescar el total de la página implicaría grandes esfuerzos
de programación en javascript y obviamente lógica del lado del server. Sin
embargo, resolver este problema en GeneXus 9.0 tiene costo 0 debido a que se
generación de código basado en Ajax. El tiempo de desarrollo se reduce así
sustancialmente incrementando la productividad.
Los pasos a seguir entonces son:
1- Definimos tanto CountryId como CityId como Dynamic
Combo Boxes
2 Ejecute la aplicación y disfrute.
Cuando seleccionamos un país nos va a mostrar las ciudades
de ese país como se puede observar en la imagen anterior y sin haber refrescado
la página completamente (como antes se mencionaba). Bien es sabido que poco
tiempo atrás, la carga combos dependientes implicaba siempre un "refresh" total,
quitándole usabilidad y generando incertidumbre en el cliente. Todas estas
limitaciones del modelo web tradicional (donde las idas al servidor siempre
debían ser forzadas por el usuario) se ven hoy opacadas por las funcionalidades
de GeneXus basadas en Ajax (donde las idas al servidor ahora puede ser hechas
por la misma aplicación en forma asincrónica).
Finalizamos así la serie de noticias explicando las
distintas funcionalidades basadas en Ajax. Lo invitamos a probar estas nuevas
funcionalidad en
http://www.gxajax.com/sample/
Conozca todo sobre GeneXus y Ajax:
http://www.gxajax.com