Ver Mensaje Individual
  #1  
Antiguo 25-05-2006
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Reputación: 23
kia Va por buen camino
Filtro falla empleo IBX

Hola.
Estoy tratando de adaptar un aplicacion que empleaba bde, ahora empleo los IBX (MDO) y con paciencia va funcionando. Tengo una rejilla con un boton por el cual me filtraba los datos segun la columna donde se encuentre el cursor. Ahora no hay tabla sino un MDODataset,
cuando lo ejecuto observo que el filtrado lo ejecuta pero no me actualiza los datos en la rejilla. Sabeis donde he fallado..Soy novata y empleo D6 IB6.Gacias.

Código Delphi [-]
  procedure TV_equipo.Filtrar(Sender: TObject);
const
 TiposConComillas:set of TfieldType
 =[ftstring, ftdate, fttime,ftdatetime];
 var
 Campo, Operador, Valor:string;
 I:integer;
begin
  if sender= migual then
     operador:='='
   else if sender= mMayorigual then
     operador:='>='
   else if sender= mMenorigual then
     operador:='<='
   else
     operador:='<>';

  //extraemos nombre del campo
  Campo:=Rxdbgrid1.SelectedField.FieldName;
  //extraer y dar formato al valor
  if rxdbgrid1.SelectedField.DataType in TiposconComillas then
    begin
     if Rxdbgrid1.SelectedField.IsNull then //fecha en blanco
        valor :='null'
       else
        valor:=quotedstr(Rxdbgrid1.SelectedField.AsString); //string
     end
  else begin
  valor:=Rxdbgrid1.SelectedField.AsString ;
  for I := 1 to length(valor) do
     if valor[i]=DecimalSeparator then Valor[i]:='.';
  end ;
  //combinar nueva condicion con las anteriores
  If DMDatos.Dset_equipo.Filter='' then
   DMDatos.Dset_equipo.filter:=format('[%s] %s %s',[Campo,Operador, Valor])
  else
   DMDatos.Dset_equipo.filter:=format('%s AND [%s] %s %s',
   [DMDatos.Dset_equipo.filter,Campo,Operador, Valor]);
   //activar directamente el filtro
   mactivarfiltro.Checked:=true;
   DMDatos.Dset_equipo.Filtered:=true;
   DMDatos.Dset_equipo.RefreshSQL;
   label1.Caption:=inttostr(DMDatos.Dset_equipo.RecordCount);
   end;

Esta utilidad fue extraida de la "Cara oculta de D4"
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita