Evento asignado
Publicado: Mar Ene 30, 2007 8:52 am
Hola,
En un dbBrowse he asignado un evento de varias maneras, dependiendo del
valor de una variable. Algo así
::odbBrowse1:oDataset := ::oMemDataSet1
SWITCH nValor
CASE 1
::odbBrowse1:onchange := "MiEventoOnChange"
EXIT
CASE 2
::odbBrowse1:onChange := {|a,b,c| Msginfo("Evento onchange") }
EXIT
END
En otra parte del programa quisiera hacer un listado con la tReport. El
listado será sobre un tMemDataSet que está en el odbBrowse1 citado
anteriormente.
El report tiene estas lineas:
WITH OBJECT oReport
:bWhile := {| | !::oMemDataSet1:Eof() }
:bSkip := {| | ::oMemDataSet1:Skip() }
...
...
Parece ser (salvo error u omisión) que el onchange se dispara a cada
iteración del report (incluso si he puesto oMemDataSet1:lUpdLinked := .T.)
Entonces mi pregunta es: ¿hay alguna forma de quitar un evento onchange y
luego volverlo a colocar?
Algo así:
LOCAL miEvento
miEvento := ::oDbBrowse1:Onchange
::odbBrowse1:onChange := {|| .T.}
....
....
::odbBrowse1:onChange := miEvento
Saludos y gracias,
José Luis Capel
PD: Espero haberme explicado bien (no siempre es fácil)
En un dbBrowse he asignado un evento de varias maneras, dependiendo del
valor de una variable. Algo así
::odbBrowse1:oDataset := ::oMemDataSet1
SWITCH nValor
CASE 1
::odbBrowse1:onchange := "MiEventoOnChange"
EXIT
CASE 2
::odbBrowse1:onChange := {|a,b,c| Msginfo("Evento onchange") }
EXIT
END
En otra parte del programa quisiera hacer un listado con la tReport. El
listado será sobre un tMemDataSet que está en el odbBrowse1 citado
anteriormente.
El report tiene estas lineas:
WITH OBJECT oReport
:bWhile := {| | !::oMemDataSet1:Eof() }
:bSkip := {| | ::oMemDataSet1:Skip() }
...
...
Parece ser (salvo error u omisión) que el onchange se dispara a cada
iteración del report (incluso si he puesto oMemDataSet1:lUpdLinked := .T.)
Entonces mi pregunta es: ¿hay alguna forma de quitar un evento onchange y
luego volverlo a colocar?
Algo así:
LOCAL miEvento
miEvento := ::oDbBrowse1:Onchange
::odbBrowse1:onChange := {|| .T.}
....
....
::odbBrowse1:onChange := miEvento
Saludos y gracias,
José Luis Capel
PD: Espero haberme explicado bien (no siempre es fácil)