Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #41  
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 te bloquees, revisa el codigo del form factura, ahi veras un boton guardar, revisa el codigo, lo que hace es esencialmente lo que he tratado de explicarte.
Tranquilo, te ayudaremos hasta que lo hagas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #42  
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
ok le voy a dar una buena revisada pero no se si sea compatible con lo que hago ya que yo no guardo los registros de esa manera utilizo un
clientdataset1.ApplyUpdates(0); y ya es el unico codigo que tengo en mi boton guardar
Responder Con Cita
  #43  
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
Yo no se si sigo sin entender algo.
1-Tienes una serie de edits
2-los llenas con informacion
3-los vas guardando.

Aqui es donde me pierdo,
1.los vas guardando presionando el boton que aplica el update o el codigo que contiene el POST los va guardando ?.
2-cada vez que incluyes un producto es diferente o siempre es el mismo con diferentes cantidades (cosa que no veo logica pero pregunto por si acaso).
Saludos
__________________
Siempre Novato
Responder Con Cita
  #44  
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
a ver si me explico en un form tengo varios edit los cuales lleno de informacion y por un boton los envio a otro form a un dbgrid ahi voy agregando los registros que necesite normalmente son diferentes codigos ya que tengo los que necesito ahora si le doy en el boton guardar donde tengo el clientdataset1.ApplyUpdates(0); y todos esos registros con su codigo cada uno se guardan con un solo numero de folio por ejmplo el 1, pero en los demas folio puedo volver a guardar regisrtos que ya haya guardado antes,ya que por ejemplo si me llegan 5 recamaras con codigo rec30 se me ocurre le doy entrada con su numero de folio y en una semana me llegan otras 2 recamaras de las mismas pues le doy entrada con otro numero de folio no se si me entiendas un poco
Responder Con Cita
  #45  
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
independientemente de las entradas o salidas o como las guardes lo que necesitas es saber la existencia de X producto, verdad ?.

Hagamos un ejercicio:
Digamos que tienes el mismo codigo que envia la informacion al dbgrid pero con un dato adicional y que solo guardara la informacion en una de las dos tablas, supongamos que es la tabla entradas, entonces:
a la tabla entradas le añades un campo llamado TIPO (Texto) 2
ahora colocas un combobox en el form y pones en el text.
Entrada
Salida

Con esto a la hora de guardar la informacion se sabrá si fue una entrada o una salida en una sola tabla (despues veremos la parte del folio que es mas sencilla)

Pondremos el codigo que va enviando al dbgrid (de momento) asi:
Código Delphi [-]
var A : String;
begin
   // aqui se define si es entrada o salida dependiendo del combobox
   If combobox.text = 'Entrada' then
   begin
   A:= 'E';
  end
  else begin
  A:= 'S';
  end;
  // aqui se envia el dato al dbgrid
    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['TIPO'] := Combobox1.text;  // aqui esta el dato (entrada o salida)

    form4.clientdataset1.Post;
Como ves en una variable guardo una letra que sera guardada en la tabla en el campo TIPO.
Empecemos por aqui y me dices como va.

Saludos
__________________
Siempre Novato
Responder Con Cita
  #46  
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
perfecto gracias por tu tiempo lo implementare de esa forma hay te digo como me fue
Responder Con Cita
  #47  
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
Despues de hacer esto seria muy sencillo generar una consulta que nos muestre los datos de una entrada o salida segun un numero de folio, una fecha determinada y un producto x.
Si sacamos este dato sera muy sencillo restar las entradas de las salidas segun un producto x, que es lo que necesitas, segun entiendo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #48  
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
listo ya a la hora de guardar ya se me guarda en tipo si es entrada o es salida ahora mi duda seria para asignarle su propio folio secuencial a cada entrada y a cada salida como seria por ejemplo tiene que haber un folio 1 tanto para entrdaas como para salidas
Responder Con Cita
  #49  
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
mira cuando abro por decir la entrada y mi ultimo folio que use era 4 mediante el siguiente codigo en el edit me aparecia 5 :



query.Close;
query.SQL.Text:='SELECT folio FROM entradas ORDER BY folio desc LIMIT 1';
query.Open;
folio.text := IntToStr(query.FieldByName('folio').asInteger +1) ;
Responder Con Cita
  #50  
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
Ese no es problema, aqui tuve un error revisalo otra vez, puse que se guardara el dato del combobox y no de la variable.
Si usas el codigo que puse no haria falta la variable para nada pero el campo seria mas grande para contener la palabra completa, osea asi:
Código Delphi [-]
  // aqui se envia el dato al dbgrid
    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['TIPO'] := Combobox1.text;  // aqui esta el dato (entrada o salida)

    form4.clientdataset1.Post;

