Fórum Filtro data no firebird #349639
26/11/2007
0
No Paradox filtra, com este mesmo codigo. Aguem pode corrigir?
fazendo um favor.
procedure TFormRelatorioOrdemServico.ButtonPesquisaClick(Sender: TObject);
var
DataInicio, DataFinal, CodigoOS, DescricaoOS, Empresa, Prioridade
, TipoManutencao, Status: String;
begin
DataModuleManut.IBQueryOrdemServico.Close;
DataModuleManut.IBQueryOrdemServico.Open;
DataModuleManut.IBQueryOrdemServico.Refresh;
DataInicio:= DateToStr(DateTimePickerDataInicio.Date);
DataFinal:= DateToStr(DateTimePickerDataFinal.Date);
CodigoOS:= AnsiUpperCase(EditCodigoOrdemServico.Text);
DescricaoOS:= AnsiUpperCase(EditDescricaoOrdemServico.text);
Empresa:= AnsiUpperCase(DBLookupComboBoxCodigoEmpresa.text);
Prioridade:= AnsiUpperCase(DBLookupComboBoxCodigoPrioridade.text);
TipoManutencao:= AnsiUpperCase(DBLookupComboBoxCodigoTipoManutencao.text);
Status:= AnsiUpperCase(DBLookupComboBoxCodigoStatus.text);
with DataModuleManut.IBQueryOrdemServico do
Begin
close;
Sql.Clear;
Sql.Add(´SELECT * FROM OrdemServico´);
Sql.Add(´WHERE UPPER(CodOrdemServico) LIKE ´+#39+´¬´+ CodigoOS + ´¬´+39);
Sql.Add(´AND UPPER(DescricaoOrdemServico) LIKE ´+39+´¬´+ DescricaoOS +´¬´+39);//+´Order By Data desc´);
Sql.Add(´AND UPPER(CodEmpresa) LIKE ´+39+´¬´+ Empresa +´¬´+39);
Sql.Add(´AND UPPER(CodPrioridade) LIKE ´+39+´¬´+ Prioridade +´¬´+39);
Sql.Add(´AND UPPER(CodTipoManutencao) LIKE ´+39+´¬´+ TipoManutencao +´¬´+39);
Sql.Add(´AND UPPER(CodStatus) LIKE ´+39+´¬´+ Status +´¬´+39);
Filtered := True;
Filter:=´DATA >=´+39+DataInicio+39+´ AND DATA <=´+39+DataFinal+39;
open;
If DataModuleManut.IBQueryOrdemServico.RecordCount <= 0 Then
begin
ShowMessage(´Nenhum registro foi localizado.´);
exit;
End
Else
DataModuleManut.IBQueryOrdemServico.Open;
end;
end;
Abraço
Joao
Joao1313
Curtir tópico
+ 0Posts
26/11/2007
Emerson Nascimento
procedure TFormRelatorioOrdemServico.ButtonPesquisaClick(Sender: TObject); var CodigoOS, DescricaoOS, Empresa, Prioridade, TipoManutencao, Status: String; begin CodigoOS := AnsiUpperCase(EditCodigoOrdemServico.Text); DescricaoOS := AnsiUpperCase(EditDescricaoOrdemServico.text); Empresa := AnsiUpperCase(DBLookupComboBoxCodigoEmpresa.text); Prioridade := AnsiUpperCase(DBLookupComboBoxCodigoPrioridade.text); TipoManutencao := AnsiUpperCase(DBLookupComboBoxCodigoTipoManutencao.text); Status := AnsiUpperCase(DBLookupComboBoxCodigoStatus.text); with DataModuleManut.IBQueryOrdemServico do begin close; Sql.Clear; Sql.Add(´SELECT * FROM OrdemServico´); Sql.Add(´WHERE UPPER(CodOrdemServico) LIKE :CodOrdemServico´); Sql.Add(´AND UPPER(DescricaoOrdemServico) LIKE :DescricaoOrdemServico´); Sql.Add(´AND UPPER(CodEmpresa) LIKE :CodEmpresa´); Sql.Add(´AND UPPER(CodPrioridade) LIKE :CodPrioridade´); Sql.Add(´AND UPPER(CodTipoManutencao) LIKE :CodTipoManutencao´); Sql.Add(´AND UPPER(CodStatus) LIKE :CodStatus´); Sql.Add(´AND DATA BETWEEN :DATAINICIAL AND :DATAFINAL´); ParamByName(´CodOrdemServico´).AsString := ´¬´+ CodigoOS + ´¬´; ParamByName(´DescricaoOrdemServico´).AsString := ´¬´+ DescricaoOS +´¬´; ParamByName(´CodEmpresa´).AsString := ´¬´+ Empresa +´¬´; ParamByName(´CodPrioridade´).AsString := ´¬´+ Prioridade +´¬´; ParamByName(´CodTipoManutencao´).AsString := ´¬´+ TipoManutencao +´¬´; ParamByName(´CodStatus´).AsString := ´¬´+ Status +´¬´; ParamByName(´DataInicial´).AsDate := DateTimePickerDataInicio.Date; ParamByName(´DataFinal´).AsDate := DateTimePickerDataFinal.Date; Open; if IsEmpty then ShowMessage(´Nenhum registro foi localizado.´); end; end;
Gostei + 0
26/11/2007
Joao1313
Abraços
Joao
Gostei + 0
29/11/2007
Joao1313
percebia. É que o like pega caracteres da frente ou de traz e/ou,
exemplo: seleciono 1 na pesquisa retorna 101, 10, 1,etc, ou seja
tudo que tem 1 na frente ou atraz. Do jeito que fiz que esta abaixo,
seleciona certo se peco 1 vem somente 1. mas nao seleciona todos
se nao digito uma selecao, e nem seleciona mais por data.
procedure TFormRelatorioOrdemServicoItem.ButtonPesquisaClick
(Sender: TObject);
var
CodigoOSItem, CodigoOS, SubConjunto, Defeito, Causa,
Providencia, TipoProblema, Mantenedor, Status: String;
begin
CodigoOSItem := AnsiUpperCase(EditCodigoOrdemServicoItem.Text);
CodigoOS := AnsiUpperCase(DBLookupComboBoxCodigoOrdemServico.text);
SubConjunto := AnsiUpperCase(DBLookupComboBoxCodigoSubConjunto.text);
Defeito := AnsiUpperCase(DBLookupComboBoxCodigoDefeito.text);
Causa := AnsiUpperCase(DBLookupComboBoxCodigoCausa.text);
Providencia := AnsiUpperCase(DBLookupComboBoxCodigoProvidencia.text);
TipoProblema := AnsiUpperCase(DBLookupComboBoxTipoProblema.text);
Mantenedor := AnsiUpperCase(DBLookupComboBoxCodigoMantenedor.text);
Status := AnsiUpperCase(DBLookupComboBoxCodigoStatus.text);
with DataModuleManut.IBQueryOrdemServicoItem do
begin
close;
Sql.Clear;
Sql.Add(´SELECT * FROM OrdemServicoItem´);
Sql.Add(´WHERE (CodItem) = :CodItem´);
Sql.Add(´or (CodOrdemServico) = :CodOrdemServico´);
Sql.Add(´or (CodSubConjunto) = :CodSubConjunto´);
Sql.Add(´or (CodDefeito) = :CodDefeito´);
Sql.Add(´or (CodCausa) = :CodCausa´);
Sql.Add(´or (CodProvidencia) = :CodProvidencia´);
Sql.Add(´or (CodTipoProblema) = :CodTipoProblema´);
Sql.Add(´or (CodMantenedor) = :CodMantenedor´);
Sql.Add(´or (CodStatus) = :CodStatus´);
Sql.Add(´and DATADAOSITEM BETWEEN :DATAINICIAL AND :DATAFINAL´);
ParamByName(´CodItem´).AsString := CodigoOSItem ;
ParamByName(´CodOrdemServico´).AsString := CodigoOS ;
ParamByName(´CodSubConjunto´).AsString := SubConjunto ;
ParamByName(´CodDefeito´).AsString := Defeito ;
ParamByName(´CodCausa´).AsString := Causa ;
ParamByName(´CodProvidencia´).AsString := Providencia ;
ParamByName(´CodTipoProblema´).AsString := TipoProblema ;
ParamByName(´CodMantenedor´).AsString := Mantenedor ;
ParamByName(´CodStatus´).AsString := Status ;
ParamByName(´DataInicial´).AsDate := DateTimePickerDataInicio.Date;
ParamByName(´DataFinal´).AsDate := DateTimePickerDataFinal.Date;
Open;
if IsEmpty then
ShowMessage(´Nenhum registro foi localizado.´);
end;
end;
Abraços
Joao
Gostei + 0
29/11/2007
Emerson Nascimento
procedure TFormRelatorioOrdemServicoItem.ButtonPesquisaClick (Sender: TObject); var CodigoOSItem, CodigoOS, SubConjunto, Defeito, Causa, Providencia, TipoProblema, Mantenedor, Status: String; begin CodigoOSItem := AnsiUpperCase(EditCodigoOrdemServicoItem.Text); CodigoOS := AnsiUpperCase(DBLookupComboBoxCodigoOrdemServico.text); SubConjunto := AnsiUpperCase(DBLookupComboBoxCodigoSubConjunto.text); Defeito := AnsiUpperCase(DBLookupComboBoxCodigoDefeito.text); Causa := AnsiUpperCase(DBLookupComboBoxCodigoCausa.text); Providencia := AnsiUpperCase(DBLookupComboBoxCodigoProvidencia.text); TipoProblema := AnsiUpperCase(DBLookupComboBoxTipoProblema.text); Mantenedor := AnsiUpperCase(DBLookupComboBoxCodigoMantenedor.text); Status := AnsiUpperCase(DBLookupComboBoxCodigoStatus.text); with DataModuleManut.IBQueryOrdemServicoItem do begin close; Sql.Clear; Sql.Add(´SELECT * FROM OrdemServicoItem´); Sql.Add(´WHERE ( (CodItem) = :CodItem´); // *** abri o parêntesis *** Sql.Add(´or (CodOrdemServico) = :CodOrdemServico´); Sql.Add(´or (CodSubConjunto) = :CodSubConjunto´); Sql.Add(´or (CodDefeito) = :CodDefeito´); Sql.Add(´or (CodCausa) = :CodCausa´); Sql.Add(´or (CodProvidencia) = :CodProvidencia´); Sql.Add(´or (CodTipoProblema) = :CodTipoProblema´); Sql.Add(´or (CodMantenedor) = :CodMantenedor´); Sql.Add(´or (CodStatus) = :CodStatus )´); // *** fechei o parêntesis *** Sql.Add(´and DATADAOSITEM BETWEEN :DATAINICIAL AND :DATAFINAL´); ParamByName(´CodItem´).AsString := CodigoOSItem ; ParamByName(´CodOrdemServico´).AsString := CodigoOS ; ParamByName(´CodSubConjunto´).AsString := SubConjunto ; ParamByName(´CodDefeito´).AsString := Defeito ; ParamByName(´CodCausa´).AsString := Causa ; ParamByName(´CodProvidencia´).AsString := Providencia ; ParamByName(´CodTipoProblema´).AsString := TipoProblema ; ParamByName(´CodMantenedor´).AsString := Mantenedor ; ParamByName(´CodStatus´).AsString := Status ; ParamByName(´DataInicial´).AsDate := DateTimePickerDataInicio.Date; ParamByName(´DataFinal´).AsDate := DateTimePickerDataFinal.Date; Open; if IsEmpty then ShowMessage(´Nenhum registro foi localizado.´); end; end;
Gostei + 0
29/11/2007
Joao1313
selesao nem uma deveria vir todos os registros, era
assim que funcionava, agora da aquela mensagem...
Abraços
Joao
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)