ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Append não funciona no clientdataset
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11325

MensagemEnviada: Ter Nov 12, 2019 5:43 pm    Assunto: Responder com Citação

Experimente mais ou menos dessa forma:

Código:
var
  Bookmark1: TBookmark;
  Email: string;
begin
  Bookmark1 := ClientDataSet1.GetBookmark;
  try
    ClientDataSet1.DisableControls;
    Email := ClientDataSet1Email.AsString;
    ClientDataSet1.First;
    while not ClientDataSet1.Eof do
      begin
      if ClientDataSet1Email.AsString <> Email then
        begin
        ClientDataSet1.Edit;
        ClientDataSet1Selecionado.AsString := 'nao';
        ClientDataSet1.Post;
        end;
      ClientDataSet1.Next;
      end;
  finally
    ClientDataSet1.GotoBookmark(Bookmark1);
    ClientDataSet1.FreeBookmark(Bookmark1);
    ClientDataSet1.EnableControls;
  end;
end;


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-apartamento
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Fafnyr
Novato
Novato


Registrado: Terça-Feira, 7 de Mai de 2019
Mensagens: 39

MensagemEnviada: Qua Nov 13, 2019 8:17 am    Assunto: Responder com Citação

imex escreveu:
Experimente mais ou menos dessa forma:

Código:
var
  Bookmark1: TBookmark;
  Email: string;
begin
  Bookmark1 := ClientDataSet1.GetBookmark;
  try
    ClientDataSet1.DisableControls;
    Email := ClientDataSet1Email.AsString;
    ClientDataSet1.First;
    while not ClientDataSet1.Eof do
      begin
      if ClientDataSet1Email.AsString <> Email then
        begin
        ClientDataSet1.Edit;
        ClientDataSet1Selecionado.AsString := 'nao';
        ClientDataSet1.Post;
        end;
      ClientDataSet1.Next;
      end;
  finally
    ClientDataSet1.GotoBookmark(Bookmark1);
    ClientDataSet1.FreeBookmark(Bookmark1);
    ClientDataSet1.EnableControls;
  end;
end;


Espero que ajude


imex, esse código eu coloco aonde?, porque os checkbox são criados manualmente através do código, acho que o ideal seria no evento cellclick
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11325

MensagemEnviada: Qua Nov 13, 2019 9:51 am    Assunto: Responder com Citação

Acho que você pode colocar abaixo do código que altera o valor do campo quando o CheckBox é clicado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Fafnyr
Novato
Novato


Registrado: Terça-Feira, 7 de Mai de 2019
Mensagens: 39

MensagemEnviada: Qua Nov 13, 2019 10:07 am    Assunto: Responder com Citação

imex escreveu:
Acho que você pode colocar abaixo do código que altera o valor do campo quando o CheckBox é clicado.

imex, primeiramente obrigado pela ajuda, eu coloquei o código como você instruiu, porém ele continua marcando mais de uma checkbox, oque mudou é que agora quando eu desmarco uma, as outras que estão marcadas desmarcam junto, outra dúvida, na linha ClientDataSet1Selecionado.AsString := 'nao';
eu troco o Selecionado pelo nome do field da checkbox?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11325

MensagemEnviada: Qua Nov 13, 2019 10:54 am    Assunto: Responder com Citação

Citação:
eu troco o Selecionado pelo nome do field da checkbox?

Sim

A princípio esse código pode ser executado só quando o CheckBox é marcado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Fafnyr
Novato
Novato


Registrado: Terça-Feira, 7 de Mai de 2019
Mensagens: 39

MensagemEnviada: Qua Nov 13, 2019 11:03 am    Assunto: Responder com Citação

imex escreveu:
Citação:
eu troco o Selecionado pelo nome do field da checkbox?

Sim

A princípio esse código pode ser executado só quando o CheckBox é marcado.


mas então, oque ta acontecendo é que ele continua marcando várias checkbox, só que na hora de desmarcar ele desmarca todas, o código está assim
Código:

procedure TForm1.dbgrd1CellClick(Column: TColumn);
var
Bookmark1: TBookmark;
  Email: string;
begin
  dscds.Edit;
  if dscdsCK_EMAIL.AsString = 'SIM' then
  dscdsCK_EMAIL.AsString := ''
  else dscdsCK_EMAIL.AsString := 'SIM';
  dscds.Post;
  Bookmark1 := dscds.GetBookmark;
  try
    dscds.DisableControls;
    Email := dscds.fieldbyname('TX_EMAIL').AsString;
    dscds.First;
    while not dscds.Eof do
      begin
      if dscdsCK_EMAIL.AsString <> Email then
        begin
        dscds.Edit;
        dscdsCK_EMAIL.AsString := 'nao';
        dscds.Post;
        end;
      dscds.Next;
      end;
  finally
    dscds.GotoBookmark(Bookmark1);
    dscds.FreeBookmark(Bookmark1);
    dscds.EnableControls;
end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Fafnyr
Novato
Novato


Registrado: Terça-Feira, 7 de Mai de 2019
Mensagens: 39

MensagemEnviada: Qua Nov 13, 2019 11:56 am    Assunto: Responder com Citação

Consegui, na real foi vacilo meu, obrigado imex, agora só mais uma coisa, no caso eu preciso que 1 checkbox sempre fique marcado, nunca pode estar todos desmarcados, como eu posso fazer isso?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10460
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Nov 13, 2019 12:08 pm    Assunto: Responder com Citação

Cuidado ao colocar no oncreate algo do banco, visto que por vezes nem o datamodulo pode ter sido iniciado ainda, portanto verifique isto para não haver falha.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Fafnyr
Novato
Novato


Registrado: Terça-Feira, 7 de Mai de 2019
Mensagens: 39

MensagemEnviada: Qua Nov 13, 2019 2:07 pm    Assunto: Responder com Citação

Agora está funcionando perfeitamente, só falta acertar o detalhe que disse ali em cima, algum dos checkbox tem que estar marcado, não pode estar todos desmarcados
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Fafnyr
Novato
Novato


Registrado: Terça-Feira, 7 de Mai de 2019
Mensagens: 39

MensagemEnviada: Qua Nov 13, 2019 3:20 pm    Assunto: Responder com Citação

Consegui oque queria galera, muito obrigado a todos, desculpem a leiguice Smile, qualquer dúvida volto aqui
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB