miércoles, 13 de abril de 2011

APLICACION EN FORMS, FORMULARIO CON 2 BLOQUES

El codigo que utilizo para insertar es:

DECLARE
prov number;
nped number;
-- FIN number;

BEGIN
--Comprobamos que se ha indicado el numero de pedido
if nvl(length(:pedidonuevo.pedido#),0)=0 then
bell;
message(' Error indique el numero de pedido ');
raise form_trigger_failure;
end if;

-- Comprobamos que que se ha indicado el proveedor y dicho proveedor existe
if nvl(length(:pedidonuevo.proveedor),0)=0 then
bell;
message(' Error indique el codigo del proveedor ');
raise form_trigger_failure;
end if;
select prov# into prov from Proveedor where Proveedor.prov#=:Pedidonuevo.Proveedor;
--Al seguir sabemos q si existe el proveedor

--Comprobamos que se ha indicado la linea de pedido
if nvl(length(:lineadepedidonuevo.linea),0)=0 then
bell;
message(' Error indique el numero de linea de pedido ');
raise form_trigger_failure;
end if;

--Comprobamos que el codigo del producto
if nvl(length(:lineadepedidonuevo.producto),0)=0 then
bell;
message(' Error indique el codigo del producto ');
raise form_trigger_failure;
end if;

--Comprobamos que el nombre del producto
if nvl(length(:lineadepedidonuevo.nom_producto),0)=0 then
bell;
message(' Error indique el nombre del producto ');
raise form_trigger_failure;
end if;

--Comprobamos que se ha indicado la cantidad
if nvl(length(:lineadepedidonuevo.cantidad),0)=0 then
bell;
message(' Error indique la cantidad ');
raise form_trigger_failure;
end if;

--Comprobamos que la cantidad es mayor que 0
if :lineadepedidonuevo.cantidad<=0 then
bell;
message(' Error la cantidad tiene que ser mayor que 0 ');
raise form_trigger_failure;
end if;

--Si todo ha ido bien hacemos los insert correspondientes
insert into Pedido values(:Pedidonuevo.pedido#,:Pedidonuevo.proveedor, :Pedidonuevo.fecha, :Pedidonuevo.Empleado);
insert into LineadePedido values(:LineadePedidonuevo.linea,:Pedidonuevo.pedido#,:LineadePedidonuevo.producto, :LineadePedidonuevo.nom_producto,:LineadePedidonuevo.cantidad);

--last_record;
--end loop;

bell;
message(' Pedido nuevo grabado ');

commit;

EXCEPTION
WHEN NO_DATA_FOUND THEN
bell;
message(' Error DATOS NO EXISTENTES ');

WHEN DUP_VAL_ON_INDEX THEN
BELL;
MESSAGE('ERROR NO SE PUEDE GRABAR CLAVE DUPLICADA ');

END;

No hay comentarios:

Publicar un comentario