06 May 2010
Posted by: Ricardo Pichler in: X++
Caros,
surgiu uma pergunta no MSDN de um usuário que consistem em como buscar por um range de datas e determinada tabela.
Bom, para isso, a solução é bem simples, basta fazer como fazemos nos filtros do AX:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | static void Job1(Args _args) { Query query; QueryBuildDataSource qbds; QueryBuildRange qbr; QueryRun qr; VendInvoiceJour vendInvoiceJour; ; query = new Query(); qbds = query.addDataSource(tableNum(VendInvoiceJour)); qbr = qbds.addRange(fieldNum(VendInvoiceJour, InvoiceDate)); qbr.value("01012009..06052010"); //01012009..06052010 representa 01/01/2000 até 06/05/2010 qr = new QueryRun(query); while(qr.next()) { vendInvoiceJour = qr.get(tableNum(VendInvoiceJour)); info(vendInvoiceJour.invoiceId); } } |
Editado:
Também existem as funções da classe Global prontas para esse tipo de situação:
– Global::queryValue()
– Global::queryNotValue()
– Global::queryRange()
– Global::queryRangeConcat()
Por exemplo:
qbr.value(queryRange(startDate, endDate));
[]‘s
Batoni
[]s
Pichler
3 Responses
Batoni
06|May|2010 1Também existem as funções da classe Global prontas para esse tipo de situação:
– Global::queryValue()
– Global::queryNotValue()
– Global::queryRange()
– Global::queryRangeConcat()
Por exemplo:
qbr.value(queryRange(startDate, endDate));
[]’s
Batoni
Ricardo Pichler
06|May|2010 2Legal Batoni, valeu pela dica! Escreve um artigo e posta aqui também pô!
Anderson Joyle
17|Nov|2010 3Fala ai Pichler!!!!
Cara, acho que seria legal frisar que essas funcionalidades vem da classe SysQuery. Alem do métodos da classe Global que se utilizam de alguns métodos da classe SysQuery, temos tambem um serie de outros metodos bastante uteis se usarmos diretamente a classe SysQuery.
Fica aqui meu abs a toda comunidade AX.
Ate mais!
Leave a reply