ListBox
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
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
Curtidas 0
Respostas
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]);
if CheckListBox1.State[i] = cbChecked then ShowMessage('Faça algo com ' + checklistbox1.Items[i]);
GOSTEI 0
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
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]);
if CheckListBox1.State[i] = cbChecked then
ShowMessage('Faça algo com ' + checklistbox1.Items[i]);
GOSTEI 0
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
09/09/2010
ERILEY, so uma correção se me permite e se vi bem (rsrsrs):
a linha:
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) ';
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
09/09/2010
Sim, você tem razão.
GOSTEI 0