Tengo un datawindow que muestra varias filas. Estas no me interesa que se puedan editar pero si que puedan seleccionarse y de alguna forma, o haciendo doble click en la fila o seleccionando la fila y pulsando Aceptar pueda abrir otro datawindow con el detalle completo de esa fila.
1 respuesta
Respuesta de Antonio Garcia
1
1
Antonio Garcia, clipper todas sus versiones (manejo total) power builder todas...
Ok: Para impedir la edición de una columna, simplemente colocas la propiedad tab-order en 0, esta propiedad es visualizada uno, pusalndo directamente en el botón del icono correspondiente, dos, vas al menu superior, seleccionas la opción FORMAT, y la ultima opción es TAB ORDER, haces click en ella y automáticamente es presentado los tab-order de cada columna. Esta propiedad es utilizada para diseñar el orden en que debe navegar el usuario cuando pulsa tab, va numerado de 10 en 10 y su re-numeración en caso de modificarlo, es automática, cuando esta propiedad posee el valor 0 (cero) la columna no le es permitida la edición, Igualmente podrías dejar la propiedad tal cual, y buscar por cada uno de los edits, otra propiedad que se encuentra en la pestaña de edit, la cual es DISPLAY ONLY, esta determina a el edit que no permita la edición más si la selección, y en caso que el área de visualización se menor al de recepción del campo este tendrá un efecto de scroll horizontal. Por lo demás para poder efectuar un proceso seguido de una acción, te recomiendo que utilices uno de dos eventos integrados en el datawindow: Clicked() Doubleclicked() Uno es accionado cuando haces click sobre una fila, y el otro cuando haces doble click, estos eventos devuelven información vital para poder manejar las filas o columnas, row = a la fila actual, esta puede ser 0 (cero), lo que significa que el click o doble click fue hecho sobre la cabecera del datawindow object. Dwo = el objeto (data object) relacionado con la columna, el cual posee varias propiedades como name (nombre), etc., la descripción de las propiedades, puedes encontrarla en la ayuda online de pb. Simplemente das F1, y escribe dwo xpos: indica la intentar sobre la coordenada x. Ypos: indica la intentar sobre la coordenada y. Con respecto a abrir ventanas una detrás de la otra Primero te recomiendo que abras ventanas tipo RESPONSE, puesto que esta impide que cualquier cosa sea ejecutada, hasta que dicha ventana no fuera cerrada. Pero cuidado, no podrás abrir más de 2 ventanas de este tipo una sobre la otra. En caso de no utilizar la ventana response para la ventana secundaria, tendrías que verificar antes de cerrar tu ventana que posee los datos en el datawindow, si la ventana que presenta el resto de información por fila, esta o no abierta, para cerrarla y así no quedara esa ventana huérfana si es cerrada quien la abre. Los eventos antes mencionados también devuelven un valor, este es de tipo numérico, y sus posibilidades son: 0 (cero) para mantener el proceso normal Y cualquiera que no sea cero, por ejemplo 1, para suspender el proceso normal de evaluación interna. Ademas existe en el datawindow y en todos los objetos, la posibilidad de añadir nuevos eventos, los cuales pueden ser propios o del usuario, entre ellos encontraras un evento id, que esta relacionado con el evento key, su nombre es pb_dwnkey, en su defecto puedes utilizar pb_keydown, pb_keyup. Esto es útil en el caso que no encuentres el integrado a tu datawindow el evento key, en este puedes controlar las acciones dadas por el teclado, al igual que los anteriores eventos, también este envía al usuario 2 parámetros, key keyflags Uno contiene la tecla pulsada en el teclado Y el otro indica si esta siendo pulsada una tecla de sistema, SHIFT, CONTROL o incluso los botones del ratón. Al igual que los anteriores, también retorna un valor tipo numérico con las mismas consecuencias que los antes citados. Los posibles valores de key y keyflags, puedes verlos en la ayuda online, de pb., generalmente utilizaras una instrucción CHOOSE CASE para poder determinar la tecla pulsada, esto claro en el caso de pensar en controlar varias teclas o posibilidades de pulsación de teclas, es aquí donde evalúas acciones como cuando el usuario pulsa ENTER.