Ver Mensaje Individual
  #9  
Antiguo 03-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Pues creo que lo tienes fácil:

En el evento BeforePost puedes guardar la cantidad de ese artículo en una variable temporal, hacer un lookup en esa tabla para saber si existe el código, si existe, haces lo que has comentado.

Una opción alternativa es preguntar al usuario si quiere sumar los artículos que ya ha introducido en la linea 20 a los existentes en la línea 2ª. Puesto que tienes en una variable temporal la cantidad de la línea 20 y en la BBDD almacenado, la línea 2, solo tienes que editar el registro y aumentar las cantidades.

Algo de código:
Código Delphi [-]

procedure BeforePost;
var cantidad :Variant;
     cantidad_a:integer; // la duplicada, la actual
begin
  cantidad := tabla.Lookup('codigo_articulo',tablacodigo_articulo.asInteger,'cantidad');
  if not VarisNull(cantidad) then
  cantidad_a :=  tablacantidad.Asinteger // guardamos la cantidad actual;
  codigo_a := tablacodigo_articulo.AsInteger; // guardamos el código
  if Application.Messagebox('Producto duplicado','¿Desea sumar la cantidad actual a la ya existente?',mb_iconquestion+ mbidyesno)= mbYes then
  begin
     query1.sql.text := 'update tabla set cantidad = ' inttostr(cantidad + cantidad_a) + 'where codigo_artículo = ' + inttostr(codigo_articulo);
   query1.Execsql;
  end;

Puede que tenga algunos errores, pero más o menos es así.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita