Ver Mensaje Individual
  #3  
Antiguo 21-04-2018
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Reputación: 12
giulichajari Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Código SQL [-]
select *
from tabla
where idcategoria= :aaa
and idmarca= :bbb
and nombreproducto= :ccc

¡Ah!, un clientdataset, no me hagas caso.
Claro la idea es no realizar una consulta sql nuevamente, el dataset trabaja en memoria.

Se puede hacer aunque no se si sea la forma mas adecuada(no es objetos obviamente)


Código Delphi [-]
procedure actualizaGrilla;
begin
if form3.ENOMBRE.Text='' then
begin
 if Form3.DBLCBCATEGORIA.KeyValue<>null then
    begin
      if Form3.DBLCBMARCA.KeyValue<>null then
        begin
          with DataModule1.cdsproductos do
            begin
                  begin
                  Filtered:=False;
                  Filter:='idcategoria=' + IntToStr( form3.DBLCBCATEGORIA.KeyValue) + 'and idmarca='+ Inttostr(Form3.DBLCBMARCA.KeyValue);
                  Filtered:=True;

                  end;

            end;
    end
    else
    begin
    with DataModule1.cdsproductos do
    begin
     Filtered:=False;
     Filter:='idcategoria=' + IntToStr(form3.DBLCBCATEGORIA.KeyValue);
     Filtered:=True;
    end;
    end;
    end
    else
    if Form3.DBLCBMARCA.KeyValue<>null then
        begin
        if Form3.DBLCBCATEGORIA.KeyValue<>null then
            begin
              with DataModule1.cdsproductos do
                begin
                      begin
                      Filtered:=False;
                      Filter:='idcategoria=' +inttostr( form3.DBLCBCATEGORIA.KeyValue) + 'and idmarca='+ inttostr(Form3.DBLCBMARCA.KeyValue);
                      Filtered:=True;

                      end;

                end;
            end
            else
            begin
              with DataModule1.cdsproductos do
                begin
                      begin
                      Filtered:=False;
                      Filter:='idmarca='+ InttoStr(Form3.DBLCBMARCA.KeyValue) + 'and nombre like ''%' + Form3.ENOMBRE.Text+'%''' ;
                      Filtered:=True;

                      end;

                end;
            end;
        end;
end
else
begin
   if Form3.DBLCBCATEGORIA.KeyValue<>null then
    begin
      if Form3.DBLCBMARCA.KeyValue<>null then
        begin
          with DataModule1.cdsproductos do
            begin
                  begin
                  Filtered:=False;
                  Filter:='idcategoria=' + IntToStr( form3.DBLCBCATEGORIA.KeyValue) + 'and idmarca='+ Inttostr(Form3.DBLCBMARCA.KeyValue) + 'and nombre like ''%' + Form3.ENOMBRE.Text+'%''' ;
                  Filtered:=True;

                  end;

            end;
    end
    else
    begin
    with DataModule1.cdsproductos do
    begin
     Filtered:=False;
     Filter:='idcategoria=' + IntToStr(form3.DBLCBCATEGORIA.KeyValue) + 'and nombre like ''%' + Form3.ENOMBRE.Text+'%''' ;
     Filtered:=True;
    end;
    end;
    end
    else
    if Form3.DBLCBMARCA.KeyValue<>null then
        begin
        if Form3.DBLCBCATEGORIA.KeyValue<>null then
            begin
              with DataModule1.cdsproductos do
                begin
                      begin
                      Filtered:=False;
                      Filter:='idcategoria=' +inttostr( form3.DBLCBCATEGORIA.KeyValue) + 'and idmarca='+ inttostr(Form3.DBLCBMARCA.KeyValue)  + 'and nombre like ''%' + Form3.ENOMBRE.Text+'%''' ;
                      Filtered:=True;

                      end;

                end;
            end
            else
            begin
              with DataModule1.cdsproductos do
                begin
                      begin
                      Filtered:=False;
                      Filter:='idmarca='+ InttoStr(Form3.DBLCBMARCA.KeyValue) + 'and nombre like ''%' + Form3.ENOMBRE.Text+'%''' ;
                      Filtered:=True;

                      end;

                end;
            end;
        end;
end;


end;

comparto
Responder Con Cita