Fitrar informações com 3 combobox
Boa noite!
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!
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
Curtidas 0
Melhor post
Marcos Saffran
20/08/2014
Olá Motoqueiro,
faça como o Itamar disse e faça o seguinte select através do delphi:
variável:
ComandoSql : String;
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';GOSTEI 1
Mais Respostas
Joel Rodrigues
19/08/2014
No banco de dados essas colunas estão sendo salvas com esses valores exatamente? Ou estão abreviados?
GOSTEI 0
Motoqueiro
19/08/2014
No banco de dados essas colunas estão sendo salvas com esses valores exatamente? Ou estão abreviados?
Sim são esse valores como citado acima com letras maiúsculas.
GOSTEI 0
Itamar Souza
19/08/2014
Boa tarde
Uma forma de você fazer isso seria assim:
Você precisa de três variáveis públicas:
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.
De acordo com o conteúdo das variáveis você vai fazer a sua consulta no banco
Veja se isso ajuda!
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
Motoqueiro
19/08/2014
Boa tarde
Uma forma de você fazer isso seria assim:
Você precisa de três variáveis públicas:
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.
De acordo com o conteúdo das variáveis você vai fazer a sua consulta no banco
Veja se isso ajuda!
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
Motoqueiro
19/08/2014
Olá Motoqueiro,
faça como o Itamar disse e faça o seguinte select através do delphi:
variável:
ComandoSql : String;
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