Na
edição passada das Notícias GeneXus vimos duas propriedades que se podem
configurar para simplificar a entrada de dados e ajudar o desenho de interfaces
mais atrativas e amigáveis com a inclusão automática de código baseado em Ajax:
Input Type e Suggest. Nesta edição que veremos um exemplo de uso de outras das
propriedades baseadas em Ajax que introduz GeneXus 9.0: Filtros com combos
dinâmicos.
Consideremos um exemplo simples como o de Countries &
Cities. La idéia principal e que em um formulário (como, por exemplo os
formulários para fazer uma entrada em um e-mail), o usuário deve ingressar o
País e a Cidade onde vive. Para facilitar o ingresso desta informação, tanto no
campo País como Cidade são apresentados em forma de combo. É possível, então,
que uma vez selecionado o País, o combo de cidades deverá ser carregado
automaticamente com as cidades do País previamente selecionado.
Uma vez
explicado o problema temos então:
Transação Country com a seguinte
estrutura:
Por outro lado temos uma transação de Customers
onde se fará a entrada dos diferentes clientes. Entre a informação a completar
se encontra o Country a City onde mora o cliente.
Em qualquer linguagem de programação convencional criar um form onde o
combo de Cidades seja carregado automaticamente a partir do País selecionado e
sem refrescar o total da página implicaria grandes esforços de programação em
javascript e obviamente lógica do lado do server. No entanto, resolver este
problema em GeneXus 9.0 tem um custo 0 devido a que gera-se código baseado em
Ajax. O tempo de desenvolvimento se reduz assim substancialmente incrementando a
produtividade.
Os passos a seguir então são:
1- Definimos tanto
CountryId como CityId como Dynamic Combo Boxes
2- Execute a aplicação e aproveite.
Quanto selecionamos um país nos serão mostradas
as cidades desse país como se pode observar na imagem anterior e sem ter
refrescado a página completamente (como antes se mencionava). É bem sabido que
há bem pouco tempo atrás, a carga combos dependentes implicava sempre um
refresh total, diminuindo usabilidade e gerando incertezas para o cliente.
Todas estas limitações do modelo web tradicional (onde as idas ao servidor
sempre deviam ser forçadas pelo usuário) se vêem hoje opacadas pelas
funcionalidades de GeneXus baseadas em Ajax (onde as idas ao servidor agora
podem ser feitas pela mesma aplicação de forma assíncrona).
Finalizamos
assim a série de notícias explicando as diferentes funcionalidades baseadas em
Ajax. Convidamos você a experimentar estas novas funcionalidades em http://www.gxajax.com/sample/
Conheça tudo sobre GeneXus e Ajax:
http://www.gxajax.com