Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 06-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
pues mira ya ando un poco perdido si me pudieras ayudar para implementarlo de esa forma agregando un campo existencias en mi tabla productos y de como puedo hacerle te lo agradeceria mucho
Responder Con Cita
  #22  
Antiguo 06-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Simplemente agrega el campo existencias a la tabla productos.
coloca aqui el codigo que usas para hacer una entrada o una salida y te pongo un ejemplo.
Pon tambien los campos de la tabla productos para estar mas seguro.
Saludos
PD: Ponle a un producto determinado (como prueba) una existencia X para que veas como se hace el update.
__________________
Siempre Novato
Responder Con Cita
  #23  
Antiguo 06-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
a ver si me explico de otro form voy metiendo los datos en un dbgrid de la siguiente forma

Código Delphi [-]
form4.clientdataset1.Append;

    
    form4.clientdataset1['serie'] := form4.serie.Text;
    form4.clientdataset1['documento']:=form4.documento.Text;
   form4.clientdataset1['folio'] := form5.folio.Text;
    form4.clientdataset1['codigo'] := form5.codigo.Text;

    form4.clientdataset1['nombre'] := form5.nombre.Text;
    form4.clientdataset1['cantidad'] := form5.cantidad.Text;
    form4.clientdataset1['precio'] := form5.precio.Text;
     form4.clientdataset1['unidad']:=form5.unidad.Text;
    form4.clientdataset1['id']:=form5.id.Text;
     form4.clientdataset1['importe']:= floatToStr( StrTofloat(form5.cantidad.Text) * StrTofloat(form5.precio.Text) );

     form4.clientdataset1['fecha'] := form4.fecha.Date;

    form4.clientdataset1.Post;


ya que tengo las entradas que voy a meter en mi base de datos por medio de un boton guardar que tiene el siguiente codigo los mando a la base de datos:

Código Delphi [-]
clientdataset1.ApplyUpdates(0);
 
showmessage('grabado con exito ');

los campos de mi tabla productos son:
codigo, nombre, fecha,precio, status, fec_baja, unidad, cantidad, id, existencias
Responder Con Cita
  #24  
Antiguo 06-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Tienes un boton en el que aplicas el update del dataset.
No se que componente usas para conectarte pero digamos que es un query normal.
Coloca un query (del componente que uses) lo conectas a la bd y pones este codigo en el boton del update.

Primero cuentas o sumas el dato del campo cantidad de la tabla entradas, lo guardas en una variable:
Despues generas el update de la tabla productos del campo existencias.
Código Delphi [-]
var dato: real;
begin
// guardas los datos, esto ya lo estas haciendo en ese boton
clientdataset1.ApplyUpdates(0);
showmessage('grabado con exito ');

//Sumo el campo cantidad, segun el codigo del producto
Query1.slq.text.= 'Select sum(cantidad) as cantidad from Entradas where codigo = :cod';
Query1.Params[0].Value:=  form5.codigo.Text;
Query1.Open;
dato:= FloatToStr(Query1.Fields[0].Text);
Query1.Close;

// genero el update de la tabla productos al campo existencias, segun el codigo del producto
Query1.SQL.Text := 'Update Productos set Existencias = Existencias + :Nuevodato Where Codigo = :cod';
Query1.Params[0].Value:= dato;
Query1.Params[1].Value:=  form5.codigo.Text;
Query1.ExecSQL;

showmessage('existencia actualizada ');
end;
Espero que lo entiendas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #25  
Antiguo 06-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
me marca este error [DCC Error] Unit4.pas(248): E2250 There is no overloaded version of 'FloatToStr' that can be called with these arguments

en esta linea
dato:= FloatToStr(Query1.Fields[0].Text);
Responder Con Cita
  #26  
Antiguo 06-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Puede ser:
1- que el campo cantidad sea integer y no float en tu tabla.
de ser asi, cambia estas lineas:

Código Delphi [-]
var dato: Integer;
y esta:
Código Delphi [-]
dato:= StrToInt(Query1.Fields[0].Text);

2- puede ser al reves si el campo en la tabla es float:
cambialo asi:
Código Delphi [-]
dato:= StrToFloat(Query1.Fields[0].Text);


Saludos
__________________
Siempre Novato
Responder Con Cita
  #27  
Antiguo 06-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por edgar_prospero Ver Mensaje
me marca este error [DCC Error] Unit4.pas(248): E2250 There is no overloaded version of 'FloatToStr' that can be called with these arguments

en esta linea
dato:= FloatToStr(Query1.Fields[0].Text);
La función FloatToStr recibe un número flotante como parámetro y tú le estás pasando una cadena. Si tu campo realmente es de este tipo entonces basta que pongas:

Código Delphi [-]
dato:= FloatToStr(Query1.Fields[0].AsFloat);

Pero, por otro lado, dado que, al parecer, quieres el valor en formato de texto, entonces ni siquiera tienes que usar FloatToStr y simplemente pones:

Código Delphi [-]
dato:= Query1.Fields[0].AsString;

