Ver Mensaje Individual
  #3  
Antiguo 01-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Thumbs up

Yo lo haría de otra forma, porque si tiene marcado el rb3 y no tiene nada escrito en el Edit1, el tema fallará. En estos casos hay que cuadrar todos las posibilidades.

Cuando estudies las funciones verás que es casi casi copy and paste, pero muy fácil de ampliar con más condiciones
Código Delphi [-]
procedure TDist06.SpeedButton2Click(Sender: TObject);
var filtro :string;
begin
filtro := emptystr;
filtro := checkrb1(filtro);
filtro := checkrb2(filtro);
filtro := checkrb3(filtro);
datam6.MATRICULA.Filtered := false;
datam6.MATRICULA.Filter := filtro;
datam6.MATRICULA.Filtered := true;
end;

function checkrb1(filtroAnterior:string):string;
begin
  result := filtroAnterior;
  if rb1.Checked then
  if (edit1.Text <>'')then
    result := 'CENT_CODIGO ='''+Edit1.Text+'''';
end;


function checkrb2(filtroAnterior:string):string;
begin 
  result := filtroAnterior;
  if rb2.Checked then
  if (edit2.Text <>'') then
  begin
   if result <> EmptyStr then
     result := result + ' and ';
   result := result + 'CESE_CODIGO ='''+edit2.Text+'''';
  end;
end;

function checkrb3(filtroAnterior:string):string;
begin
  result := filtroAnterior;
  if rb3.Checked then
  if (edit3.Text <>'') then
  begin
  if Result <> EmptyStr then
    result := result + ' and ';
  result := result + 'STATUS ='''+edit3.Text +'''';
  end;
end;

Queda un tema pendiente.... donde dice EditX.Text <> '' debería decir:

Trim(EditX.text) <> EmptyStr

que los usuarios son muy suyos y con introducir un espacio en blanco ya se fastidia la consulta.

Edito: Incluso podrías quitar los "rb" ya que no aportan nada nuevo, si el usuario escribe algo en una caja de texto, se añade la condición, si no escribe nada, se elimina del filtro.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 01-08-2006 a las 16:53:22.
Responder Con Cita