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); 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); PD. Remito es lo que llaman en otros paises albaran. Desde ya muchas gracias por su tiempo. |
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 |
SI perdon paso a explicarme mejor
El campo contador me guarda de la siguiente forma
Código:
Registro Numremito Y lo del remito y remito detalle, me guarda una linea de ambos, por ejemplo, Código:
TABLA REMITO Código:
TABLA REMITODETALLE 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? |
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
|
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 |
lo haces bien entonces, puedes colocar la parte donde vacias la tabla rxMemoryTable para analizarlo??
|
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 |
prueba estas sugerencias
|
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 |
Cita:
|
La franja horaria es GMT +2. Ahora son las 07:47:19. |
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