Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Filtro no reconoce N° 9!!! (https://www.clubdelphi.com/foros/showthread.php?t=69020)

Lenny 21-07-2010 04:58:44

Filtro no reconoce N° 9!!!
 
Estimados, esto si que es extraño y por mas vueltas que le doy no logro entender, les explico:

Tengo una base de datos (Delphi 2010, MySQL, Zeos 7.0.0) en la cual guardo un registro denominado RUT (Rol Unico Tributario, Chile), para poder filtrar tengo un ComboBox en le cual uno elije el criterio por el cual filtrar:

Código Delphi [-]
procedure TCLIENTES.Edit1Change(Sender: TObject);
Var
Valor,Valor1 : String;
begin
     if Edit1.text = '' then
     begin
     TABLAS.TCLIENTES.Filtered := false;
     exit;
     end;
         TABLAS.TCLIENTES.Locate(ComboBox1.Text, Edit1.Text,[loPartialKey,loCaseInsensitive]);
         valor := Edit1.Text;
         Valor1 := Valor;
         inc(valor1[length(Valor1)]);
         TABLAS.TCLIENTES.Filter := ''+ComboBox1.Text+' >= '+QuotedStr(Valor)+ ' and '+ComboBox1.Text+' < ' +QuotedStr(valor1);
         TABLAS.TCLIENTES.Filtered := true;
          end;

end.

Funciona de Maravillas!!! pero... NO FILTRA NINGUN REGISTRO QUE COMIENZE CON 9!!! si me pudieran ayudar estaria bastante agradesido, ya que es lo que me falta para terminar este modulo, de antemano gracias.

cloayza 21-07-2010 16:52:34

Amigo revisando tu codigo el problema esta en esta linea

Código Delphi [-]
inc(valor1[length(Valor1)]);

Aqui lo que estas haciendo es incrementando el valor ascii del ultimo caracter de Valor1...

Ejm:

Valor1='1' -> Al Aplicar inc(valor1[length(Valor1)]) queda Valor1='2';

El problema es que al ser Valor1='9', aplicar inc(valor1[length(Valor1)]) el siguiente valor de Valor1=':';

Por lo tanto tu filtro cuando el rut comienza en 9 queda asi:

Rut >= '9' and Rut < ':'

Al comenzar con los otros digitos (1..8) no sucede esto.

Saludos cordiales
Desde Concepcion-Chile.

Lenny 22-07-2010 04:18:47

Huuuuuuuuu... Te Pasaste!!! le echo un ojo y lo pongo en practica, muchas gracias por responder!!!


La franja horaria es GMT +2. Ahora son las 13:31:16.

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