Atualizar TreeView ao fazer qualquer alteração na tabela
28/08/2023
0
Resumindo se houver qualquer tipo de alteração na tabela o treeview tambem alterasse.
Alan
Post mais votado
28/08/2023
O componente não precisa necessariamente ter todos os itens destruídos para então atualizar a lista. Você pode varrer a lista de itens e ir atualizando, de forma que a atualização na tela seja mais natural e evite o excesso de alocação dinâmica de componentes.
Arthur Heinrich
Mais Posts
28/08/2023
Alan
O componente não precisa necessariamente ter todos os itens destruídos para então atualizar a lista. Você pode varrer a lista de itens e ir atualizando, de forma que a atualização na tela seja mais natural e evite o excesso de alocação dinâmica de componentes.
Entao Arthur no meu treeView contem dados da tabela,onde tem os grupos e os ips e tem uma child que eu quero q funcione como se fosse um contador,exemplo :
dm.FDGrupos.sql.Clear; dm.FDGrupos.sql.Add('SELECT IP,NOME,NUMERO_GRUPO,ID_GRUPO,STATUS from Grupos where Numero_grupo = "1"'); dm.FDGrupos.Open; if dm.FDGrupos.RecordCount <> 0 then begin Setor1:= treeview.Items.AddChild(Controladora,dm.FDGruposNome.Value); Setor1.ImageIndex := 2; Setor1.SelectedIndex := 2; dm.FDGrupos.Close; dm.FDGrupos.sql.Clear; dm.FDGrupos.sql.Add('SELECT IP,NOME,NUMERO_GRUPO,ID_GRUPO,STATUS from Grupos where Nome = :pNome'); dm.FDGrupos.ParamByName('Pnome').Value := Setor1.Text; dm.FDGrupos.Open; dm.FDGrupos.First; while not dm.FDGrupos.eof do begin Ips1:= treeview.Items.AddChild(Setor1,dm.FDGruposip.value); dm.FDGrupos.Next; Ips1.ImageIndex := 1; Ips1.SelectedIndex := 1; dm.FDquery1.Close; dm.FDquery1.SQL.Clear; dm.FDquery1.sql.Add('SELECT grupos.Id_grupo,Grupos.IP FROM Grupos'); dm.FDquery1.sql.Add('LEFT JOIN ingressos_evento ON grupos.Id_grupo = ingressos_evento.Id_controladora'); dm.FDquery1.sql.Add(' WHERE ingressos_evento.Tipo = "ENTRADA" and grupos.ip = :Pdesc'); dm.FDquery1.ParamByName('Pdesc').Value := ips1.Text; dm.FDquery1.open; dm.FDquery1.FetchAll; treeview.Items.AddChild(ips1,inttostr(dm.FDQuery1.RecordCount )) ; //Aqui eu pucho a quantidade de registro que o id do ip passou .Ai cada vez que esse id do ip acrescenta ele atualizaria tambem na treeview,nao só na parte do contador mais tambem se fizesse um update de trocar os ips de grupo end; end;
Teria um exemplo de como fazer isso?
29/08/2023
Emerson Nascimento
assim você poderá fazer as coisas funcionarem da forma que você precisa: o banco de dados avisar à aplicação sobre mudanças, em vez de você ficar fazendo consultas frequentes para saber se houve alguma alteração no banco (registro/tabela).
veja uma breve explicação aqui:
https://gdksoftware.com/pt-br/base-de-conhecimento/delphi-e-database-events?gclid=CjwKCAjwrranBhAEEiwAzbhNtViQ75Rb3QJLJJymNIOyIrNQZ3ZEisLc04tHH7EzRcvAOxUaGyTcaBoCTNIQAvD_BwE
exemplos da própria embarcadero:
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/FireDAC.TFDEventAlerter_Sample
se você ainda não tiver os fontes exemplo na tua máquina, basta baixar do Github.
02/09/2023
Alan
assim você poderá fazer as coisas funcionarem da forma que você precisa: o banco de dados avisar à aplicação sobre mudanças, em vez de você ficar fazendo consultas frequentes para saber se houve alguma alteração no banco (registro/tabela).
veja uma breve explicação aqui:
https://gdksoftware.com/pt-br/base-de-conhecimento/delphi-e-database-events?gclid=CjwKCAjwrranBhAEEiwAzbhNtViQ75Rb3QJLJJymNIOyIrNQZ3ZEisLc04tHH7EzRcvAOxUaGyTcaBoCTNIQAvD_BwE
exemplos da própria embarcadero:
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/FireDAC.TFDEventAlerter_Sample
se você ainda não tiver os fontes exemplo na tua máquina, basta baixar do Github.
Clique aqui para fazer login e interagir na Comunidade :)