Fórum Fitrar informações com 3 combobox #489503
19/08/2014
0
Preciso fazer um filtro com 3 combobox no Delphi 7:
1º combobox1 (situação): item string = ATIVO - CANCELADO - INATIVO - TODOS
2º combobox2 (usuário): item string = USUARIO - GERENTE - ADMINISTRADOR - TODOS
3º combobox3 (uso): item string = CALIBRADO - ORIENTATIVO - VERIFICADO - TODOS
4º botão Gerar que abra em relatorio as opções selecionadas.
é meio complexo para quem não sabe programar ainda mas sei que tem um montão de gente ai que pode me dar uma ajudinha.
Independente da opção que for selecionado fazer um filtro para retornar as informações com que foi selecionado coma condição IF e ELSE.
Conto com a ajuda de vocês com um exemplo, Obrigado!
Motoqueiro
Curtir tópico
+ 0Post mais votado
20/08/2014
faça como o Itamar disse e faça o seguinte select através do delphi:
variável:
ComandoSql : String;
ComandoSql := 'select campos from tabela where ((';
if not situacao = 'TODOS' then
ComandoSql := ComandoSql + 'camposituacao = ' + QuotedStr(situacao) + ') ';
if not usuario = 'TODOS' then
ComandoSql := ComandoSql + 'AND (campousuario = ' + QuotedStr(usuario) + ') ';
if not tipouso = 'TODOS' then
ComandoSql := ComandoSql + 'AND (campousuario = ' + QuotedStr(tipouso) + ')';
ComandoSql := ComandoSql + ')';
if (situacao = 'TODOS') and (usuario = 'TODOS') and (tipouso = 'TODOS') then
ComandoSql := 'Select campos from tabela';Marcos Saffran
Gostei + 1
Mais Posts
20/08/2014
Joel Rodrigues
Gostei + 0
20/08/2014
Motoqueiro
Sim são esse valores como citado acima com letras maiúsculas.
Gostei + 0
20/08/2014
Itamar Souza
Uma forma de você fazer isso seria assim:
Você precisa de três variáveis públicas:
public
{ Public declarations }
situacao :string;
usuario :string;
tipouso :string;
Se você vai trazer os dados do banco você vai suar o DBLookupComboBox para mostra os dados, no evento OnCloseUp você vai preencher a informação selecionada.
procedure TfrmPrincipal.DBLookupComboBox1CloseUp(Sender: TObject); begin //exemplo situacao := DBLookupComboBox1.Text; end;
De acordo com o conteúdo das variáveis você vai fazer a sua consulta no banco
Veja se isso ajuda!
Gostei + 0
20/08/2014
Motoqueiro
Uma forma de você fazer isso seria assim:
Você precisa de três variáveis públicas:
public
{ Public declarations }
situacao :string;
usuario :string;
tipouso :string;
Se você vai trazer os dados do banco você vai suar o DBLookupComboBox para mostra os dados, no evento OnCloseUp você vai preencher a informação selecionada.
procedure TfrmPrincipal.DBLookupComboBox1CloseUp(Sender: TObject); begin //exemplo situacao := DBLookupComboBox1.Text; end;
De acordo com o conteúdo das variáveis você vai fazer a sua consulta no banco
Veja se isso ajuda!
OK até ai entendi, só que os três combobox vão ser selecionados ao mesmo tempo pelo usuário para gerar um relatorio seria um If dentro do outro ou tem outra forma de ser feito?
Gostei + 0
20/08/2014
Motoqueiro
faça como o Itamar disse e faça o seguinte select através do delphi:
variável:
ComandoSql : String;
ComandoSql := 'select campos from tabela where ((';
if not situacao = 'TODOS' then
ComandoSql := ComandoSql + 'camposituacao = ' + QuotedStr(situacao) + ') ';
if not usuario = 'TODOS' then
ComandoSql := ComandoSql + 'AND (campousuario = ' + QuotedStr(usuario) + ') ';
if not tipouso = 'TODOS' then
ComandoSql := ComandoSql + 'AND (campousuario = ' + QuotedStr(tipouso) + ')';
ComandoSql := ComandoSql + ')';
if (situacao = 'TODOS') and (usuario = 'TODOS') and (tipouso = 'TODOS') then
ComandoSql := 'Select campos from tabela';[PARABÉNS!!! resolvido]
Muito obrigado!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)