vms Postado Junho 8, 2007 Denunciar Share Postado Junho 8, 2007 ola pessoalcriei uma tabela com dois campos, o campo com (*)é chamado palavraeste vai ficar em ordem alfabetica(indexfildename)é possivel numerar a coluna sem criar um novo indicee se possivel apresentar essa numeraçao em um Edit ou label atualizando automaticamente? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --HDELPHI -- Postado Junho 9, 2007 Denunciar Share Postado Junho 9, 2007 ola pessoalcriei uma tabela com dois campos, o campo com (*)é chamado palavraeste vai ficar em ordem alfabetica(indexfildename)é possivel numerar a coluna sem criar um novo indicee se possivel apresentar essa numeraçao em um Edit ou label atualizando automaticamente?Faça desta maneira: var i : integer;begin CDS_Teste.First; for i := 0 to CDS_Teste.recordcount -1 do begin CDS_Teste.Edit; CDS_TesteNUM.Value := CDS_Teste.RecNo; // primeira coluna do dbgrid CDS_Teste.next; end; CDS_Teste.ApplyUpdates(-1);end;Se estiver usando TTable basta trocar o CDS por Table, coloque o comando num botão ou no duplo click do DBgrid. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 12, 2007 Denunciar Share Postado Junho 12, 2007 vms, sinceramente...Não entendi a pergunta e também a resposta - menos ainda a relação entre elas, já que RecordCount é utilizado para varrer todas as linhas no seu dataset - não colunas. :blink: Mas com relação ao título do tópico, tenho a dizer que as colunas do DBGrid já são, de certo modo, numeradas. Basta que você utilize a propriedade Columns. Ela é uma lista de colunas (TColumn).Assim, se você utilizar DBGrid.Columns[indice], você observa que indice já funciona como uma numeração, não?! :huh: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 15, 2007 Autor Denunciar Share Postado Junho 15, 2007 Mas com relação ao título do tópico, tenho a dizer que as colunas do DBGrid já são, de certo modo, numeradas. Basta que você utilize a propriedade Columns. Ela é uma lista de colunas (TColumn).Assim, se você utilizar DBGrid.Columns[indice], você observa que indice já funciona como uma numeração, não?! pois é!mas o problema é que as palavras vao ficando em ordem alfabetica e consequentemente a coluna onde esta a numeraçao vai ficando toda bagunçada.eu queria uma numeraçao crescente independente da coluna palavra(um tipo de contador de palavras) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --HDELPHI -- Postado Junho 15, 2007 Denunciar Share Postado Junho 15, 2007 Mas com relação ao título do tópico, tenho a dizer que as colunas do DBGrid já são, de certo modo, numeradas. Basta que você utilize a propriedade Columns. Ela é uma lista de colunas (TColumn).Assim, se você utilizar DBGrid.Columns[indice], você observa que indice já funciona como uma numeração, não?! pois é!mas o problema é que as palavras vao ficando em ordem alfabetica e consequentemente a coluna onde esta a numeraçao vai ficando toda bagunçada.eu queria uma numeraçao crescente independente da coluna palavra(um tipo de contador de palavras)Colega ... entendi o que você queria dizer desde o principio ... a resposta esta no meu post acima ... independente da ordem alfabetica ele vai renumerar novamente o campo da coluna ...ok ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirambu! Postado Junho 16, 2007 Denunciar Share Postado Junho 16, 2007 Acho que o "vms" que, é numerar as linhas do Dbgrid, informar numerando cada registro, adicionando uma nova coluna na tabela apenas para aparecer a numero de cada linha. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 16, 2007 Autor Denunciar Share Postado Junho 16, 2007 Colega ... entendi o que você queria dizer desde o principio ... a resposta esta no meu post acima ... independente da ordem alfabetica ele vai renumerar novamente o campo da coluna ...ok ?cara não ta dando certove o que pode ta dando errado?a tabela ta no datamodulecoloquei um pagecontrol no form e um panel no pagecontrol e o dbgrid no panelpode ser que esse monte de componete pode ta atrapalhando?obrigado pela atençao! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirambu! Postado Junho 18, 2007 Denunciar Share Postado Junho 18, 2007 Tenta colocar um Campo para calcular "Numerar" na Tabela ou na query quer realiza a sua consulta, e no botão em OnClick adiciona este CódigoVar N:integer begin N:=1; table.first; while not table.eof do begin TableNumerar.value := N; N:= N+1; Table.next; end;Tenta isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 18, 2007 Denunciar Share Postado Junho 18, 2007 Tenta colocar um Campo para calcular "Numerar" na Tabela ou na query quer realiza a sua consulta, e no botão em OnClick adiciona este CódigoVar N:integer begin N:=1; table.first; while not table.eof do begin TableNumerar.value := N; N:= N+1; Table.next; end;Tenta isso.Pirambu!, isto é basicamente o que o colega HDelphi propôs inicialmente. Lembrando também, que aparentemente ele já possui um campo para isso. Porém, para seu código funcionar, está faltando colocar a tabela em modo edição (Table.Edit) antes da atribuição e postar os dados após a alteração (Table.Post).Nisto tudo, cabe perguntar ao colega vms se este campo, o tal Numero, pode realmente ser alterado a "bel prazer". Observem, que se este campo for utilizado simplesmente para uma "ordenação visual" (no DBGrid), então não há qualquer problema com as abordagens propostas. Mas, se ao contrário, este campo tiver a finalidade de servir de referência, sendo utilizado por outras tabelas para se referir a respectiva Paravra, então a alteração deste campo é uma ação crítica e incorreta!Só mais uma observação. O colega vms, não citou que componente utiliza para acessar os dados, então, eventualmente este pode ser um item a conhecer:Sobre RecNo no help do Delphi => "This function returns -1 in all cases. Ordinarily an application will not access RecNo at the TDataSet level. Instead a redeclared and implemented RecNo property in a descendant object such as TTable is accessed. RecNo provides a fallback property for derived dataset objects that do not reimplement it."Donde resulta que, em alguns componentes de acesso aos dados, eventualmente, a propriedade RecNo não retorna o número esperado, mas sim -1. Os componentes TTable e TQuery retornam corretamente.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 22, 2007 Autor Denunciar Share Postado Junho 22, 2007 esse codigo ocorre os seguintes erros, o que pode ser?var i : integer;beginCDS_Teste.First;for i := 0 to CDS_Teste.recordcount -1 dobeginCDS_Teste.Edit;CDS_TesteNUM.Value := CDS_Teste.RecNo; // primeira coluna do dbgridCDS_Teste.next;end;CDS_Teste.ApplyUpdates(-1);end;[Error] Adicionar.pas(221): Incompatible types: 'String' and 'Integer'[Error] Adicionar.pas(224): Too many actual parameters[Fatal Error] Dicionario.dpr(9): Could not compile used unit 'Adicionar.pas' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 22, 2007 Denunciar Share Postado Junho 22, 2007 CDS_TesteNUM.Value := CDS_Teste.RecNo; // primeira coluna do dbgrid[Error] Adicionar.pas(221): Incompatible types: 'String' and 'Integer'este parece bem explicativo. Parece que seu campo NUM é do tipo string e não numérico (integer). Sugestão - utilize funções de conversão:CDS_TesteNUM.Value := IntToStr(CDS_Teste.RecNo);[Error] Adicionar.pas(224): Too many actual parameterseste não teria motivo aparente já que o parâmetro é requerido. Veja se após sanar o erro anterior, este ainda persistirá - eventualmente, coisas deste tipo ocorrem.[Fatal Error]Dicionario.dpr(9): Could not compile used unit 'Adicionar.pas'este sempre vai aparecer quando o compilador encontrar um erro na unit. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 23, 2007 Autor Denunciar Share Postado Junho 23, 2007 QUOTE[Error] Adicionar.pas(224): Too many actual parameterseste ainda continua Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 23, 2007 Denunciar Share Postado Junho 23, 2007 QUOTE[Error] Adicionar.pas(224): Too many actual parameterseste ainda continuavms, vou dar um chutaço e tenho 99,99% de certeza que vou acertar no gol. :D - Observando que a mensagem de erro continua;- Conferindo os posts iníciais e entendendo que você deve estar utilizando Paradox e normalmente utiliza-se TTable ou TQuery;- Observando que o código que você postou veio do exemplo do HDelphi que utilizou TClientDataSet (CDS_...);Chego a conclusão que, seguindo a observação do HDelphi ("Se estiver usando TTable basta trocar o CDS por Table, (...)"), você fez a troca sim. Mas faltou ser mensionado/pesquisado um detalhe:O método ApplyUpdates não é igual para todos os tipos de dataset.Os componentes da paleta BDE, ou seja os que descendem de TBDEDataSet, não requerem parâmetros. Já os que descendem de TCustomClientDataSet, sim.Então, retire o parâmetro:CDS_Teste.ApplyUpdates;É por isso que não me canso se insistir que, em dúvidas de banco de dados, sejam sempre informados:- Banco utilizado;- Componente de acesso;pelo menos. Em alguns casos, outras informações podem ajudar (p.e, uso de transações)Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 23, 2007 Autor Denunciar Share Postado Junho 23, 2007 (editado) consigo compilar , mas quando clico no botao dar o seguinte erroproject raised exception class EDBEngineError with message 'Key violation'. process stopped.o que pode ser?michel você estava certo quanto a tabela, valeu! Editado Junho 23, 2007 por vms Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 24, 2007 Autor Denunciar Share Postado Junho 24, 2007 consegui tirar esse erro, mas quando clico no botao faz uma rapida apresentaçao das palavras e nada de numero Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 24, 2007 Denunciar Share Postado Junho 24, 2007 consegui tirar esse erro, mas quando clico no botao faz uma rapida apresentaçao das palavras e nada de numerovms, eu estou com a impressão que não gravou eles.Leu o comentário que fiz referente a ApplayUpdates? Acho que pode ser o caso.De qualquer forma, vou então colocar aqui a minha sugestão, adaptando do exemplo em uso:begin CDS_Teste.First; // posiciona no 1º registro while not CDS_Teste.EOF do // varre todos os registros até o fim begin CDS_Teste.Edit; // coloca tabela em modo edição do registro atual CDS_TesteNUM.Value := CDS_Teste.RecNo; // atribui o nº de ordem da linha/registro CDS_Teste.Post; // grava alterações na tabela CDS_Teste.Next; // avança para próximo registro end; end;Observar apenas que o índice selecionado para a tabela deve ser aquele que utiliza a palavra (acho que já é este que você utiliza, mas...)Apenas um comentário:- Este tipo de procedimento (numerar as linhas no DBGrid utilizando um campo na tabela - se é que é isto mesmo) só vai trazer um "probleminha": a cada item incluído, alterado ou excluído, você terá que executá-lo. Do contrário, sua numeração acabará ficando bagunçada.Imagine quando sua tabela tiver alguns mil registros, você executar este procedimento a cada ação? :blink: Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 26, 2007 Autor Denunciar Share Postado Junho 26, 2007 - Este tipo de procedimento (numerar as linhas no DBGrid utilizando um campo na tabela - se é que é isto mesmo) só vai trazer um "probleminha": a cada item incluído, alterado ou excluído, você terá que executá-lo. Do contrário, sua numeração acabará ficando bagunçada.Imagine quando sua tabela tiver alguns mil registros, você executar este procedimento a cada ação? michel, então diz aié possivel eu apresentar a quantidade de linha(palavra) de uma coluna do dbgrid em um edit ou label sem dar erro?a ideia é saber a quantidade de palavras (sem usar um bdedit) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 micheUS, então diz aié possivel eu apresentar a quantidade de linha(palavra) de uma coluna do dbgrid em um edit ou label sem dar erro?a ideia é saber a quantidade de palavras (sem usar um bdedit)vms, desse jeito eu volto a não entender sobre o que estamos falando.Uma coisa é querer mostrar no DBGrid linhas numeradas para cada item (SEQUENCIA):+--------+-------------+ | Numero | Palavra | +--------+-------------+ | 1 | Abobr | +--------+-------------+ | 2 | Abobrinha | +--------+-------------+ | . | . | | . | . | | . | . | +--------+-------------+ | 10 | Abobrona | +--------+-------------+Outra coisa é querer mostrar quantos elementos existem nesta lista (QUANTIDADE) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 27, 2007 Autor Denunciar Share Postado Junho 27, 2007 pois édaquela forma você disse que dava problema então eu reformulei a pergunta Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 pois édaquela forma você disse que dava problema então eu reformulei a perguntasim, eu disse que poderia ter problema, mas você tentou implementá-la mesmo assim. Mesmo que seja apenas para saber se é o que você quer?Bom, minha questão ainda continua: o que realmente você quer fazer? Contar ou Enumerar?Quem sabe você possa colocar um protótipo da tela (imagem) que você deseja ter.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Junho 28, 2007 Autor Denunciar Share Postado Junho 28, 2007 oktenho as seguites palavras1 abacate2 frutas3 bala4 zebra5 abajuquando insiridas no dbgrid nessa sequencia, ficara assim(porque usei o indexfildname)1 abacate5 abaju3 bala2 frutas4 zebraa coluna de numero toda bagunçada e a de palavras em ordem alfabeticaprimeiramante eu queria que a coluna de numero ficasse crescente(sem estar bagunçada) e a coluna de palavras cotinuassem em ordem alfabetica.e apresentando essa numeraçao em um edit ou labelassim ficaria facil de saber a quantidade de palavrasporque se eu tenho 1000 palavras por exemplo e acrescento mais 1 com letra Aentão a palavra de numero 1001 vai la pro inicio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Julho 1, 2007 Denunciar Share Postado Julho 1, 2007 vms, você poderia tentar utilizar um campo calculado, do tipo inteiro, e para este campo você moveria o RecNo. Supondo o nome da coluna NumOrdem (vamos deixar o campo Numero do seu banco em off), você no evento OnCalcField você faria:TabTesteNumOrdem.Value := TabTeste.RecNo;Testa aí para ver se funcina (eu acho que sim, mas não tenho como conferir agora).Se tiver dúvida de como criar o campo calculado dá uma olhada neste tutorial e pesquise pelo texto: "DataModule:" (sem as aspas), é o segundo item nesta sessão.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Julho 2, 2007 Autor Denunciar Share Postado Julho 2, 2007 era exatamente isso que eu queriavaleu michel Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabionline2010 Postado Janeiro 17, 2011 Denunciar Share Postado Janeiro 17, 2011 Ola a Todos,eu estou utilizando db Firebird, Zeos Lib 6.0 e delphi7.O meu problema é que tanto utilizando Query.RecNo para retornar as linhas numeradas ou de algum outro jeitoate da certo, mas ao rolar as linhas do grid para cima ou para baixo elas acrescentam a numeração da linha numerada ou acontece asssim 1 1 1 1 1 1ate rolar sobre ele ai ele entra na sequencia 1 2 3 4mas depois começa a incrementar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jaumDoDelphi Postado Janeiro 31, 2011 Denunciar Share Postado Janeiro 31, 2011 Ola Pessoal, já faz tempo que n venho ao forum!Feliz ano novo hehehe!quando parei meu projeto de cadastro de filmes no ano passado.Estava enrrolado nesta parte de numerar os Itens Linha a linha!Dai testei o exemplo do Micheus e funcionou perfeitamente - D2010/ADOQuery.Mas como ele disse é Inviável e muito problemático.Toda vez que eu for adicionar um Item novo ele vai ter que numerar tudo novamente. Abrir e fechar a tabela toda hora.Realmente vou deixar o programa somente com o Numero de Cadastro fica meio bagunçado quando você exclui um item mais fica bem mais simples, leve e rápido!já pensou com mais de 30mil cadastros "Seria uma eternidade" :wacko: Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
vms
ola pessoal
criei uma tabela com dois campos, o campo com (*)é chamado palavra
este vai ficar em ordem alfabetica(indexfildename)
é possivel numerar a coluna sem criar um novo indice
e se possivel apresentar essa numeraçao em um Edit ou label atualizando automaticamente?
Link para o comentário
Compartilhar em outros sites
24 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.