Delphi - Seleccion de Registros en Bateria

 
Vista:

Seleccion de Registros en Bateria

Publicado por Octavio Morales (27 intervenciones) el 07/02/2003 20:43:10
tengo un problema para almacenar mis registros en unas variables que ya defini. en mi tabla poseo dos tipos de datos. un numero de expediente y una fecha. siendo esta ultima la que almacenare e mis 5 variables. mi codigo es el siguiente...

Var
EXPED:String;
FEC1:String;
FEC2:String;
FEC3:String;
FEC4:String;
FEC5:String;

Begin
repeat
encontro:= DMCP.TT_Base.Findkey([exped]);
if encontro=true
fec5:=fec4;
fec4:=fec3;
fec3:=fec2;
fec2:=fec1;
fec1:=DMCP.TT_Base.fieldValues['FDecla'];
DMCP.TT_Base.Next;
Until Encontro=False;

Aqui el DMCP es el Datamodule y el TT_Base es mi tabla, F_decla es mi campo... me guarda las variables solamente cuando esta la funcion despues del repeat "comentada"

Mi problema es que no comprueba el campo exped y nunca se cumple la función until como le hago?

gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Seleccion de Registros en Bateria

Publicado por Ernesto D'Spirito (706 intervenciones) el 11/02/2003 01:28:17
El método FindKey sólo encuentra la primera ocurrencia de la clave, y como la búsqueda la realizas dentro del ciclo Repeat..Until, siempre encontrará el mismo registro y el ciclo no tendrá fin.

La búsqueda del primero registro debe estar fuera del ciclo repetitivo y la condición de salida del ciclo debe ser que se llegue al final del archivo o que cambie el valor del campo clave (asumo que se llama 'Exped'):

if DMCP.TT_Base.Findkey([exped]) then
repeat
fec5:=fec4;
fec4:=fec3;
fec3:=fec2;
fec2:=fec1;
fec1:=DMCP.TT_Base.fieldValues['FDecla'];
DMCP.TT_Base.Next;
Until (DMCP.TT_Base.Eof) or (DMCP.TT_Base.FieldByName('Exped').AsString <> exped);

Espero que te sirva.

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar