Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Lookup y otros problemitas (https://www.clubdelphi.com/foros/showthread.php?t=24713)

MDQRLZ 31-08-2005 12:07:31

Lookup y otros problemitas
 
buenas a todos.
Quisiera hacerle unas preguntas sobre algunos problemas que me estan volviendo loco y no he podido solucionarlos.
1) hay alguna forma de hacer que el lookup en una tabla (table1.lookup) no diferencie mayusculas y minusculas (como por ej el locaseinsensitive)??
o si no.. hay alguna otra manera de buscar determinado registro de un campo por columnas?
Me explico mejor.. tengo una tabla con los campos producto, stock y precio.. en un edit ingreso el nombre del producto y quiero q me devuelva la informacion del precio..

2) me podrian decir la sentencia a utilizar para que cuando este dentro del edit al presionar la tecla "enter" presione un boton?

3) dentro de la misma tabla mensionada anteriormente quisiera q ademas de mostrarme el precio pueda restarle el stock? no se si se entiende, por las dudas ejemplifico:

producto precio stock
pc completa 1.400 20


yo ingreso en un edit la cantidad vendida y quiero q se reste al stock, es decir yo vendo 2 pcs completas y tendria q quedar

producto precio stock
pc completa 1.400 18



desde ya muchas gracias.

epuigdef 31-08-2005 13:54:39

creo que lo mejor que puedes hacer es trabajar con queries:


select * from tabla where uppercase(codigo) = uppercase(:parametro)

donde :parametro va a ser el contenido del código insertado en el edit.

Por otra parte, en el edit tienes el evento onkeyPress, donde puedes controlar si se ha pulsado enter (recibes la tecla por parámetro) y si es así hacer button.click

Y por último, también con las queries puedes actualizar el campo:

update tabla set stock = stock - paramstock where codigo = :paramcodigo

:paramstock será el stock a restar, y :paramcodigo el código del producto

Espero que te sirva de ayuda
Un saludo

Edu

epuigdef 31-08-2005 13:56:29

Te pongo otra vez el correo sin smilies:

creo que lo mejor que puedes hacer es trabajar con queries:

select * from tabla where uppercase(codigo) = uppercase(:parametro)

donde :parametro va a ser el contenido del código insertado en el edit.

Por otra parte, en el edit tienes el evento onkeyPress, donde puedes controlar si se ha pulsado enter (recibes la tecla por parámetro) y si es así hacer button.click

Y por último, también con las queries puedes actualizar el campo:

update tabla set stock = stock - paramstock where codigo = :paramcodigo

:paramstock será el stock a restar, y :paramcodigo el código del producto

Espero que te sirva de ayuda
Un saludo

Edu

MDQRLZ 01-09-2005 04:52:45

lo del lookup ya lo pude solucionar de otra manera, fue por un error mio q fallaban las cosas.. :D

pero ahora paso a preguntarte, lo del onkeypress lo intente utilizar, pero no se como hacer para q solo me tome el "ENTER". osea.. logro q se efectue el click en el boton pero al apretar cualquier tecla. :(

y lo del stock no entendi, si podrias ejemplificarme o darme alguna otra solucion porq no utilice query nunca y por mas q probe de mil formas no logre hacer q funcione. :confused:

desde ya muchas gracias por las contestaciones anteriores.
Salu2.

epuigdef 01-09-2005 11:03:14

Lo del onkeypress:

procedure TFrmMntPedidos.EdtReferenciaKeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(13) then
showmessage('se ha pulsado enter');
end;

lo del query:

update tabla set stock = stock - paramstock where codigo = paramcodigo

Se supone que tienes una tabla que se llama "tabla" con un campo que se llama "codigo" que tiene la clave principal del código de artículo a actualizar y otro campo que se llama "stock" que tiene el stock del artículo.

Se le pasa un parámetro paramstock con la cantidad a restar y otro parámetro paramcodigo que tiene el código del artículo.

La consulta se "lee" de la siguiente manera:

"actualiza la tabla "tabla" y asigna al campo stock lo que tenga menos el paramstock en los registos culo campo "codigo" valga "paramcodigo""

Espero que te sirva.

Edu

MDQRLZ 01-09-2005 13:49:00

Antes que nada quiero agradecerte por la ayuda que me estas dando , ya q aunque sean cosas faciles no habia logrado hacer que funcionen y me fueron de gran ayuda.

Lo del onkeypress esta solucionado.. asi q lo unico q me quedaria es lo del query.
Te explico que hice porq me tira un error, para ver si es algo q yo hice mal..
Coloque el query en un datamodule, donde estan el datasource y la tabla..
lo vincule con el database y el datasourse.
En la propiedad SQL fue donde escribi la sentencia de "update Productos set Stock = Stock - strtofloat(form3.edit1.text) where Producto = form1.edit1.text".
Luego donde necesito q reste el stock "datamodule2.query1.ExecSQL;"

me tira error "Capability not supported"

gracias una vez mas por tus respuestas

epuigdef 19-09-2005 13:52:26

Buenas!



Perdona mi tardanza, pero es que no había visto que preguntabas otra cosa.



En la query no puedes referenciar a un campo de un formulario. Debes crear un parámetro y después, antes de ejecutar la select. En lugar de :


update Productos set Stock = Stock - strtofloat(form3.edit1.text) where Producto = form1.edit1.text

Debes poner:


update Productos set Stock = Stock - :paramstock where Producto = :paramproducto

y llamarlo de la siguiente manera:

qry.parameters.parambyName('paramstock').Value := strtofloat(form3.edit1.text);
qry.parameters.parambyname('paramproducto').Value := form1.edit1.text
qry.execsql;

Un saludo

Edu


La franja horaria es GMT +2. Ahora son las 08:34:26.

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