quarta-feira, 15 de outubro de 2008

Query negando valores

Pessoal,


Uma dúvida recorrente entre o pessoal que está iniciando no Ax é : como negar valores num objeto Query?


Fiz esse pequeno exemplo para ilustrar uma possível forma.
No snippet abaixo, ele traz todos os clientes não iniciados pelo caractere '3'.


Obs: A utilização da function queryValue(anyType A) faz uma chamada estática a SysQuery::value(a), que por sua vez irá tratar os dados enviados no parâmetro A, como por exemplo, se eu envio um Enum, queryValue(MeuEnum) retorna o valor correspondente, e assim por diante.


static void exemploQueryRunNegativo(Args _args)
{
Query query = new query();
QueryRun queryRun;
QueryBuildDataSource qbds;
CustTable custTable;

;
qbds = query.addDataSource(TableNum(CustTable));
qbds.addRange(FieldNum(CustTable, AccountNum)).value("!" + queryValue("3") + "*");
queryRun = new queryRun(query);

while(queryRun.next())
{
custTable = queryRun.get(TableNum(CustTable));
print(custTable.AccountNum);
}
pause;
}

3 comentários:

Ricardo Pichler disse...

Legal post André, essas informações fazem muita falta quando estamos começando. Abração.

André dos R. Santos disse...

Essa é a Idéia Pichler,
O exemplo desse post é extremamente básico que não é encontrado em qualquer lugar e acaba sendo uma dificuldade recorrente para aqueles que estão começando.

Um abraço!

Anônimo disse...

militates cheques committeeiif received principle romanbr hygienists forgotten editing silicon vacman
semelokertes marchimundui