Si usas el dato de la letra entonces seria asi:
Código Delphi [-]
var A : String;
begin
   // aqui se define si es entrada o salida dependiendo del combobox
   If combobox.text = 'Entrada' then
   begin
   A:= 'E';
  end
  else begin
  A:= 'S';
  end;
  // aqui se envia el dato al dbgrid
    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['TIPO'] := A;  // aqui esta el dato (entrada o salida)

    form4.clientdataset1.Post;
Revisa y me dices.
saludos
__________________
Siempre Novato
Responder Con Cita
  #51  
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
Cuando se necesita saber el numero de folio que sigue tanto de entradas como de salidas se hace asi:
usando el mismo combobox:
Código Delphi [-]
var A : String;
begin
   // aqui se define si es entrada o salida dependiendo del combobox
   If combobox.text = 'Entrada' then
   begin
   A:= 'E';
   end
   else begin
   A:= 'S';
   end;
  query.Close;
  query.SQL.Text:='SELECT max(folio) FROM entradas where tipo = '+A;
  query.Open;
  folio.text := IntToStr(query.FieldByName('folio').asInteger +1) ;
Como ves simplemente se saca el dato del folio dependiendo de si es entrada o salida en el campo que creaste.
saludos
__________________
Siempre Novato
Responder Con Cita
  #52  
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
mmm no me queda muy claro donde voy a usar ese codigo para el folio porque lo que yo necesitareia es que en cuanto entre al form en el combox pues tengo entradas por default entonces que me aparesca el numerp de folio que le correpsonde desde un principio y que si el combobox lo muevo a salidas automaticamente me ponga el folio que corresponde
Responder Con Cita
  #53  
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
En el evento OnChange del combobox.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #54  
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
diras que como doy carrilla amigo pero me marca error column 's' in where clause creo que hoy la traigo de malas
Responder Con Cita
  #55  
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
porque checandolo salen mas detallitos por ejemplo si tengo un folio 1 de entrada y 1 de salida, tengo la funcion de que en el edit de folio tecleo 1 y me trae al dbgrid los registros con ese folio y en estos momentos le pongo 1 y me trae lso folio 1 de entrada y salida este codigo uso para trarme los datos con el evento key press:

Código Delphi [-]
 if Key = #13 then
  begin

 query.Close;
   query.SQL.Text := 'select * from entradas where folio=:txtfolio';
    query.Params[0].Value := folio.Text;

    query.Open;

    serie.Text :=  query.FieldByName('serie').asString;
    fecha.Date := query.FieldByName('fecha').AsDateTime;

  clientdataset1.Close;
  clientdataset1.Params.ParamByName('folio').AsInteger := StrToIntDef(Folio.Text, 0);
  clientdataset1.Open;
Responder Con Cita
  #56  
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
1-revisa que el dato del campo sea esa S
2-Si es asi y no la palabra completa ponlo asi:
Código Delphi [-]
var A : String;
begin
   // aqui se define si es entrada o salida dependiendo del combobox
   If combobox.text = 'Entrada' then
   begin
   A:= 'E';
   end
   else begin
   A:= 'S';
   end;
  query.Close;
  query.SQL.Text:='SELECT max(folio) FROM entradas where tipo = '+QuotedStr(A);
  query.Open;
  folio.text := IntToStr(query.FieldByName('folio').asInteger +1) ;

o asi:
Código Delphi [-]
var A : String;
begin
   // aqui se define si es entrada o salida dependiendo del combobox
   If combobox.text = 'Entrada' then
   begin
   A:= 'E';
   end
   else begin
   A:= 'S';
   end;
  query.Close;
  query.SQL.Text:='SELECT max(folio) FROM entradas where tipo = '''+ A + '*''';
  query.Open;
  folio.text := IntToStr(query.FieldByName('folio').asInteger +1) ;

Vamos por partes amigo
Saludos
__________________
Siempre Novato
Responder Con Cita
  #57  
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
tiens razon me acelero jeje mira me sale este error ahora query:field 'folio' not found
Responder Con Cita
  #58  
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
Eso dice que el campo folio no lo encuentra, revisa que este bien escrito y por supuesto que este ese campo en la tabla.
amigo, se que no me conoces pero aqui saben que no soy programador, esto lo hago por hoovi, no esperes demasiado de este novato, trato de ayudar con mis pocos conocimientos de esto.
saludos
__________________
Siempre Novato
Responder Con Cita
  #59  
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
Ya nos contaras como te fue con esto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #60  
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 seras novato como dices pero me has echado mucho la mano amigo, ya pude hacer que no me marcara error el problema me sale por la parte de max(folio), lo cmabie por el siguiente codigo no me marca error pero en folio siempre me pone uno aunque tenga 10 siempre es 1

Código Delphi [-]
If combobox1.text = 'Entrada' then  
   begin
   A:= 'E';
   end
   else begin
   A:= 'S';
   end;
  query.Close;

  query.SQL.Text:='SELECT folio FROM entradas where tipo = '''+ A + '*'' ';
  query.Open;
  folio.text := IntToStr(query.FieldByName('folio').asInteger +1) ;
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

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 01:33:02.


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