Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Exportar Dados De Dbgrid Para Tabela


Allanrf

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0
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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...