Dw

Hola, lo que pasa es que tengo una ventana tipo factura, y estoy implementadola para que al ingresar el código de item en un de los campos de la grilla y luego salte con un tab al siguiente se muestre datos del item ingresado como descripción, precio, etc, lo que he hecho es una sentencioa sql que busca el item ingresado, lo puse en el evnto itemchanged del dw pero pasa que cuando salto con el tab la primer vez no hace nada, a partir de otro tab recién reacciona al evento como puedo validar para que actúe a la primera y solo si el salto proviene de la columna donde ingreso la data... Ademas cuando quiero grabar el dato ingresado que es tipo maskedit no guarda la mascara solo la data gracias
Respuesta
1
Los eventos que poseen los objetos de pb son triggers, y estos se disparan cuando ocurre una acción, en principio cuando pasas por un campo cualquiera que sea, este posee un valor nulo, y pb evalúa si ha existido cambio en el campo, sino ha existido entonces asume que no debe disparar sus triggers, una opción es utilizar la función ACCEPTTEXT() que provoca al datawindow a revaluar sus campos, sin embargo esto esta basado en lo anterior y tampoco es de confiar.
Para presentar la información relacionada con el item, puedes optar por las siguientes opciones.
Por ejemplo:
Un item debe relacionar una descripción.
1ero. Crear un datawindow de la tabla que posea la información del item, el cual puede presentar la información más significativa, por ejemplo el código y la descripción.
(Aunque esto no es necesario)
2do. En el datawindow de la factura, añades al lado del campo item, otro de esta misma columna, este por omisión se llamara item_1, este campo deberá ser de solo lectura, o sea que no necesariamente tiene taborder, y en las propiedades del campo en la pestaña de EDIT en la casilla de STYLE TYPE seleccionas la opción de DropDownDW, completas la información adicional la cual refiere al nombre del datawindow (que sera el que acabas de crear basado en la información del item), y defines cual es el campo que se despliega (en este caso la descripción ) y el otro que es el dato llave que relaciona el campo con el registro (data column)
Y esto es todo
Cada vez que el campo item tenga un valor el item_1 lo replica y traslada la petición a el datawindow relacionado con este y presenta su descripción
Las consecuencias de utilizar muchos campos relacionados en este tipo, es que el sistema puede bajar de rendimiento por causa de las peticiones del datawindow, hacia los datawindows internos, pues cada vez que el cursor pasa por una linea, esto es activado (recuerda que son triggers), o cada vez que la ventana es cargada.
Existen otras formas de efectuar estas tareas sin recargar tanto el sistema, pero esto implica más escritura, y más dedicación al programa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas