Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lynx

TListbox X TMemo

Recommended Posts

Boa tarde,

 

Tenho uma situação que eu cadastro no TListbot uma data.

Automáticamente é criado um registr no BD, sem a descrição...

 

Esta data está ligada com o Memo, quando selecionar uma data no TListbox aparece a descrição no MEMO a direita.

 

O Problema é na hora do UPDATE, ele está fazendo o update igual no campo DESCRICAO (para todas as datas)...

 

for i:= 0 to lbdatas.Count-1 do	begin	  Close;	  SQL.Clear;	  SQL.Add('update EVOLUCAO set	   ' +			  'IDPAC = :IDPAC, ' +			  'DATA = :DATA,			 ' +			  'DESCRICAO = :DESCRICAO	' +			  'where DATA = :DATA and IDPAC = :IDPAC');	  ParamByName('DATA').AsDate := StrToDate(lbdatas.Items[i]);	  ParamByName('DESCRICAO').AsBlob:= mevolucao.Text;	  ParamByName('IDPAC').AsInteger:= idpac;	  ExecSQL();	end;  end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, você vai ter que fazer um esquema... porque me corrija se eu estiver errado, mas você preenche o Memo quando você clica no ListBox, logo o código para preencher o Memo está no OnClick do Listbox né?

 

então se realmente for isso poste aqui o código para bolarmos uma forma de adaptar o code para funcionar no botão de gravar... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, desculpe a demora.Tem um botao "Novo".Quando clico nele automáticamente adiciona a data de hoje no TListbox.Tudo bem, eu preenxo o campo TMemo, e quando vou salvar, preciso que cada ítem do listbox seja separado.Exemplo:TListbox05/06/2007 ---------- mensagem105/07/2007 ---------- mensagem2Na hora de salvar, preciso fazer este for, mas não está pegando os registros antigos..Ou seja, quando vou salvar, fica todos os registros com o mesmo conteúdo.obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz cara, agora ficou confuso por demais... porque veja bem...O TMemo não grava na memória... como você está assimilando a posição do ListBox com o texto do TMemo???pela linha^???

Compartilhar este post


Link para o post
Compartilhar em outros sites

No evento Onclik do TListBox.faço a busca e a expressão "where" está no TListBox (a data).Ou seja funciona, seleciona um ítem do Listbox, aparece no memo.O Problema é o Update.Preciso varrer o TListBox, e atualizar todos registros.Item1 -> 1registroitem2 -> 2registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, pra fazer isso você vai ter que fazer o OnClick no momento em que está fazendo o FOR...

 

Mais precisamente aqui ó:

for i:= 0 to lbdatas.Count-1 do	begin	  Close;		  //Coloque AQUI o Código para Buscar o Conteudo do Memo passando como parâmetro						   //StrToDate(lbdatas.Items[i])	  SQL.Clear;	  SQL.Add('update EVOLUCAO set	   ' +			  'IDPAC = :IDPAC, ' +			  'DATA = :DATA,			 ' +			  'DESCRICAO = :DESCRICAO	' +			  'where DATA = :DATA and IDPAC = :IDPAC');	  ParamByName('DATA').AsDate := StrToDate(lbdatas.Items[i]);	  ParamByName('DESCRICAO').AsBlob:= mevolucao.Text;	  ParamByName('IDPAC').AsInteger:= idpac;	  ExecSQL();	end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

No evento Onclik do TListBox.faço a busca e a expressão "where" está no TListBox (a data).Ou seja funciona, seleciona um ítem do Listbox, aparece no memo.O Problema é o Update.Preciso varrer o TListBox, e atualizar todos registros.Item1 -> 1registroitem2 -> 2registro.

Estou falando para você usar esse mesmo comando WHERE que usa no onClick LÁ no local que eu indiquei no FOR...Porém estou com uma dúvida...Quando você vai e clica em um item do ListBox, atualiza o memo e clica em outro item, o que você havia alterado anteriormente é perdido, correto?Não estou conseguindo compreender como está estruturado seu projeto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando clica no listbox, faz um select e aparece o resultado no Memo. (Isso funciona).Agora se um usuário clicar no item 3 do listbox, vai aparecer o conteúdo do ítem 3 no memo... Mas na hora de salvar eu preciso varrer todo listbox (1 por 1) e atualizar (Update) na tabela.Realmente é complicado explicar isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou uma coisa...Esse update é porque o usuário pode alterar qualquer ítem em qualquer mometo.obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia ....

kra desculpa, mais hj eu tô numa correria aki ... então li o tópico meio as pressas. Se eu entendi direito, qdo o cara clicka no listbox você monta um select pra preencher o memo com a data escolhida certo?

Entao, o certo não seria você fazer o update no onExit do Memo??? faz assim:

 

qry.SQL.Add('UPDATE TABELATAL SET DESC=' + Memo1.Lines.Text);qry.SQL.Add('WHERE DATA = ' + QuotedStr(ListBox1.Items.Strings[ListBox1.ItemIndex]));qry.ExecSQL;

vlw ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,Realmente é uma solução, o problema é que este TListbox e TMemo está dentro de um pagecontrol.E eu cada ítem modificado eu habilito o botão salvar alterações.Com este modo ele vai salvar e não vai habilitar o botão "salvar alterações" (Se o cara não quer salvar ele vai salvar).Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu resolvi fazer o update somente do ítem selecionado do (TListBox).Muito obrigado por todas respostas, se alguém souber fazer deste modo que postei no tópico, pode ficar avontade de postar.obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Joia ... Bom uma idéia seria fazer o loop que eu postei no post anterior, pegando os valores alterados e armazenando numa lista de strings, dai você habilita o botao salvar, e por fim qdo o cara clikar em salvar você atualiza de acordo com a lista de strings ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.