// Saludos
Responder Con Cita
  #28  
Antiguo 06-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
efectivamente ese era mi error ya se pudo ejecutar el programa y no marca error pero no actualiza el campo de existencias no se si me este faltando algo en el componente
Responder Con Cita
  #29  
Antiguo 06-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
ya logre hacer que me afecte inventarios pero hay nu detalle, si meto una entrada con cantidad de 5 en existencias me aparecen 5 ahi todo bien
pero si con ese mismo codigo agrego otra entrada con cantidad 1 deberia de dejarme en existencias 6 pero me vuelve a sumar los 5 que tenia en un principio y me aparece 11
Responder Con Cita
  #30  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Declara al principio del codiigo:
Dato:= 0;

Asi la variable se iniciara siempre en cero.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #31  
Antiguo 07-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
pues no amigo sigue en las mismas por ejemplo si tengo un un folio con varios registros ya guardados y ese folio lo vuelvo a abrir en un dbgrid para agregar otro registro me vuelve a actualizar los codigos que estan ahi
Responder Con Cita
  #32  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
No entiendo, creo que el problema es que guardas varios productos a la vez, osea, vas cargando los productos en el dbgrid y luego los guardas.
me parece que para que el codigo de actualización sea eficiente tiene que estar en el codigo que guarda cada item.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #33  
Antiguo 07-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
tratare de explicar mi codigo a ver si me doy a entender, en un form tengo varios edit los cuales voy llenando con los datos(codigo, nombre, precio, etc) ahi con un boton lo envio a otro edit donde tengo un dbgrid entonces se agrega el primer registro y asi puedo agregar todos los registros que necesite pero solo estande manera temporal ya que uso un clientdataset, ya que quiero guardarlo utilizo un boton que uso con solo el codigo clientdataset1.ApplyUpdates(0); y todos esos registros se guardan con un folio por decir 2, si ya despues me doy cuenta que me falto agregar otro registro con ese nuemro de folio lo vuelvo a mostrar en el dbgrid con todosl los registrs que tienen ese folio lo agrego y otra vez le doy en guardar pero solo me guarda el ultimo codigo que agregue, y con lo que estamnos haciendo ahorita me vuelve a sumar todas las cantidades, no se si abra otra manera de intentarlo
Responder Con Cita
  #34  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Te voy a explicar como se hace normalmente un sistema de inventario.
Se tienen:
1 tabla productos
1 tabla transacciones.
En la tabla productos se tiene un campo existencias y los datos del producto
en la tabla transacciones se tiene un campo que define si es entrada (E) o salida (S) y la fecha de la transaccion.
Es muy sencillo llevar estas dos tablas.
Al tener el concepto que llevas te complicas mas de la cuenta sin sentido.
Estructurar esto es muy sencillo, casi lo tienes listo.
saludos
__________________
Siempre Novato
Responder Con Cita
  #35  
Antiguo 07-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
si entiendo lo que me quieres decir pero mi problema esta en que tengo que llevar entradas en una tabla y salidas en otra porque van ordenadas por un folio consecutivo por eso no utilizo una tabla, e ahi por que me estoy complicando la existencia pero me imagino que si debe de haber solucion a mi problema aunque este complicado
Responder Con Cita
  #36  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Cual es el problema en llevar un folio consecutivo de entradas y otro de salidas en una sola tabla ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #37  
Antiguo 07-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
pues necesito un folio 1 para entradas y un folio 1 para salidas y aunque si se puede como que se me hizo mas revuelto pero al no a ver solucion a como lo quiero hacer creo que tratare de implementarlo de esa manera aunque tendre que cambiar gran parte de mi diseño
Responder Con Cita
  #38  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Dame un tiempo, voy a hacerte un ejemplo con access, pero con sql normal para que lo puedas aplicar a tu sistema.
Eso si, dame un rato.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #39  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Viendo el tutorial de facturacion que puse en delphiaccess la parte de factura es muy similar a lo que quieres hacer, solo se tendrian que hacer muy pequeñas modificaciones.
AQUI esta el archivo para que lo descargues, veas y me digas tus dudas.
Saludos
PD: Revisa el form factura.
__________________
Siempre Novato
Responder Con Cita
  #40  
Antiguo 07-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 15
edgar_prospero Va por buen camino
no pues cada vez estoy mas perdido amigo no logro identificar que parte podria ayudarme con mi problema de restar 2 campos de tablas diferentes, creo que ya me bloquie en esto
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al restar registros Entre Tablas Lenny Varios 3 18-01-2011 14:03:33
Restar/Sumar entre DBGrid's Lenny Varios 5 02-07-2010 13:54:13
Restar registros de diferentes tablas !!! sargento elias SQL 1 24-11-2008 18:44:37
Como Restar campos de dos tablas ZLEON SQL 1 27-08-2008 07:52:00
restar horas y devolver la diferencia en tiempo entre ellas douglas OOP 1 24-10-2007 11:28:44


La franja horaria es GMT +2. Ahora son las 21:43:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi