Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Ayuda con guardado en tabla paradox

Buenas gente necesitaria una ayudita de uds los expertos, resulta que hice esto a los patadas, y me gustaria saber como mejrrarlo, porque realmente a veces funciona bien y a veces no, este codigo es cuando elijo dar un nuevo remito, y como ven llevo el contador de remitos. Esto dentro de todo funcionaria bien. Lo unico que me guarda desordenado en la tabla. Pero a la larga guarda.

Código:
procedure TFrmprincipal.Remito2Click(Sender: TObject);
var
num:integer;
begin
num:=frmremito.contadorx['contremito'];
frmremito.contadorx.Insert;
frmremito.contadorx['contremito']:=num+1;
frmremito.Label12.Caption:=inttostr(frmremito.contadorxcontremito.Value);
frmremito.ShowModal
end;

end.


En este otro codigo lo que hago es cuando doy el boton procesar quiero que me guarde en sus correspondientes tablas los datos del remito.
MTremito es una tabla en memoria rx. Lo que me ocurre con esto es que a veces me da key violation y la tabla remitodetalle me guarda solamente el primer registro. Me gustaria si no es mucha molestia me lo revisen un poquito para ver en que le estoy errando. El numero de remito me lo gusrda bien.



Código:
procedure TFrmRemito.BitBtn1Click(Sender: TObject);
var
numremito:real;
begin
numremito:=strtofloat(label12.Caption);
If messagedlg('Los datos del Remito con correctos?',MTwarning,mbOKCancel,0)<>
mrok
then
exit;

with dmzingueria do begin
remito.Insert;
remitonumremito.Value:=numremito;
remitoclicod.Value:=strtofloat(dbtext1.Caption);
remitofecha.Value:=strtodate(fecha);
remitofacturado.Value:=false;
remito.Post;

with mtremito do begin
first;

while not eof do begin
remitodetalle.Append;
remitodetallenumremito.Value:=numremito;
remitodetalle.FieldByName('codipro').Value:=FieldByName('codigo').value;
remitodetalle.FieldByName('cantidad').Value:=fieldbyname('cantidad').Value;
remitodetalle.FieldByName('concepto').Value:=fieldbyname('descripcion').Value;
next;
end;
end;



contadorx.Post;
end;
end;
end.

PD. Remito es lo que llaman en otros paises albaran.


Desde ya muchas gracias por su tiempo.
Responder Con Cita
  #2  
Antiguo 09-11-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
me has confundido, en si cual es el problema???

te guarda y no te ordena, te guarda y te da KeyViolation??, podrias explicar un poco mejor
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
SI perdon paso a explicarme mejor

El campo contador me guarda de la siguiente forma

Código:
Registro Numremito
   1           2
   2           1  
   3           2
   4           3
   5           4

Y lo del remito y remito detalle, me guarda una linea de ambos, por ejemplo,
Código:
TABLA REMITO

Numremito  Clicod   Fecha        Facturado
1                1       8/11/2007   fALSE
Código:
TABLA REMITODETALLE

Numremito  Codipro    Cantidad    Concepto
1               4               6           Campana Acero inox.
El tema es que yo hice el remito por mas de una linea de detalle y me guarda solamente una.


Espero haberme explicado mejor. Desde ya muchas gracias


Me olvidaba de decirles que em da keyviolation. Puede ser cuando hago el doy el while not eof y le doy append y que se repita el numremito al ser clave con la tabla de remito, o tambien puede ser porque estoy usando mal para incrementar el contador del remito?

Última edición por Petolansa fecha: 09-11-2007 a las 14:19:34.
Responder Con Cita
  #4  
Antiguo 09-11-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
el asunto esta en la logica que utilizas para crear los detalles, podrias utilizar un grid y alli al darle el boton procesar lo vuelcas a la tabla
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Ok

Lo que hago es guardar los datos en un dbgrid vinculado a una rxmemorytable, y luego volcar los datos a las tablas por medio de un boton, como es que me decis que podria hacerlo de otra forma?

Gracias
Responder Con Cita
  #6  
Antiguo 09-11-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
lo haces bien entonces, puedes colocar la parte donde vacias la tabla rxMemoryTable para analizarlo??
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Por ahi esta el problema entonces, porque no vacio la tabla, el codigo que puse mas arriba es el unico proceso que realizo para guardar en las respectivas tablas remito y remitodetalle, donde la vaciaria?


procedure TFrmRemito.BitBtn1Click(Sender: TObject);
var
numremito:real;
begin
numremito:=strtofloat(label12.Caption);
If messagedlg('Los datos del Remito con correctos?',MTwarning,mbOKCancel,0)<>
mrok
then
exit;

with dmzingueria do begin
remito.Insert;
remitonumremito.Value:=numremito;
remitoclicod.Value:=strtofloat(dbtext1.Caption);
remitofecha.Value:=strtodate(fecha);
remitofacturado.Value:=false;
remito.Post;

with mtremito do begin
first;

while not eof do begin
remitodetalle.Append;
remitodetallenumremito.Value:=numremito;
remitodetalle.FieldByName('codipro').Value:=FieldByName('codigo').value;
remitodetalle.FieldByName('cantidad').Value:=fieldbyname('cantidad').Value;
remitodetalle.FieldByName('concepto').Value:=fieldbyname('descripcion').Value;
next;
end;
end;



contadorx.Post;
end;
end;
end.

Otra cosita, esta mal como asigno el nro de remito? Cual es la forma de hacerlo correctamente extrayendo el ultimo nro de un campo, en este caso el campo se llema numremito

procedure TFrmprincipal.Remito2Click(Sender: TObject);
var
num:integer;
begin
num:=frmremito.contadorx['contremito'];
frmremito.contadorx.Insert;
frmremito.contadorx['contremito']:=num+1;
frmremito.Label12.Caption:=inttostr(frmremito.contadorxcontremito.Value);
frmremito.ShowModal
end;

end.Porque con este codigo me repite y me los ordena mal no va parejo.

Gracias por el tiempo
Responder Con Cita
  #8  
Antiguo 09-11-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
prueba estas sugerencias

Código Delphi [-]
procedure TFrmRemito.BitBtn1Click(Sender: TObject);
var
   numremito:real;
begin
   numremito:=strtofloat(label12.Caption);
   If messagedlg('Los datos del Remito con correctos?',MTwarning,mbOKCancel,0)<>mrok then
      exit;

   with dmzingueria do
   begin
      remito.Insert;
      remitonumremito.Value:=numremito;
      remitoclicod.Value:=strtofloat(dbtext1.Caption);
      remitofecha.Value:=strtodate(fecha);
      remitofacturado.Value:=false;
      remito.Post;

      with mtremito do
      begin
         first;

         while not eof do
         begin
            remitodetalle.Append;  //Cambialo por el insert
            remitodetallenumremito.Value:=numremito;
            remitodetalle.FieldByName('codipro').Value:=FieldByName('codigo').value;
            remitodetalle.FieldByName('cantidad').Value:=fieldbyname('cantidad').Value;
            remitodetalle.FieldByName('concepto').Value:=fieldbyname('descripcion').Value;
            //Agrega aqui un post;
            post; 
            next;
         end;
      end;

      contadorx.Post; //Que es contadorx?? no deberia ser Remito??
   end;
end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #9  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
El contador x es la tabla que me cuenta el nro de remito,en teoria, ah posteo el nro de remito asi despues arranco de otro.

Como seria la forma correcta de extraer el ultimo campo de una tabla y sumarle 1, el campo es de tipo integer.
Porque de este forma se me repite y me da keyviolation

Gracias
Responder Con Cita
  #10  
Antiguo 09-11-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por Petolansa Ver Mensaje
El contador x es la tabla que me cuenta el nro de remito,en teoria, ah posteo el nro de remito asi despues arranco de otro.

Como seria la forma correcta de extraer el ultimo campo de una tabla y sumarle 1, el campo es de tipo integer.
Porque de este forma se me repite y me da keyviolation

Gracias
Ejecuta este codigo en el click del boton, el resultado es el valor que necesitas

Código SQL [-]
Select Max(Campo) + 1 as valor from remito
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
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
mantener el valor guardado Ariel03 OOP 3 23-06-2007 23:09:19
Pasar foto de tabla paradox a otra tabla zugazua2001 Varios 1 09-05-2006 02:15:54
Ayuda con los indices de una tabla paradox JefeNet Conexión con bases de datos 8 25-10-2004 15:33:27
ir a un registro guardado previamente pepe2000 Tablas planas 7 14-01-2004 11:35:19
Migrar una tabla de excel a una tabla de paradox lirio Conexión con bases de datos 1 31-05-2003 20:10:20


La franja horaria es GMT +2. Ahora son las 13:41:34.


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