BUsque con Locate
Que parámetro tengo que poner en 'Locate' para que me realice una búsqueda exacta?
Es decir: ModuloDatos.TblPagos.Locate('NumFact',Busca.Text,????); Ya que en mi aplicacion busco una factura para cargar el pago de la misma, y quiero que si el número tipeado no corresponde a una factura, o la misma ya está paga, entones muestre el mensaje correspondiente. Gracias, saludos.- Silvio.- |
tienes que poner:
[loPartialKey] |
perdona, lo que te he dicho es para querys, pero igualmente pruebalo
|
Hola!
Da igual que sea un query o una tabla, el locate funciona igual ;). Saludos! |
- si usas el loPartialkey te buscara en parte de , es decir que si buscas 10
te puede devolver 10000 - si usas el locaseinsensitive le da igual mayus, mins, portanto solo pasa los corchetes suponiendo que te entiendo bien lo que necesitas es algo asi Código:
if ModuloDatos.TblPagos.Locate('NumFact',Busca.Text,[]) then espero que te sirva |
Busqueda con Locate
Gami:
preguntaba porque probé con los corchetes solos pero no funciona, es decir el nº de factura se compone de la siguiente forma 0000-00000000, y yo introduzco en el DBEDit correspondiente 0001-000 y doy 'enter' y me figura la factura del primer usuario que tengo en la base de usuarios, y no me da error es decir que me aparezca el mensaje?? Gracias. Silvio.- |
Locate te retorna un valor Booleano si no encontró ningun registro, tendrías que verificar este resultado para saber si encontró un registro.
|
una cosa estas iroduciendo la informacion en un DBEdit???
si lo tienes ligado elproblema es que estas modificando la informacion del registro actual de todas maneras porque no pones el trozo de codigo especifico o enviamelo al correo porque ya estoy un poco a ciegas |
Busque con Locate
Ok, voy a poner el código que escribí...
Gracias. |
Busque con Locate
En el evento OnKeyPress del DBEdit (donde cargo el Nºde Factura), escribí:
[code] procedure TForm14.DBEdit2KeyPress(Sender: TObject; var Key: Char); Var n,m,o,p:Variant; begin If Key=#13 Then begin ModuloDatos.TblPagos.Active:=True; ModuloDatos.TblFacturas.Active:=True; ModuloDatos.TblFacturas.Locate('NFactura',DBEDit2.Text,[]); n:=ModuloDatos.TblFacturas.FieldValues['NFactura']; m:=ModuloDatos.TblFacturas.FieldValues['Usuario']; o:=ModuloDatos.TblFacturas.FieldValues['Periodo']; p:=ModuloDatos.TblFacturas.FieldValues['Precio']; ModuloDatos.TblPagos.FieldValues['NFact']:=n; ModuloDatos.TblPagos.FieldValues['Usuario']:=m; ModuloDatos.TblPagos.FieldValues['Periodo']:=o; ModuloDatos.TblPagos.FieldValues['Importe']:=p; Confirmar.SetFocus; end; /[code] Bueno ese es el código, donde tengo problema... Gracias, saludos.- |
Busque con Locate
Perdón me equivoqué con las etiquetas:
Código:
procedure TForm14.DBEdit2KeyPress(Sender: TObject; var Key: Char); |
la verdad no entiendo muy bien lo que quieres lograr pero lo que si veo es que no validas la respuesta del locate y una vez que sales de el modificas los valores de la tabla te aconsejaria probar una cosa como
Código:
procedure TForm14.DBEdit2KeyPress(Sender: TObject; var Key: Char); esto lo digo por que en un post anterior me he dado cuenta de que introduces dentro de la factura un "-" solo me queda que si esto no te ayuda pasame el codigo al correo para que lo pueda ver en su globalidad ¿vale? |
La franja horaria es GMT +2. Ahora son las 03:43:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi