Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-08-2005
MDQRLZ MDQRLZ is offline
Registrado
 
Registrado: ago 2005
Posts: 5
Poder: 0
MDQRLZ Va por buen camino
Question 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.
Responder Con Cita
  #2  
Antiguo 31-08-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
creo que lo mejor que puedes hacer es trabajar con queries:


select * from tabla where uppercase(codigo) = uppercase(arametro)

donde arametro 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 = aramcodigo

aramstock será el stock a restar, y aramcodigo el código del producto

Espero que te sirva de ayuda
Un saludo

Edu
Responder Con Cita
  #3  
Antiguo 31-08-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 01-09-2005
MDQRLZ MDQRLZ is offline
Registrado
 
Registrado: ago 2005
Posts: 5
Poder: 0
MDQRLZ Va por buen camino
lo del lookup ya lo pude solucionar de otra manera, fue por un error mio q fallaban las cosas..

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.

desde ya muchas gracias por las contestaciones anteriores.
Salu2.
Responder Con Cita
  #5  
Antiguo 01-09-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 01-09-2005
MDQRLZ MDQRLZ is offline
Registrado
 
Registrado: ago 2005
Posts: 5
Poder: 0
MDQRLZ Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 19-09-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
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 - aramstock where Producto = aramproducto

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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:15:02.


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
Copyright 1996-2007 Club Delphi