Um duvida que frequentemente vejo, é onde o programador quer saber como pegar os registros selecionados em um grid. Uma das forma mais fáceis de se fazer isso, pode ser vista abaixo:
Usaremos como exemplo um formulário qualquer que tem como datasource a tabela CustTable, neste mesmo formulário, temos também um botão qualquer, e o seu método click:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | void clicked() { CustTable ct; ; ct = CustTable_DS.getFirst(true); while(ct) { // faça....... ct = CustTable_DS.getNext(); } super(); } |
[]s
Pichler
9 Responses
ju
16|Dec|2009 1Este codigo nao funciona qd seleciono todos os registros do grid.
Ele soh atualiza os primeiros.
Alguma dica?
ju
08|Jan|2010 2Pelo jeito eh bug do 2009
Ricardo Pichler
08|Jan|2010 3Ju, se você não coloca seu e-mail verdadeiro, eu não tenho como te responder! 😀
Marcos
03|Mar|2010 4Olá… utilizei esse código e retorna sempre os 16 primeiros registros… preciso alterar alguma propriedade do grid ou datasource?
obrigado!
Ricardo Pichler
03|Mar|2010 5Marcos,
sinceramente eu não sei! Una alternativa é colocar um campo do tipo checkbox e usar o método edit, fazer um botão do tipo selecionar todos e ai sim fazer o que você está pensando.
Marcos
05|Mar|2010 6É exatamente um Marcar Todos que estou tentando fazer. Mas o loop vai até o 16o registro apenas. Existe um checkbox em cada linha do grid que estou setando com true. Qualquer avanço que eu tiver eu aviso 😉
obrigado pelo retorno!
Ricardo Pichler
07|Mar|2010 7Então, mas o marcar todos ai se tem que ir para outra solução mesmo.
Isso que você comentou acontece porque para otimizar o sistema o ax puxa de X em X dados, ou seja, no caso do seu ele ta puxando de 16 em 16, por isso que quando você manda selecionar tudo, ele faz isso.
No seu caso você tem que fazer o seguinte:
Aplicar os filtros que quer, baseado nos filtros, você vai ter uma query, rodar essa query e fazer o que precisa fazer.
[]s
Pichler
Renan Castilho Zupa
01|Aug|2010 8Olá Ricardo, Parabéns pelo Blog.
Este código acima não funciona para mim, eu necessito enviar um buffer por args de todos os registros selecionados pelo o usuario na tela, entretanto se eu fizer como o código acima, ao terminar o while feito, a instancia ct perde os registros.
Como posso fazer?
Grato desde já
Diogo Jordão de Carvalho
05|Jul|2012 9Bom dia, gostaria de saber se poderia me auxiliar, estou desenvolvendo uma tela e nela necessito que quando o usuario selecionar mais de uma linha na grid alguns campos somem os valores é possivel?
Leave a reply
Search
Tags / Categorias
RSS
Arquivo
Blogroll
A design creation of Design Disease
Copyright © 2007 - Dynamics AX Brasil - is proudly powered by WordPress
InSense 1.0 Theme by Design Disease brought to you by HostGator Web Hosting. (Modified by Ricardo Pichler.)