¿Cómo puedo habilitar o deshabilitar por código una columna en el programa Power Builder?

Como habillitar o deshabilitar por código una columna en un datawindow
1

1 respuesta

Respuesta
1
Tienes 2 formas de hacerlo
La primera:
Cada columna del datawindow contiene una propiedad llamada TAB ORDER, esta propiedad realmente es controlada con el nombre TABSEQUENCE, puedes modificar el valor de esta, por medio de dos formas
Por ejemplo una columna de nombre emp_name
1- dw_1.Object.emp_name.TabSequence = 0
2- dw_1.Modify("emp_name.TabSequence = 0")
El valor 0 significa que la columna no tiene ningún foco de edición.
Igualmente puede utilizar la propiedad PROTECT
dw_1.Object.emp_name.Protect=1
dw_1.Modify("emp_name.Protect=1")
La segunda.
Esto puede ser igualmente una protección automática. Ya sea que este basada en una condición manual o del propio datawindow.
Cada una de las propiedades contiene un área disponible para poder escribir alguna condición o condiciones que determinen un resultado, este resultado es integrado en dicha propiedad por ejem.
Digamos que necesitas que una columna solo pueda ser editada en el momento de que el registro a que pertenece sea un registro nuevo,
IF( isRowNew(), 0, 1)
Como veras en la condición existe una función que determina si el registro es nuevo o no, si lo es, entonces la propiedad toma el valor 0, que significa que no esta protegida, (en otras palabras apagado), de lo contrario toma el valor 1, que significa que si se encuentra protegido.
El efecto es el que persigues, que en determinado momento dicha o dichas columnas estés disponibles para la edición o no.
De la forma manual es muy similar a la de la función, la idea es que añadas una columna en tu datawindow, del tipo numérico, esta puede tomar un valor inicial, digamos 1 o 0, dependiendo de lo que necesites hacer.
Ahora por cada columna que necesites encender o apagar la condición deberá ser.
IF((edit=1), 0, 1)
Esto en el caso que la columna que consideres para este fin le llamaes "EDIT"
La condición realmente no existe porque eres tu por medio del código que manipulas el permiso de edición.
Por ejemplo un botón que indique edición.
Este botón internamente lo que hacer es.
dw_1. SetItem(<fila>, 'edit', 1)
Por lo que cuando la columna edit tome el valor 1, todas las columnas que tengan un condicionante de protección con este valor, apagaran dicha protección.
Ahora solo queda que seas tu quien decida cual es la técnica que vas a seguir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas