quinta-feira, 3 de março de 2011

Não no lugar correto


Nessa vida ouvimos mais nãos que sims (como é o plural de sim? rs...), e me parece que isso vai fazendo com que fiquemos mais maleáveis com nossos erros. Com o não aprendemos os limites, nossos pais já diziam isso.

Mas o que isso tem a ver com Genexus! na prática um não no lugar correto produz resultados incríveis, e principalmente se utilizamos juntamente com o operador IN, então um NÃO EM, facilita muito a vida. Quem já dizia isso era o nosso amigo pHd no Post Genexus dos Sonhos, veja como o não é importante em nossa vida.

Vamos então ao que interessa. Em Genexus temos o operador IN que trabalha sob conjuntos, verificando se determinada informação está presente entre conjuntos. Nossa luta era saber o que não estava.

Por exemplo, no conjunto abaixo, temos um único item que existe nos dois conjuntos (K), e vários que não (A,B,C,d) no conjunto azul e (1, 2, # @ !) no outro conjunto.

 

Nas versões anteriores de Genexus tínhamos a possibilidade de informar um conjunto de dados de forma fixa, como os exemplos abaixo.

(1)
 
 
(2)
 
 
(3)
 
 
Com destaque para o for...each (3) que realiza uma pesquisa em um conjunto de dados previamente carregados em uma variável coleção,  por meio de constantes (1, 2, 3).

Na versão X surgiu o objeto Data Selector que permite gerar conjuntos dinâmicos a partir de consultas as tabelas do modelo, gerando boas possibilidades de programação. Tomemos por exemplo as transações abaixo.

E o Data Selector que encontra um Pais qualquer, passado através de um parâmetro.
Um comando for...each devolveria todos os clientes de um determinado pais, cujo identificador é 1.

(4)
 
E se nosso interesse fosse obter os clientes que não residem no Pais 1, teríamos então que adicionar um NÃO na conversa, conforme o modelo abaixo.

 
(5)
 

Concluindo

 
Esse recurso permite que se pesquisem situações bem interessantes, tais como:
  • Os clientes que não compraram nos últimos 6 meses
  • Os vendedores que não venderam no mês passado
  • Os funcionários que não chegaram no horário, 
E assim por diante, mesmo porque, por mais incrível que pareça, nós humanos, temos maior interesse no NÃO do que no SIM, por exemplo, qual é o chefe que gostaria de saber quais os funcionários chegaram no horário para dar um aumentozinho no salário de 30%? Se você conhece algum, me passa o email.

 
Links: