Allanrf Postado Setembro 19, 2007 Denunciar Share Postado Setembro 19, 2007 eu tenho um dbgrid com os dados da minha tabela nele, quero que a pessoa selecione algumas linhas e clique em um botao, nisso as linhas que ela selecionou irao para uma outra tabela, como faço isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Setembro 20, 2007 Denunciar Share Postado Setembro 20, 2007 eu tenho um dbgrid com os dados da minha tabela nele, quero que a pessoa selecione algumas linhas e clique em um botao, nisso as linhas que ela selecionou irao para uma outra tabela, como faço isso?Allanrf, é importante lembrar que o DBGrid apenas mostra os dados provenientes do dataset ligado a ele, ou seja, os dados estão no dataset.A linha atualmente selecionada no DBGrid é exatamente a linha em que está posicionado atualmente o dataset. Logo, se você quer obter os dados da linha selecionada, apenas acesse os campos do dataset associado ao DBGrid.Por ex., no DBGrid temos o dataset Alunos associado a ele. Nele visualizamos as colunas Nome Aluno e Data Nascimento. No dataset associado a ele estas colunas correspondem, respectivamente, a NomAluno e DatNascimento. Nosso dataset chama-se TabAlunos, então para atribuir as colunas hora selecionadas no DBGrid bastaria:... TabDestino.Append; TabDestinoNomAluno.Value := TabAlunosNomAluno.Value; TabDestinoDatNascimento,Value := TabAlunosDatNascimento.Value; TabDestino.Post; Já quanto a seleção múltipla, a idéia é similar. Mas, antes, será necessário habilitar a multipla seleção - setar dgMultSelect = True na propriedade Options do DBGrid. A seguir é necessário fazer um loop para processar todos os registros selecionados. Para isto utiliza-se a priopriedade SelectedRows do DBGrid. Neste loop, a cada intereção, o registro lido é gravado na tabela destino. Partindo do exemplo anterior: var Idx :Integer; begin if DBGrid1.SelectedRows.Count > 0 then begin for Idx := 0 to DBGrid1.SelectedRows.Count-1 do begin // posiciona o dataset de origem no "n" registro selecionado TabAlunos.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[Idx])); // move os dados do dataset de origem para destino aqui TabDestino.Append; TabDestinoNomAluno.Value := TabAlunosNomAluno.Value; TabDestinoDatNascimento,Value := TabAlunosDatNascimento.Value; TabDestino.Post; end; end; end;algo assim. ;)Tem este post similar, só que movendo os campos para um string a ser colocado no clipboard.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Allanrf Postado Setembro 20, 2007 Autor Denunciar Share Postado Setembro 20, 2007 (editado) Irei tentar aqui Micheus, mas muito obrigado desde já, sua explicação foi ótima.:)Consegui aqui Micheus, brigadão.:D Editado Setembro 20, 2007 por Allanrf Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Allanrf
eu tenho um dbgrid com os dados da minha tabela nele, quero que a pessoa selecione algumas linhas e clique em um botao, nisso as linhas que ela selecionou irao para uma outra tabela, como faço isso?
Link para o comentário
Compartilhar em outros sites
2 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.