Oracle - Duda con código

   
Vista:

Duda con código

Publicado por Laura (1 intervención) el 20/10/2007 12:28:38
Escribo el siguiente código en el disparador WHEN-NEW-ITEM-INSTANCE y no habilita ni deshabilita el campo código de alumno :(

BEGIN
IF :SYSTEM.MODE <> 'ENTER-QUERY' THEN
SET_ITEM_PROPERTY ('ALUMNO.CODIGO', ENABLED, PROPERTY_FALSE);
END IF;
IF :SYSTEM.MODE = 'ENTER-QUERY' THEN
SET_ITEM_PROPERTY ('ALUMNO.CODIGO', ENABLED, PROPERTY_TRUE);
END IF;
END;

FRM-41032: No se puede definir el atributo ENABLED del elemento ALUMNO.CODIGO actual.

¿Alguien porfavor me puede decir en que me equivoco? Gracias.
Por cierto trabajo con Developer Oracle.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda con código

Publicado por hector (126 intervenciones) el 23/10/2007 04:18:25
Hola.
El problema no es el trigger, sino el lugar.
Lo que pasa es que cuando el trigger se dispara, tu ya 'tienes foco' en el campo alumno.codigo y por eso ya forms no puede cambiarlo.

Para evitar eso tienes que mover tu codigo a otro lado, por ejemplo el pre-text del campo o tal vez al when-new-record-instance o al pre-record de bloque alumno.

Por otro lado, aunque no cambia en nada el codigo que programaste, por claridad yo le haria un cambio, en vez de poner un if, pondria el segundo if en un else, dejando el codigo asi:

BEGIN
IF :SYSTEM.MODE <> 'ENTER-QUERY' THEN
SET_ITEM_PROPERTY ('ALUMNO.CODIGO', ENABLED, PROPERTY_FALSE);
Else
SET_ITEM_PROPERTY ('ALUMNO.CODIGO', ENABLED, PROPERTY_TRUE);
END IF;
END;

Ojala te sirva, y quedo a tus ordenes (y de todos los foristas).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con código

Publicado por katty (1 intervención) el 19/11/2007 15:51:50
Hola,
yo hago lo mismo y me arroja el mismo error. Este es mi código:

Declare
it_id Item;
Begin
it_id := Find_Item('SWRREGA.ACTIVAR_DESACTIVAR');

Set_item_property(it_id,ENABLED,PROPERTY_FALSE);

if ( :EXISTE_BD:='S - Si existe') then
Set_item_property(it_id,ENABLED,PROPERTY_TRUE);
else
Set_item_property(it_id,ENABLED,PROPERTY_FALSE);
end if;

end;

Segun lo que diga en el campo :EXISTE_BD es si activo o no el botón SWRREGA.ACTIVAR_DESACTIVAR'.
Esto lo programe en el trigger WHEN-NEW-RECORD-INSTANCE, pero igual no me funciona, me aparece un mensaje con el siguiente error:

FRM-41032: no es posible definir el atributo ENABLED del articulo actual 'SWRREGA.ACTIVAR_DESACTIVAR'.

Si alguien me puede ayudar.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con código

Publicado por Delfina (1 intervención) el 26/12/2007 18:37:04
Hola Katty,

Tambien me ocurre lo mismo, pudiste solucionarlo??

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar