Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mostrar propiedad en un rango de precios (https://www.clubdelphi.com/foros/showthread.php?t=85463)

Detenido 20-03-2014 16:29:39

Mostrar propiedad en un rango de precios
 
Estimados, junto con saludarles me veo obligado a hacerles la siguiente consulta.

Resulta que estoy trabajando en una aplicación sencillisima que permite organizar las propiedades que tengo en venta/arriendo, utilizo delphi 2010 con componentes ado y base de datos en access, tengo todo listo pero lo que me falta es mostrar las propiedades que correspondan a un rango de precios especificado en un componente combobox, la idea es que al evento Onchange de dicho combobox muestre los datos correspondientes a ese rango en un dbgrid. El campo a consutar es 'Precio' (campo de tipo Moneda) que es parte de la tabla 'Ventas' en una base de datos hecha en access.

En resumen cuando el componente combobox tenga un texto de esta forma: $20.000.000 - 40.000.000 se pueda mostrar en el dbgrid las propiedades correspondientes a ese rango de precios. Espero haberme explicado bien. Saludos.

cloayza 20-03-2014 18:13:50

Bueno podria ser:

Opción 1:
Código Delphi [-]
procedure TForm1.cboxPreciosChange(Sender: TObject);
var
    PrecioMin, PrecioMax:integer; //Aquí debes definir el tipo adecuado a tu caso
    Valores:String;
    Value:String;
begin
       Valores:=cboxPrecios.Items[cboxPrecios.ItemIndex];
       //Valores='$20.000.000 - 40.000.000'

       //Ahora lo que debes hacer es separar esto en 20.000.000 y 40.000.000

       //Forma facil
       Value:=Copy(Valores,2,Pos('-',Valores)-1); //=>20.000.000;
       PrecioMin:=StrToInt(Value);

       Value:=Copy(Valores,Pos('-',Valores)+1, Length(Valores)); //=>40.000.000;
       PrecioMax:=StrToInt(Value);

       //Ahora en tu consulta debes incorporar el filtro adecuado
       Query1.....
       Query1.Add( Format('Where (Precio>=%d And Precio<=%d)',[PrecioMin, PrecioMax]));
       Query1.Open;
end;

Opción 2:
Código Delphi [-]
procedure TForm1.cboxPreciosChange(Sender: TObject);
var
    Valores:String;
    PrecioMin, PrecioMax:String;
begin
       //Valores='$20.000.000 - 40.000.000'
       Valores:=cboxPrecios.Items[cboxPrecios.ItemIndex];

       //Forma facil
       PrecioMin:=Copy(Valores,2,Pos('-',Valores)-1); //=>20.000.000;
       PrecioMax:=Copy(Valores,Pos('-',Valores)+1, Length(Valores)); //=>40.000.000;

       //Ahora en tu consulta debes incorporar el filtro adecuado
       Query1.....
       Query1.Add( Format('Where (Precio>=%s And Precio<=%s)',[PrecioMin, PrecioMax]));
       Query1.Open;
end;

Por supuesto que existen otras formas de realizar esto...Por algo se comienza...:D
Saludos cordiales

Detenido 20-03-2014 19:16:08

Ok, muchas gracias por la respuesta lo voy a probar. :)


La franja horaria es GMT +2. Ahora son las 16:41:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi