Ver Mensaje Individual
  #3  
Antiguo 24-05-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Lo que debes hacer es unificar la parte que filtra/ordena en un procedimiento aparte y luego llamarlo desde los diferentes lugares cuyo cambio deba lanzar ese filtro/orden.
Esto te permitirá separar la interfase con el usuario de la lógica de negocio.
Si en el futuro modificas el filtro/orden o agregas un nuevo filtro, solo debes modificarlo en un solo lugar (procedure Filtrar) y llamarlo desde el nuevo OnChange del componente.

Código Delphi [-]
procedure TFrmModArt.Filtrar;
begin
   TsPageControl1.ActivePage:=BUSCADOR;

   if sRadioButton1.checked then
   begin
     ABSQProductos.Close;
     ABSQProductos.SQL.Text := 'SELECT * FROM tbarticulos WHERE Codigo='+quotedStr(sMaskEdit1.text);
     sStatusBar2.Panels[0].Text := 'BUSQUEDA POR CÓDIGO';
     ABSQProductos.Open;
     sStatusBar2.Panels[2].Text := 'CANTIDAD DE PRODUCTOS: '+ IntTostr(ABSQProductos.RecordCount);
   end
   else
   begin
     ABSQProductos.Close;
     ABSQProductos.SQL.Text := 'SELECT * FROM tbarticulos=';
     sStatusBar2.Panels[0].Text := 'TODOS LOS PRODUCTOS';
     ABSQProductos.Open;
     sStatusBar2.Panels[2].Text := 'CANTIDAD DE PRODUCTOS: '+ IntTostr(ABSQProductos.RecordCount);
   end;
end;

procedure TFrmModArt.BuscarCodigoExecute(Sender: TObject);
begin
   Filtrar;
end;

procedure TFrmModArt.sMaskEdit1Change(Sender: TObject);
begin
   Filtrar;
end

Otra cosa:
¿Estás programando con acentos?
Código Delphi [-]
procedure TFrmModArt.BuscarCódigoExecute(Sender: TObject);
Responder Con Cita