viernes, 5 de septiembre de 2008

Oracle forms: Cambiar atributo de un elemento del registro actual y no de todos.

Oracle forms: Cambiar atributo de un elemento del registro actual y no de todos.

Oracle forms: Cambiar atributo solo del registro actual.

Oracle forms: Cambiar visualmente un atributo y no todos los del bloque.

 

 

Situación:

Tenemos un bloque de datos del que visualizamos más de un registro a la vez (el típico listado) y queremos cambiar el valor de fondo del campo nombre en aquellos en que esté vacío. El problema es que si usamos el

 

set_item_property ('GENTE_FEA.NOMBRE',BACKGROUND_COLOR, 'r100g100b255');

 

El color se aplicará al campo nombre de todos los registros de ese bloque y solo me interesa que afecte a los vacios.

 

Explicación:

En estos casos nos molesta pero para otros (por ejemplo: no dejar poner nombres en este bloque hasta que el DNI del jefe este completo) nos sirve así que hay que utilizar otro método.

 

Solución:

Crearemos un registro visual con el color que nos interesa y luego en el trigger que utilicemos para determinar si poner o no el color al campo nombre en función de si es o no nulo cambiamos el

 

set_item_property ('GENTE_FEA.NOMBRE',BACKGROUND_COLOR, 'r100g100b255');

 

Por

 

display_item('GENTE_FEA.NOMBRE'','atr_fondo_azulao');

 

Y el cambio solo afectará al item NOMBRE del bloque GENTE_FEA del registro actual y no todos.

  

 

 

 

6 comentarios:

Humbertocv dijo...

gracias por su aporte, me funciono bastante bien, lo utilice dentro de un post_query sin ningun problema me cambio el color en un determinado registro segun mi condicion dada:
if :V_PRO_BUSCA_NRO_ARBOL.ACTIVIDAD = 'BAREJON' then
-- se aplica al cambio de algunos registros segun parametros.
display_item('V_PRO_BUSCA_NRO_ARBOL.ACTIVIDAD','ATRIB_VIS_ACTIVIDAD');

--Se aplica para cambiar nombre a todo una columna
--set_item_property ('V_PRO_BUSCA_NRO_ARBOL.ACTIVIDAD',BACKGROUND_COLOR, 'r100g100b255');

END IF;

Sarvelio Navarro dijo...

Muy agradecido, ya lo habia utilizado pero no me acordaba, reitero mi agradecimiento

Sarvelio Navarro dijo...

Muy agradecido, ya lo habia utilizado pero no me acordaba, reitero mi agradecimiento

Sistema de Informacion dijo...

excelente me ayudo un monton..

Antes cree un atributo visual VA_ASISTIO Y VA_INASISTIO

begin
If :BK_ASISTENCIAS.ASISTENCIA = 'ASISTIO' Then
display_item('BK_ASISTENCIAS.ASISTENCIA ','VA_ASISTIO');
Else
display_item('BK_ASISTENCIAS.ASISTENCIA ','VA_INASISTIO')
End If;

end;

Gracias por el apoyoooooo....!!!!!!

Marco dijo...

Buenos días.

Disculpen saben si se puede cambiar el color de fondo de un botón, e intentado cambiar la propiedad del color de fondo y la propiedad de icono a YES, y en el diseño si se ve del color que le establezco, pero al ejecutarlo se ve como si no tuviera fondo. Cuando le pongo la propiedad de icono NO tanto en el diseño como en la ejecución se muestra gris.

Espero puedan ayudarme.

Gracias

Tomás dijo...

Marco, mira que no entre en contradicción con la propiedad INFORMACIÓN DE SUBCLASE del elemento.

Que versión de Oracle Forms usas?