Yo tengo una user object datawindow y programe el evento para cambiar de colo las columnas

Deseo que me ayudes, tengo mucha confianza en los expertos de aquí, mi problema es que yo tengo una user object datawindow y programe el evento itemfocuschanged para que el fondo de cada columna cambie de color cuando obtiene el focus, pero esto hace que el comportamiento de los campos sea bien raro, en algunos casos me copia la información escrita en el campo anterior, y en los campos de fecha con edit mask al obtener el foco la fecha se me pone en 00/00/0000 no se que hacer la verdad no entiendo donde esta el problema.

1 Respuesta

Respuesta
1
Creo entender tu problema, primero debes afrontar que power builder no es un lenguaje orientado a objetos sino que orientado a eventos, esto significa que trabaja por medio de disparadores según las actividades,
La iniciativa que me planteas suena bien, pero seguramente se complica cuando crecen tus campos, o simplemente utilizas el ratón y no el teclado, en fin, dolor de cabeza.
La manera más simple de hacer esto es programarlo directamente en el datawindow, cada control de este, posee propiedades, y alguna de estas pueden aceptar un script que configure o condicione su comportamiento, este script esta soportado por un conjunto de funciones que permiten hacer prácticamente lo que necesitas.
Por ejemplo
Digamos que necesitas que una columna cambie de color del negro al rojo dependiendo de su valor, si es positivo, negro, y si negativo entonces rojo.
En la propiedad color, colocas el siguiente script
Asumo que la columna se llama monto.
if((monto < 0), rgb(255, 0, 0), rgb(0,0,0))
Recuerda que esto debe ser incluido en la propiedad del objeto en el datawindow, digamos en un edit.
El efecto sera que cuando el valor de la columna monto sea positivo, este sera pintado en negro, y si es positivo, en rojo.
De igual forma funcionan todas las propiedades de un dataobject, ademas puedes utilizar funciones propias, que permiten saber lo que esta sucediendo con la tabla, o el datawindow, por ejemplo si es un registro nuevo, la posición del registro, y muchas cosas más, y si esto no es suficiente, siempre puedes generar tus propias funciones las cuales externamente efectúen ciertos algoritmos, y resuelvan según tus necesidades, la única salvedad para utilizar tus propias funciones es que estas deben ser declaradas como publicas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas