ListBox

Delphi

09/09/2010

Boa tarde a todos.  Tenho um formulário com um ListBox, quando marco mais de um ítem gostaria de:
  Tenho uma sentença SQL que roda em tempo de execução, então tenho que verificar os ítens que foram marcados no listbox e adicioná-las nesta sentença SQL.
obrigadoMárcio

Marcio Oliveira

Marcio Oliveira

Curtidas 0

Respostas

Eriley Barbosa

Eriley Barbosa

09/09/2010

for I := 0 to CheckListBox1.Count - 1 do
    if CheckListBox1.State[i] = cbChecked then       ShowMessage('Faça algo com ' + checklistbox1.Items[i]);
GOSTEI 0
Marcio Oliveira

Marcio Oliveira

09/09/2010

Obrigado pela ajuda, deixa eu tentar explicar melhor, ex:
No ListBox trago todos os clientes.Quando eu marcar os clientes 1 e 3, tem uma query que roda em tempo de execução, ex:
  query1.sql.text := 'SELECT * FROM CLIENTE';
  Então tenho que pegar apenas os clientes 1 e 3.
para isso faço a seguinte verificação.
for I := 0 to CheckListBox1.Count - 1 doif CheckListBox1.State[i] = cbChecked thenbegin  query1.sql.text := query1.sql.text + 'AND COD_CLIENTE = AO QUE ESTÁ NO checklistbox1.Items[i]);end;
ObrigadoMárcio


for I := 0 to CheckListBox1.Count - 1 do
    if CheckListBox1.State[i] = cbChecked then
      ShowMessage('Faça algo com ' + checklistbox1.Items[i]);
 
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

09/09/2010

var   Codigos: string; begin Codigos := ''; for I := 0 to CheckListBox1.Count - 1 do if CheckListBox1.State[i] = cbChecked then begin   if codigos = '' then     codigos := checklistbox1.Items[i];   else     codigos := codigos + ',' + checklistbox1.Items[i];    query1.sql.text := query1.sql.text + 'AND COD_CLIENTE in (' + codigos + ')'; end;
GOSTEI 0
Eduardo Marcolongo

Eduardo Marcolongo

09/09/2010

ERILEY, so uma correção se me permite e se vi bem (rsrsrs):
a linha: 
query1.sql.text := query1.sql.text + 'AND COD_CLIENTE in (' + codigos + ')';

deveria estar fora do for, senão sempre vai colocar a mesma instrução no sql.
Por exemplo:1.Passagem) sql.text = 'and cod_client in (codigo)';2.Passagem) sql.text = 'and cod_client in (codigo) and cod_client in (codigo) ';
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

09/09/2010

Sim, você tem razão.
GOSTEI 0
POSTAR