Power Builder - lanzar evento itemchanged

 
Vista:

lanzar evento itemchanged

Publicado por Rosana (9 intervenciones) el 21/05/2003 18:47:09
Hola una vez mas.
Tengo un "ligero" problema: no se como hacer que se me lance el itemchanged. Os explico: tengo un dw "pegado" a una ventana, llamemosle dw_apoyo. En el itemchanged de dicho dw reseteo otros dw de la misma ventana (por ejemplo dw_datos) cuyos datos estan relacionados con datos de dw_apoyo y realizo un retrieve de dw_datos. ¿cual es el problema? yo inicializo el dw_apoyo con unos valores estandar, y al cambiar uno de ellos (y no cambiar mas) y por ejemplo pinchar un boton no me lanza el itemchanged del dw_apoyo por lo que no resetea dw_datos. En dicho boton tengo puesto un acceptext de dw_apoyo. He intentado hacer un triggerevent del itemchanged en el evento losefocus del dw_apoyo, pero lo unico que hace es recargarme los datos (ademas de forma incorrecta) y tener "efectos visuales non gratos" para el usuario. ¿Podriais decirme como hago para que me lance el itemchanged cuando pierda el foco pero que si no ha cambiado nada en dw_apoyo no lo lance?. Por si acaso: trabajo con PB 6.5

Gracias de antemano y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:lanzar evento itemchanged

Publicado por Ricardo (1957 intervenciones) el 21/05/2003 23:35:17
Hola que tal:

1. Recuerda que el evento ItemChanged solo se dispara al detectar cambios en el dw actual.

Asi que si nada cambia en dw_apoyo este evento no será ejecutado.

2. Si tienes un boton en dw_apoyo el cual es el que controla la accion entonces el evento que necesitas programar es el buttonclicked.

Creo que ahi esta el detalle.

Un Saludo y Suerte !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:lanzar evento itemchanged

Publicado por eduardo.v (208 intervenciones) el 22/05/2003 03:22:16
¿Porque no creas una variable de instancia de tipo numerico y la trabajas en el itemchanged?
por ejemplo
integer ii_edita
en le open de tu ventana
ii_edita=0
en el itemchanged de tu datawindows colocas
ii_edita=1
luego puedes setear la variable (ii_edita=0) en le evento grabar por ejemplo o al final del evento de tu boton.
te recomiendo tambien que las rutinas que haces en los otros datawindows las incluyas en un evento de usuario al que puedas llamar
desde el losefocus de tu datawindows o de algun boton dependiendo del estado de la variable.
espero haberte dado alguna idea
Saludos desde Peru

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aclaracion (para Ricardo)

Publicado por Rosana (9 intervenciones) el 22/05/2003 09:27:11
Antes de nada, agradeceros a ambos vuestras respuestas. Y hacer una aclaracion a Ricardo. Sí cambio algo del evento itemchanged, cambio un campo que curiosamente es un editmask de fecha ¿puede estar ahi el problema, en que sea un editmask? Al cambiar dicha fecha y pinchar en cualquier otro lado(excepto el propio dw, logicamnete) , el itemchanged no salta y no se me refrescan los dw de datos asociados al de apoyo (es en el itemchanged donde estan las instrucciones para dicho refresco) ya que al no pinchar en el propio dw no salta (juro que llevo 3 años trabajando con PB y jamas me habia dado cuenta de este problema).

Saludos desde Segovia (España)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aclaración

Publicado por Milson Cardona (613 intervenciones) el 22/05/2003 21:45:28
Un saludo especial desde COLOMBIA

Este efecto que mencionas, no se debe a que sea un campo editmask, sino que cualquier cambio que hagas en cualquier campo de un datawindow y no lo le apliques cualquier instrucción que accepte el cambio (Enter, tab, OJO Click en otro campo pero del mismo DW), no dispara el ITEMCHANGE... lo puedes probar

OJO: como te decia antes, el problema es que si haces un cambio en un campo de un DW y das click en cualquier otro objeto de la ventana que no sea el mismo DW, el cambio no dispara el ITEMCHANGE, independiente que el campo sea EDITMASK o EDIT.

hay otras mascaras que inmediatamente se hace un cambio en el campo se dispara el ITEMCHANGE pero porque son de selección, como por ejemplo los CHECK, los DDDW, los DDLB y el resto del mismo estilo que los anteriores

espero que te sirva la aclaración, y si alguién tiene una información contraria a esta, le pido el favor la publique para saber si esto en un error y así crecer todos .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aclaración

Publicado por Rosana (9 intervenciones) el 23/05/2003 11:55:55
Mil gracias Milson.

En efecto, estuve documentandome sobre el evento itemchanged y estas en lo cierto. Puse una nota en el foro (pero me despiste y no la puse dentro de este tema) y pude solucionar el problema poniendo en el evento losefocus del mismo dw (dw_apoyo) un accepttext(). Espero que os pueda servir, para las necesidades de mi programa funciona correctamente.

Saludos desde Segovia (España)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aclaración

Publicado por Dani (1 intervención) el 27/06/2011 17:15:26
Pues creo que estas equivocado.

Tengo un DW en el que tengo un campo de tipo fecha editable, no es edismask. En el editchange tengo codigo que corrige cada vez que el usuario teclea algo incorrecto, ya que el formato que necesito es del tipo XX/XXXX. El caso es que cuando detecto que se ha terminado deintroducir correctmente el año, hago un accepttext(), en efecto el debug pasa por encima, pero no se lanza el itemchange cuando cambio el foco a otro campo del mismo DW.

Si alguien sabe la solucion que lo comente por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 9 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

lanzar evento itemchanged

Publicado por david (2 intervenciones) el 13/04/2021 20:17:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
 Autor : David Montenegro Sarmiento
Fecha : 13/04/2021
Finalidad : Actualizar datos en grilla
evento : itemchanged()
*/
 
dw_filtro.accepttext( ) // asegurate de poner esta linea antes de la llamada al evento retrieve
 
choose case dwo.name
	case 'ad_fecini', 'ad_fecini'
		parent.postevent( 'ue_retrieve')
 
end choose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar