4. A forma de referenciar um Data Selector dependerá a partir de qual caso se deseja chamar.
Veremos a sintaxe para cada caso.
5.
6.
7. Nota:
A performance será a mesma escrevendo 2 where no For Each que seja
referenciado um Data Selector no For Each (que tem definida uma condição) + um
where no For Each.
GeneXus sempre tratará de otimizar o código gerado, todavia não mais por utilizar
o conceito de Data Selectors, já que seu objetivo como explicamos, é: centralizar
o conhecimento reutilizável em uma única definição e depois referenciar
essa definição em todas as consultas e cálculos da KB que aplique.
8. Neste exemplo:
- A tabela base do Data Selector é: INVOICE
- O atributo que antecede ao operador IN pertence a tabela estendida de INVOICE
(CustomerId)… e a consulta associada ao Data Selector devolverá uma lista de valores
correspondentes a dito atributo (devolve “uma lista de clientes” que tem faturas na faixa de
datas dada).
- O For Each tem sua tabela base determinada pelos atributos incluídos no For Each e sem
levar em consideração a informação armazenada no Data Selector.
- O For Each navegará sua tabela base e estendida, filtrando os registros que
contenham algum dos clientes da lista devolvido pelo Data Selector.
9. Considerações referente a sintaxe das fórmulas Aggregate:
Como foi detalhado no slide, na sintaxe das fórmulas Aggregate a expressão corresponde a
expressão de busca, maximizada, minimizada, somada ou média. Pode ser um atributo
(armazenado ou fórmula) ou bem uma expressão que envolve atributos, constantes,
variáveis.
Todavia tem que levar em consideração que:
- Variáveis somente podem estar envolvidas nas fórmulas locais
- Para Sum e Average, o resultado da Expressão deve ser um valor numérico
- Unicamente para o caso de Count, não vale uma Expressão e sim um atributo