De ListBox para ListBox
Srs, bom dia!
Estou tentando mas não estou conseguindo inserir no ListBox2, um item selecionado no ListBox1. Consigo preencher o ListBox1, com dados provenientes de um banco, mas preciso possibilitar que o usuario selecione o (os) item (s) desejado (s) no ListBox1 e insira no ListBox2, e a partir daí utilizar os dados do ListBox2 como parâmetros para uma query específica. Se alguem puder me ajudar, serei muito grato. Desde já eu agradeço.
Abraço a todos.
Estou tentando mas não estou conseguindo inserir no ListBox2, um item selecionado no ListBox1. Consigo preencher o ListBox1, com dados provenientes de um banco, mas preciso possibilitar que o usuario selecione o (os) item (s) desejado (s) no ListBox1 e insira no ListBox2, e a partir daí utilizar os dados do ListBox2 como parâmetros para uma query específica. Se alguem puder me ajudar, serei muito grato. Desde já eu agradeço.
Abraço a todos.
Programalista
Curtidas 0
Respostas
Bruno Belchior
01/09/2005
with ListBox1 do ListBox2.Items.Add(Items[ItemIndex]);
isso se o parâmetro for realmente a string... senão use o [b:4cbbd226cb]AddObject[/b:4cbbd226cb] e passe um índice qualquer... :wink:
GOSTEI 0
Programalista
01/09/2005
Valeu brunovicenteb, era isto que eu precisava. Deu certo!
Abrigado, qq coisa estamos ai.
Att,
Programalista
Abrigado, qq coisa estamos ai.
Att,
Programalista
GOSTEI 0
Programalista
01/09/2005
Pessoal, surgiu um outro problema: Estou tentando atribuir o conteúdo do ListBox2 à uma variável do tipo ´string´ para que eu possa passá-la como parâmetro em uma query, mas o Delphi exibe um erro dizendo que os tipos String (variável) e o TString (ListBox2) são incompativéis.
Algum saberia como resolver isto?
Obrigadaço! e abraço a todos.
Att,
Programalista.
[Error] Ulistbox.pas(106): Incompatible types: ´String´ and ´TStrings´
Algum saberia como resolver isto?
Obrigadaço! e abraço a todos.
Att,
Programalista.
GOSTEI 0
Bruno Belchior
01/09/2005
if ListBox1.ItemIndex <> -1 then Query.ParByName(´Parametro1´).AsString := ListBox1.Items[ListBox1.ItemIndex];
GOSTEI 0
Programalista
01/09/2005
Bom dia Bruno, e a todos do Fórum.
Eu preciso de uma query assim:
sendo assim, ao comando do usuario, estarei passando esta query para o banco, onde os valores de parâmetro deverão ser aqueles que o usuario irá selecionar e que vão estar no ListBox2. Preciso desta solução porque o sistema que desenvolvi permite que o relatório seja convertido em .pdf e enviado por email, então atualmente, se preciso enviar 3 relatórios de certificado para o meu cliente, eu tenho que gerá-los um por um, converter em .pdf (através do sistema), salvar e só depois criar um email e anexar todos. Se eu conseguir o que pretendo, o usuário poderá selecionar os códigos que desejar (no ListBox1) e preencher o ListBox2 a partir daí irá disparar a geração ´do relatório´ (único) com tantas páginas de acordo que os códigos gerados, ou seja, se forem selecionados 3 códigos, será gerado um único relatório com 3 páginas. Então o sistema irá gerar um único .pdf que será enviado por email. Talvez tenha outra forma mais prática de implementar esta solução, se tiver alguma sugestão, ela será muito bem vinda. Agradeço desde já.
Att,
Programalista.
Eu preciso de uma query assim:
select * from certificado where codigo in (125, 450, 80) order by codigo
sendo assim, ao comando do usuario, estarei passando esta query para o banco, onde os valores de parâmetro deverão ser aqueles que o usuario irá selecionar e que vão estar no ListBox2. Preciso desta solução porque o sistema que desenvolvi permite que o relatório seja convertido em .pdf e enviado por email, então atualmente, se preciso enviar 3 relatórios de certificado para o meu cliente, eu tenho que gerá-los um por um, converter em .pdf (através do sistema), salvar e só depois criar um email e anexar todos. Se eu conseguir o que pretendo, o usuário poderá selecionar os códigos que desejar (no ListBox1) e preencher o ListBox2 a partir daí irá disparar a geração ´do relatório´ (único) com tantas páginas de acordo que os códigos gerados, ou seja, se forem selecionados 3 códigos, será gerado um único relatório com 3 páginas. Então o sistema irá gerar um único .pdf que será enviado por email. Talvez tenha outra forma mais prática de implementar esta solução, se tiver alguma sugestão, ela será muito bem vinda. Agradeço desde já.
Att,
Programalista.
GOSTEI 0
Bruno Belchior
01/09/2005
acho que em vez de dois [b:f127c166fb]ListBox´s[/b:f127c166fb] pq vc não usa um [b:f127c166fb]CheckListBox[/b:f127c166fb] :?: Assim ele poderá escolher quantos ´Relatórios´ ele quiser... não sei se entendi seu problema ou se estou me equivocando :oops: de qualquer forma, no ListBox vc lista um nome e quer passar um código :?: ou você lista nomes e quer passar realmente nomes como parâmetro :?:
GOSTEI 0
Programalista
01/09/2005
Mais uma vez, obrigado!
Eu listo os códigos no ListBox1 e quero passá-los como parâmetro, estes códigos são do tipo inteiro. A intenção de usar o LisBox em vez do CheckListBox é apenas para deixar de forma mais clara, o que usuário está selecionando.
Abraços.
Eu listo os códigos no ListBox1 e quero passá-los como parâmetro, estes códigos são do tipo inteiro. A intenção de usar o LisBox em vez do CheckListBox é apenas para deixar de forma mais clara, o que usuário está selecionando.
Abraços.
GOSTEI 0
Rômulo Barros
01/09/2005
Vamos supor que o seu ListBox2 possua os valores: 1 - 2 - 3
Logo seu select ficaria assim:
[b:b03371bc89]
Para isto, utililzei como base o código abaixo:[/b:b03371bc89]
[b:b03371bc89]Espero q funcione de acordo com sua necessidade !!![/b:b03371bc89]
[u:b03371bc89][i:b03371bc89][b:b03371bc89][color=blue:b03371bc89]Obs:[/color:b03371bc89][/b:b03371bc89][/i:b03371bc89][/u:b03371bc89][color=red:b03371bc89] É fundamental que vc valide se o listbox2 possui itens para evitar erros.[/color:b03371bc89]
Logo seu select ficaria assim:
select * from certificado where codigo in (1,2,3) order by codigo
[b:b03371bc89]
Para isto, utililzei como base o código abaixo:[/b:b03371bc89]
Var C : Byte; Query : String; Parametros : String; begin With(ListBox2)Do Begin Query := ´select * from certificado where codigo In´; Parametros := ´(´; For C := 0 To Items.Count -1 Do Begin If(C = Items.Count -1)Then Begin Parametros := Parametros + Items[C] + ´)´; End Else Begin Parametros := Parametros + Items[C] + ´,´; End; End; Query := Query + Parametros + ´ order by codigo´; ShowMessage(Query); End; end;
[b:b03371bc89]Espero q funcione de acordo com sua necessidade !!![/b:b03371bc89]
[u:b03371bc89][i:b03371bc89][b:b03371bc89][color=blue:b03371bc89]Obs:[/color:b03371bc89][/b:b03371bc89][/i:b03371bc89][/u:b03371bc89][color=red:b03371bc89] É fundamental que vc valide se o listbox2 possui itens para evitar erros.[/color:b03371bc89]
GOSTEI 0
Programalista
01/09/2005
Rômulo Barros, meu camarada [b:30c34261bb]valeu Demais[/b:30c34261bb] era exatamente isto de que eu precisava, [b:30c34261bb]o b r i g a d o![/b:30c34261bb]
Agradeço também ao Bruno pelas suas valiosas contribuições.
Olha gente, sou iniciante na arte de programar, mas eu estou tentando e com certeza chegarei lá, por isso eu sou muito grato a todos àqueles que contribuem para o meu crescimento. Obrigado mesmo.
Abraços.
Agradeço também ao Bruno pelas suas valiosas contribuições.
Olha gente, sou iniciante na arte de programar, mas eu estou tentando e com certeza chegarei lá, por isso eu sou muito grato a todos àqueles que contribuem para o meu crescimento. Obrigado mesmo.
Abraços.
GOSTEI 0
Rômulo Barros
01/09/2005
:arrow: [u:827890b9a2]Relaxa !!![/u:827890b9a2] :wink:
GOSTEI 0
Bruno Belchior
01/09/2005
:wink: só pra resumir mais um pouco:
var ComandoSQL: string; begin ComandoSQL := Format(´Select * from Tabelas where Codigo in (¬s) order by ´ + ´Codigo´, [ListBox2.Items.CommaText]); end;
GOSTEI 0
Rômulo Barros
01/09/2005
Boa Solução, [u:9f898c339c]brunovicenteb [/u:9f898c339c]!!
Está aí uma solução ´enxuta´ para o problema do nosso amigo.
Mais uma q eu não sabia e aprendi.
É Vivendo e aprendendo..
[b:9f898c339c]Parabéns... !!!![/b:9f898c339c] :wink:
Está aí uma solução ´enxuta´ para o problema do nosso amigo.
Mais uma q eu não sabia e aprendi.
É Vivendo e aprendendo..
[b:9f898c339c]Parabéns... !!!![/b:9f898c339c] :wink:
GOSTEI 0
Bruno Belchior
01/09/2005
:wink: como você mesmo disse :!: [quote:d80c91b13a=´Rômulo Barros´]:arrow: [u:d80c91b13a]Relaxa !!![/u:d80c91b13a] :wink:[/quote:d80c91b13a]
GOSTEI 0
Programalista
01/09/2005
UAU!!! que enxugada.
Deste fórum eu não arredo mais o pé, incrível, aqui só tem ´feras´, desenvolvedores destemidos...e competentes. Não sem preocupem, ainda farei parte deste time para poder contribuir com algumas [b:91778914af]máximas [/b:91778914af]como estas.
Obrigadaço pessoal, vocês foram muito, mas muito solidários!
Abraços e Parabéns a você Bruno e a você Rômulo.
Deste fórum eu não arredo mais o pé, incrível, aqui só tem ´feras´, desenvolvedores destemidos...e competentes. Não sem preocupem, ainda farei parte deste time para poder contribuir com algumas [b:91778914af]máximas [/b:91778914af]como estas.
Obrigadaço pessoal, vocês foram muito, mas muito solidários!
Abraços e Parabéns a você Bruno e a você Rômulo.
GOSTEI 0