![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Sumar campo cuando este asi actualizado
Que tal amigos espero que me echen la mano en esto que no se por donde empezar resulta que tengo un campo en mi BD que es no. de piezas en el cual le ingreso datos ahora cuando me llegan de nuevo piezas tengo que actualizar la informacion pero lo que en si yo quiero que cuando yo actualize me sume las piezas ya existentes con las que acabo de ingresar, la verdad nose como hacerle, ya que esto lo quiero hacer cuando actualizo este campo. Que se vaya sumando por medio de una consulta o que se yo pero al momento de agregar nuevas entradas, bueno espero me echen la mano y de antemano gracias.
|
#2
|
||||
|
||||
Código:
update tabla set piezas = piezas + new.piezas
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Gracias amigo por responder pero me he quedado igual, en si quiero hacer algo parecido asi:
PIEZAS 10 PIEZAS (ingresadas) 5 PIEZAS 15 En si es lo que quiero hacer es que en mi tabla ya tengo el campo PIEZAS con datos entonces cuando ingreso en un edit las PIEZAS que acaban de llegar que cuando almacene esta actualizacion me sume con las que ya tengo mas con las que acabo de introducir para que mas adelante me sirvan para ver sus existencias reales, de antemano gracias. |
#4
|
||||
|
||||
Es como te he mostrado antes. ¿Qué parte es la que no sabes hacer?, ¿qué llevas hecho y cómo?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Gracias amigo de nuevo por responder, te pongo mi codigo que tengo
Te pongo todo este codigo por que es en el boton que actualiza mi informacion, ahora asi como me lo pusiste anteriormente me marcaba error de codigo entonces lo puse asi como te lo muestro pero me marcar igual el error ya que mi tabla la tengo en Datamodule por esa razon es como yo llamo a la tabla bueno espero que me ayudes o me comentes en donde esta mi error y gracias de nuevo. Última edición por rgstuamigo fecha: 28-05-2010 a las 21:12:42. Razón: Estética en el código |
#6
|
|||
|
|||
![]() Primero, Eliges la Tabla a editar:
Luego Seleccionas de donde y con que editaras la Info: Si apuntas a un DBEdit, con un Edit donde ingresaras la cantidad a ingresar:
Directo a la Tabla:
Luego Ingresas el Registro:
O sea quedaria algo asi:
Al menos asi lo hago yop, y me resulta impecable sin errores. Saludos!!! Última edición por Lenny fecha: 28-05-2010 a las 18:42:38. |
#7
|
|||
|
|||
Gracias amigo por responderme, tengo una duda en respecto como le hago directo a la tabla como le hago para sumar ya que en los ejemplos que me mostraste no aparece la suma o es la misma linea de codigo que aparece al ejemplo que me muestras:
Código:
DBEdit1.Text:= FloatToStr (StrToFloat(DBEdit1.Text) + StrToFloat (Edit1.Text)); Código:
begin dm1.T_productos.Edit; dm1.T_productos.FieldbyName('piezas').AsString := sEdit1.Text; dm1.T_productos.Post; end; |
#8
|
||||
|
||||
Hola rufo.
Sumar las piezas ingresadas en el Edit al campo piezas, es tán sencillo como lo expuso casimiro (stock_anterior:= stock_anterior + cantidad_ingresada) En tu caso creo que sería: Código:
with dm1.T_productos do FieldByName('piezas'):= FieldByName('Piezas')+ IntToStr(EditX.Text); // donde, EditX = Piezas ingresadas manejando un stock de una farmacia. Estas usando GotoNearest para posicionarte en el registro que buscas. Supongamos ahora que te equivocas al ingresar el id_producto del producto. GotoNearest se situará en el registro que más se acerque al buscado sin avisar de ningún error. Esto puede ocasinar por ejemplo, que ingresar una compra de Aspirina te incremente las existencias de Viagra (ocasionando un irremediable paro del programa ![]() Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 28-05-2010 a las 20:10:41. |
#9
|
|||
|
|||
![]() Sorry, no deje el ejemplo completo, seria algo asi:
Tu Código deveria quedar asi:
Prueba y nos cuentas!!!, quizás la respuesta es algo "Caníbal" o "Rebuscado", no pretendo reinventar la rueda, pero soy de los que Código que resulta, Repite y esta forma hasta el día de hoy no me ha dado ningún problema, si alguien tiene alguna mejor forma (obviamente hay alguna mejor y menos rebuscado) que nos ilumine y así aprendemos todos... Saludos... Última edición por Lenny fecha: 28-05-2010 a las 20:32:28. |
#10
|
|||
|
|||
Hijole amigos pues resulta que ya ingrese el codigo pero al momento de oprimir el boton actualizar me hace el calculo mal es decir si yo tengo 100 piezas me aparece 20 les pongo en si el codigo de nuevo para que vean si estoy cometiendo un error
Código:
procedure TENTRADAS.sButton4Click(Sender: TObject); begin if messagedlg('Los datos son correctos?',mtconfirmation,[mbok,mbcancel],0)=mrok then begin with dm1.T_productos do begin active:=true; SetKey; FieldByName('id_productos').Asinteger := strtoint(slabel9.Caption); GotoNearest; edit; fieldbyname('id_productos').asinteger:=strtoint(slabel9.Caption); fieldbyname('fecha_entrada').asstring:=sedit2.Text; fieldbyname('piezas').asstring:=sedit1.Text; fieldbyname('id_proveedor').asinteger:=v_idproveedor; post; refresh; end; begin dm1.T_productos.Edit; dm1.T_productos.FieldbyName('piezas').AsFloat:= dm1.T_productos.FieldbyName('piezas').AsFloat + StrToFloat(sEdit1.Text); dm1.T_productos.Post; end; end; |
#11
|
|||
|
|||
Amigos ya quedo resuelto, les explico que estaba mal al momento de actualizar ya que estaba sumando el mismo registro con el mismo, les pongo como ya quedo mi codigo ya correcto.
Código:
procedure TENTRADAS.sButton4Click(Sender: TObject); begin if messagedlg('Los datos son correctos?',mtconfirmation,[mbok,mbcancel],0)=mrok then begin with dm1.T_productos do begin active:=true; SetKey; FieldByName('id_productos').Asinteger := strtoint(slabel9.Caption); GotoNearest; edit; fieldbyname('id_productos').asinteger:=strtoint(slabel9.Caption); fieldbyname('fecha_entrada').asstring:=sedit2.Text; //fieldbyname('piezas').asstring:=sedit1.Text; //Aqui es donde estaba mal ya que estaba sumando asi mismo fieldbyname('id_proveedor').asinteger:=v_idproveedor; post; refresh; end; begin dm1.T_productos.Edit; dm1.T_productos.FieldbyName('piezas').AsFloat:= dm1.T_productos.FieldbyName('piezas').AsFloat + StrToFloat(sEdit1.Text); dm1.T_productos.Post; end; end; |
#12
|
|||
|
|||
![]() Edito el comentario, solucionaste el problema antes de darte una solución, Cualquier duda estaré atento...
Saludos... Última edición por Lenny fecha: 28-05-2010 a las 21:08:18. |
#13
|
||||
|
||||
![]() Me alegro que lo hubieras solucionado amigo rufo,
![]() ![]() Saludos... ![]()
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sql sumar campo sum() | teclilla | SQL | 27 | 17-02-2008 18:50:15 |
leer archivo.txt cuando este ha sido modificado... | Greco | Varios | 4 | 14-11-2007 22:17:06 |
no me muestra un campo actualizado con triggers | pmfras | Firebird e Interbase | 0 | 05-03-2005 17:41:07 |
Sumar un campo en dos tablas | Ignacio | SQL | 2 | 27-09-2004 01:00:38 |
![]() |
|