Hola amigos espero tenga un buen dia.
espero me puedan ayudar en lo siguiente.
tengo un problema con un filtro.
esta es una query donde busco unos folios segun los que encuentre va asignar la linea de codigo a la variable 'Busca' los folios que encuentra son 2 pero pueden ser mas por ejemplo encuentra 2 el IR y OV
esta me va bien
Código Delphi
[-]
with Q_fol do
begin
Active:=False;
sql.Clear;
sql.Add('SELECT DISTINCT FOLUSER FROM AGENFOL WHERE (CLV_AGN =:CLVE)');
ParamByName('CLVE').AsInteger:=FrmOffices.qry1.fieldbyname('CLV_OFC').AsInteger;
Active:=True;
end;
Q_fol.First; Q_fol.Next; while not Q_fol.Eof do
begin
busca:=busca+' OR (CVE_DOC LIKE :DOC ) AND (TIP_DOC = '+
QUOTEDSTR('F')+') AND (STATUS <> '+QUOTEDSTR('C')+
') AND (FECHA_DOC >= :F1) AND (FECHA_DOC <= :F2)';
Q_fol.Next;
end;
hasta aqui todo bien ,pero el problema es en esta.La query donde hago el filtro y donde paso los parametros
Código Delphi
[-]
WITH qry1 DO
BEGIN
Active:=False;
SQL.Clear;
SQL.Add('SELECT * FROM FACT01 WHERE (CVE_DOC LIKE :DOC ) AND (TIP_DOC ='+
QUOTEDSTR('F')+') AND (STATUS <> '+QUOTEDSTR('C')+
') AND (FECHA_DOC >= :F1) AND (FECHA_DOC <= :F2) '+BUSCA+' ');
Q_fol.First;
C:=0;
Params[C].Text:=Trim('%'+Q_fol.FIELDBYNAME('FOLUSER').Text+'%');
C:=C+1 ;
Params[C].AsDate:=DateTimePicker1.DATE;
C:=C+1 ;
Params[C].AsDate:=DateTimePicker2.DATE;
Q_fol.Next;
while not Q_fol.Eof do
begin
C:=C+1 ;
Params[C].Text:=Trim('%'+Q_fol.FIELDBYNAME('FOLUSER').Text+'%');
C:=C+1 ;
Params[C].AsDate:=DateTimePicker1.DATE;
C:=C+1 ;
Params[C].AsDate:=DateTimePicker2.DATE;
C:=C+1;
Q_fol.Next;
end;
Active:=True;
end;
por algun motivo no se que estoy haciendo mal

solo me muestra las documentos que empiesan con folio OV.
La misma consulta la he provado en el Sql express 2005 que es donde tengo la base de datos y me muestra bien los resultados solo es cuando utilizo el delphi en el dbgrid que no me esta mostrando bien la informacion.
por siento trabajo en Sql express 2005 y delphi 7
les agradeceria mucho su ayuda
saludos