Locate es una función pública de la clase TDataSet para encontrar un registro y posicionar sobre él el puntero, muy práctico para utilizar juntamente con un TDBGrid. Si se encuentra lo buscado retorna true y posiciona el puntero sobre el registro, caso contrario, retorna false y el puntero no se mueve.
Ejemplo:
DMInsu.ZQ.Locate ( 'insumo' , edBuscar.Text, [loCaseInsensitive, loPartialKey] );
Busca en el campo llamado insumo el texto ingresado en el TEdit buscar, ignorando mayúsculas y minúscalas y aceptando encontrar parcialmente, es decir, si el usuario ingresó "az" y existe un registro con el campo insumo con el valor "azúcar", devolverá true.
Para el caso de buscar número enteros, como por ejemplo un ID, funciona correctamente pero no se deben especificar las opciones de búsqueda.
DMInsu.ZQ.Locate ( 'id' , edBuscar.Text, []);
También se pueden realizar búsquedas complejas con varios campos y pasar un vector (array).
loCaseInsensitive y loPartialKey son las únicas opciones.
Más información:
http://wiki.freepascal.org/locate
http://lazarus-ccr.sourceforge.net/docs/fcl/db/tdataset.locate.html
http://lazarus-ccr.sourceforge.net/docs/fcl/db/tlocateoption.html
jueves, 22 de junio de 2017
domingo, 11 de junio de 2017
Calcular diferencia entre fechas
La función DaysBetween retorna el número de días entre dos fechas.
function DaysBetween (const ANow, aThen: TDateTime):Integer;
El primer parámetro es la fecha que se restará de la fecha del segundo parámetro. La función devuelve un entero que es la diferencia en días entre aThen y aNow, es decir, aThen - aNow.
Ejemplo:
var
fechaInicio, fechaFin : TDate;
intDias : Integer;
begin
fechaInicio := StrToDate ('11/06/2017');
fechaFin := StrToDate ('12/06/2017');
intDias := DaysBetween (fechaInicio, fechaFin);
ShowMessage (IntToStr (intDias)); // devuelve 1
end;
function DaysBetween (const ANow, aThen: TDateTime):Integer;
El primer parámetro es la fecha que se restará de la fecha del segundo parámetro. La función devuelve un entero que es la diferencia en días entre aThen y aNow, es decir, aThen - aNow.
Ejemplo:
var
fechaInicio, fechaFin : TDate;
intDias : Integer;
begin
fechaInicio := StrToDate ('11/06/2017');
fechaFin := StrToDate ('12/06/2017');
intDias := DaysBetween (fechaInicio, fechaFin);
ShowMessage (IntToStr (intDias)); // devuelve 1
end;
Suscribirse a:
Entradas (Atom)