mcsmarmcs Postado Abril 14, 2007 Denunciar Share Postado Abril 14, 2007 Estou com dúvidas pra realizar a consulta abaixo, quando seleciono um dos checkboxes, a consulta funciona normalmente. Mas ao selecionar os 2 checkboxes, a consulta retorna apenas o resultado da checkbox de baixo, o que devo fazer?if ordenar.Checked then begin dm.qryclientes.Close; dm.qryclientes.SQL.Clear; dm.qryclientes.SQL.Add('SELECT * FROM cliente'); case coluna.ItemIndex of 0: dm.qryclientes.SQL.Add('ORDER BY codigo'); 1: dm.qryclientes.SQL.Add('ORDER BY nome'); 2: dm.qryclientes.SQL.Add('ORDER BY tipo'); end; dm.qryclientes.Open; RVclientes.ProjectFile := 'Relatorio_Clientes.rav'; RVclientes.Execute; end else if (listar.Checked) then begin dm.qryclientes.Close; dm.qryclientes.SQL.Clear; dm.qryclientes.SQL.Add('SELECT * FROM cliente'); case (coluna3.ItemIndex) of 0: dm.qryclientes.SQL.Add('WHERE tipo="Pessoa Física"'); 1: dm.qryclientes.SQL.Add('WHERE tipo="Pessoa Jurídica"'); end; dm.qryclientes.Open; RVclientes3.ProjectFile := 'Relatorio_Clientes_3.rav'; RVclientes3.Execute; end Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Abril 14, 2007 Denunciar Share Postado Abril 14, 2007 (editado) OpaO fato de os 2 estarem selecionados e não funcionar é pelo seguinte...RVclientes.Execute;end <--else <--if (listar.Checked) thenbeginAcontece que se um estava checado ele não passava pro outro, ao invés de verificarse os 2 estavam checados, o correto seria fechar o end e não usar o else para poderverificar se o outro checkbox também estava checado... não sei se fui bem claro rsrTente assim:dm.qryclientes.Close; dm.qryclientes.SQL.Clear; dm.qryclientes.SQL.Add('SELECT * FROM cliente'); if ordenar.Checked then begin case coluna.ItemIndex of 0: dm.qryclientes.SQL.Add('ORDER BY codigo'); 1: dm.qryclientes.SQL.Add('ORDER BY nome'); 2: dm.qryclientes.SQL.Add('ORDER BY tipo'); end; dm.qryclientes.Open; RVclientes.ProjectFile := 'Relatorio_Clientes.rav'; RVclientes.Execute; end; if (listar.Checked) then begin case (coluna3.ItemIndex) of 0: dm.qryclientes.SQL.Add('WHERE tipo="Pessoa Física"'); 1: dm.qryclientes.SQL.Add('WHERE tipo="Pessoa Jurídica"'); end; dm.qryclientes.Open; RVclientes3.ProjectFile := 'Relatorio_Clientes_3.rav'; RVclientes3.Execute; end;Só que quando os 2 Checkboxes estiverem checados vai abrir 2 relatórios já quevocê definiu 2 ProjectFile diferentes e um relatorio Rave diferente também paracada checkbox, ou seja, não resolveu seu problema, mas como eu nunca usei oRave, suponho que esse RV e extensão .rav seja do Rave Reports, então não seinem como funciona, por exemplo, porque você usa ProjectFile do Rave um diferentepara cada checkbox, seria o Layout do relatório?abraço Editado Abril 14, 2007 por Churc Não vi que eram 2 relatórios diferentes rsr Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mcsmarmcs
Estou com dúvidas pra realizar a consulta abaixo, quando seleciono um dos checkboxes, a consulta funciona normalmente. Mas ao selecionar os 2 checkboxes, a consulta retorna apenas o resultado da checkbox de baixo, o que devo fazer?
if ordenar.Checked then
begin
dm.qryclientes.Close;
dm.qryclientes.SQL.Clear;
dm.qryclientes.SQL.Add('SELECT * FROM cliente');
case coluna.ItemIndex of
0: dm.qryclientes.SQL.Add('ORDER BY codigo');
1: dm.qryclientes.SQL.Add('ORDER BY nome');
2: dm.qryclientes.SQL.Add('ORDER BY tipo');
end;
dm.qryclientes.Open;
RVclientes.ProjectFile := 'Relatorio_Clientes.rav';
RVclientes.Execute;
end
else
if (listar.Checked) then
begin
dm.qryclientes.Close;
dm.qryclientes.SQL.Clear;
dm.qryclientes.SQL.Add('SELECT * FROM cliente');
case (coluna3.ItemIndex) of
0: dm.qryclientes.SQL.Add('WHERE tipo="Pessoa Física"');
1: dm.qryclientes.SQL.Add('WHERE tipo="Pessoa Jurídica"');
end;
dm.qryclientes.Open;
RVclientes3.ProjectFile := 'Relatorio_Clientes_3.rav';
RVclientes3.Execute;
end
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.