Re: [delphi-br] Bookmarks e IndexFieldNames
Ambas soluções funcionam. Só pra esclarecer, o BookMark não funciona porque você movimenta o cursor da tabela quando muda o IndexFieldNames. []s Adriano Santos Editor Chefe da Revista ClubeDelphi Gerente de Desenvolvimento na SoftPark 2009/5/9 marcelo > > > Voce pode tambem usar a propriedade RecNo do ClientDataSet, é só armazenar > ela em uma variável integer e depois quando quiser voltar a ela e só > apontar > ClientDataset1.RecNo := Variavel , pronto e sem utilização de nenhum > mecanismo de busca. vlw > > De: delphi-br@yahoogrupos.com.br [mailto: > delphi-br@yahoogrupos.com.br ] Em > nome de Rubens Antunes > Enviada em: sábado, 9 de maio de 2009 16:00 > > Para: delphi-br@yahoogrupos.com.br > Assunto: Re: [delphi-br] Bookmarks e IndexFieldNames > > Amigo > > Recentemente me deparei com esse problema tb, para resolve-lo eu criei uma > variável para controlar, ou seja, toda vez que mando indexar o > ClientDataSet, antes eu pego o codigo do registro e depois de indexar um > dou > um Locate e para no mesmo registro. a ideia é pegar o codigo do registro > antes de indexar e depois pesquisar. > > Abraço > > Rubens Antunes > > Autor do Livro - Delphi Faça Uma Aplicação Comercial > Blog http://rubensantunes.zip.net/ > > --- Em sex, 8/5/09, Paulo - yahoo > > <mailto:psdias2%40yahoo.com.br > > escreveu: > > De: Paulo - yahoo psdias2%40yahoo.com.br > > > Assunto: [delphi-br] Bookmarks e IndexFieldNames > Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br > > Data: Sexta-feira, 8 de Maio de 2009, 18:16 > > Grupo Delphi-BRGostaria de saber se esse comportamento do ClientDataSet é > normal, ou se eu é que não estou fazendo algo corretamente: > > a) Em uma certa tela de consulta, ordeno os registros de um ClientDataSet > por DATAEMISSAO+ NUMERO_NF. > Assim: > > ClientDataSet. IndexFieldNames := 'DATAEMISSAO; NUMERO_NF' ; > > b) Em certo momento, preciso fazer uma pesquisa pelo NUMERO_NF, e por isso > mudo o IndexFieldNames para: > > ClientDataSet. IndexFieldNames := 'NUMERO_NF'; > > ClientDataSet. FindKey([ 1234]); // apenas um exemplo > > (aqui o ClientDataSet se posiciona normalmente na NF 1234 > > c) Porém, preciso retornar logo depois ao índice anterior: > > ClientDataSet. IndexFieldNames := 'DATAEMISSAO; NUMERO_NF' ; > > d) O problema é que, quando eu retorno à classificação anterior, o registro > posicionado muda, ou seja, o ponteiro do ClientDataSet deixa de estar na NF > 1234 e passa a estar em outro registro. > > e) Tentei usar GetBookMark e GotoBookMark, mas parece que não adianta, > porque após mudar o IndexFieldNames, o GotoBookMark continua caindo em > outro > registro > > Alguém tem alguma idéia de como executar os comandos acima, ou seja, mudar > a > classificação, pesquisar um registro, retornar à classificação anterior e > manter o ponteiro no registro que foi pesquisado ? > > Obs.: Eu não criei índices nesse ClientDataSet porque não vi necessidade, > pelo menos até o momento. Apena o IndexFieldNames estava resolvendo bem a > situação, até eu me deparar com o problema acima. > > Grato pela atenção de todos. > Paulo > > [As partes desta mensagem que não continham texto foram removidas] > > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbuscados.yahoo.com > > [As partes desta mensagem que não continham texto foram removidas] > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.0.238 / Virus Database: 270.12.23/2106 - Release Date: 05/09/09 > 06:54:00 > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Adriano Santos Director X-35 Consulting and Development IT Manager SoftPark Chief Editor Magazines ClubeDelphi && WebMobile www.delphitodelphi.blogspot.com www.adrianosantos.pro.br www.devmedia.com.br www.dug-sp.com [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Bookmarks e IndexFieldNames
Voce pode tambem usar a propriedade RecNo do ClientDataSet, é só armazenar ela em uma variável integer e depois quando quiser voltar a ela e só apontar ClientDataset1.RecNo := Variavel , pronto e sem utilização de nenhum mecanismo de busca. vlw De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Rubens Antunes Enviada em: sábado, 9 de maio de 2009 16:00 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Bookmarks e IndexFieldNames Amigo Recentemente me deparei com esse problema tb, para resolve-lo eu criei uma variável para controlar, ou seja, toda vez que mando indexar o ClientDataSet, antes eu pego o codigo do registro e depois de indexar um dou um Locate e para no mesmo registro. a ideia é pegar o codigo do registro antes de indexar e depois pesquisar. Abraço Rubens Antunes Autor do Livro - Delphi Faça Uma Aplicação Comercial Blog http://rubensantunes.zip.net/ --- Em sex, 8/5/09, Paulo - yahoo mailto:psdias2%40yahoo.com.br> > escreveu: De: Paulo - yahoo mailto:psdias2%40yahoo.com.br> > Assunto: [delphi-br] Bookmarks e IndexFieldNames Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Data: Sexta-feira, 8 de Maio de 2009, 18:16 Grupo Delphi-BRGostaria de saber se esse comportamento do ClientDataSet é normal, ou se eu é que não estou fazendo algo corretamente: a) Em uma certa tela de consulta, ordeno os registros de um ClientDataSet por DATAEMISSAO+ NUMERO_NF. Assim: ClientDataSet. IndexFieldNames := 'DATAEMISSAO; NUMERO_NF' ; b) Em certo momento, preciso fazer uma pesquisa pelo NUMERO_NF, e por isso mudo o IndexFieldNames para: ClientDataSet. IndexFieldNames := 'NUMERO_NF'; ClientDataSet. FindKey([ 1234]); // apenas um exemplo (aqui o ClientDataSet se posiciona normalmente na NF 1234 c) Porém, preciso retornar logo depois ao índice anterior: ClientDataSet. IndexFieldNames := 'DATAEMISSAO; NUMERO_NF' ; d) O problema é que, quando eu retorno à classificação anterior, o registro posicionado muda, ou seja, o ponteiro do ClientDataSet deixa de estar na NF 1234 e passa a estar em outro registro. e) Tentei usar GetBookMark e GotoBookMark, mas parece que não adianta, porque após mudar o IndexFieldNames, o GotoBookMark continua caindo em outro registro Alguém tem alguma idéia de como executar os comandos acima, ou seja, mudar a classificação, pesquisar um registro, retornar à classificação anterior e manter o ponteiro no registro que foi pesquisado ? Obs.: Eu não criei índices nesse ClientDataSet porque não vi necessidade, pelo menos até o momento. Apena o IndexFieldNames estava resolvendo bem a situação, até eu me deparar com o problema acima. Grato pela atenção de todos. Paulo [As partes desta mensagem que não continham texto foram removidas] Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas] No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.0.238 / Virus Database: 270.12.23/2106 - Release Date: 05/09/09 06:54:00 [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Bookmarks e IndexFieldNames
Amigo Recentemente me deparei com esse problema tb, para resolve-lo eu criei uma variável para controlar, ou seja, toda vez que mando indexar o ClientDataSet, antes eu pego o codigo do registro e depois de indexar um dou um Locate e para no mesmo registro. a ideia é pegar o codigo do registro antes de indexar e depois pesquisar. Abraço Rubens Antunes Autor do Livro - Delphi Faça Uma Aplicação Comercial Blog http://rubensantunes.zip.net/ --- Em sex, 8/5/09, Paulo - yahoo escreveu: De: Paulo - yahoo Assunto: [delphi-br] Bookmarks e IndexFieldNames Para: delphi-br@yahoogrupos.com.br Data: Sexta-feira, 8 de Maio de 2009, 18:16 Grupo Delphi-BRGostaria de saber se esse comportamento do ClientDataSet é normal, ou se eu é que não estou fazendo algo corretamente: a) Em uma certa tela de consulta, ordeno os registros de um ClientDataSet por DATAEMISSAO+ NUMERO_NF. Assim: ClientDataSet. IndexFieldNames := 'DATAEMISSAO; NUMERO_NF' ; b) Em certo momento, preciso fazer uma pesquisa pelo NUMERO_NF, e por isso mudo o IndexFieldNames para: ClientDataSet. IndexFieldNames := 'NUMERO_NF'; ClientDataSet. FindKey([ 1234]); // apenas um exemplo (aqui o ClientDataSet se posiciona normalmente na NF 1234 c) Porém, preciso retornar logo depois ao índice anterior: ClientDataSet. IndexFieldNames := 'DATAEMISSAO; NUMERO_NF' ; d) O problema é que, quando eu retorno à classificação anterior, o registro posicionado muda, ou seja, o ponteiro do ClientDataSet deixa de estar na NF 1234 e passa a estar em outro registro. e) Tentei usar GetBookMark e GotoBookMark, mas parece que não adianta, porque após mudar o IndexFieldNames, o GotoBookMark continua caindo em outro registro Alguém tem alguma idéia de como executar os comandos acima, ou seja, mudar a classificação, pesquisar um registro, retornar à classificação anterior e manter o ponteiro no registro que foi pesquisado ? Obs.: Eu não criei índices nesse ClientDataSet porque não vi necessidade, pelo menos até o momento. Apena o IndexFieldNames estava resolvendo bem a situação, até eu me deparar com o problema acima. Grato pela atenção de todos. Paulo [As partes desta mensagem que não continham texto foram removidas] Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Bookmarks e IndexFieldNames
Grupo Delphi-BRGostaria de saber se esse comportamento do ClientDataSet é normal, ou se eu é que não estou fazendo algo corretamente: a) Em uma certa tela de consulta, ordeno os registros de um ClientDataSet por DATAEMISSAO+NUMERO_NF. Assim: ClientDataSet.IndexFieldNames := 'DATAEMISSAO;NUMERO_NF'; b) Em certo momento, preciso fazer uma pesquisa pelo NUMERO_NF, e por isso mudo o IndexFieldNames para: ClientDataSet.IndexFieldNames := 'NUMERO_NF'; ClientDataSet.FindKey([1234]); // apenas um exemplo (aqui o ClientDataSet se posiciona normalmente na NF 1234 c) Porém, preciso retornar logo depois ao índice anterior: ClientDataSet.IndexFieldNames := 'DATAEMISSAO;NUMERO_NF'; d) O problema é que, quando eu retorno à classificação anterior, o registro posicionado muda, ou seja, o ponteiro do ClientDataSet deixa de estar na NF 1234 e passa a estar em outro registro. e) Tentei usar GetBookMark e GotoBookMark, mas parece que não adianta, porque após mudar o IndexFieldNames, o GotoBookMark continua caindo em outro registro Alguém tem alguma idéia de como executar os comandos acima, ou seja, mudar a classificação, pesquisar um registro, retornar à classificação anterior e manter o ponteiro no registro que foi pesquisado ? Obs.: Eu não criei índices nesse ClientDataSet porque não vi necessidade, pelo menos até o momento. Apena o IndexFieldNames estava resolvendo bem a situação, até eu me deparar com o problema acima. Grato pela atenção de todos. Paulo [As partes desta mensagem que não continham texto foram removidas]