Página 1 de 1

Browse... Edit

Publicado: Mié Dic 28, 2005 12:37 pm
por Xevi
Adjunto un ejemplo que cuando estoy en Edición de una columna, en este caso
la 2, si termino validando la edición del Edit de la Segunda columna, quiero
que automáticamente se Edite la columna 4.
Bien, el caso es que SI salta al Edit de la columna 4, pero NO MUESTRA EL
CURSOR !!!
Creo que se trata de un error del Edit, al perder/volver el foco, pues
cuando edito columna por columna, no hay ningún problema.
Un Saludo,
Xevi.


Attached files Browse.zip (1.9 KB)Â

Browse... Edit

Publicado: Mié Dic 28, 2005 2:14 pm
por jfgimenez
Xevi,
> Adjunto un ejemplo que cuando estoy en Edición de una columna, en este
> caso la 2, si termino validando la edición del Edit de la Segunda columna,
> quiero que automáticamente se Edite la columna 4.
> Bien, el caso es que SI salta al Edit de la columna 4, pero NO MUESTRA EL
> CURSOR !!!
>
> Creo que se trata de un error del Edit, al perder/volver el foco, pues
> cuando edito columna por columna, no hay ningún problema.
El problema es que estás llamando a :Edit() indirectamente desde el evento
OnPostEdit(), sin dejar que termine de procesarse. Cambia la línea:
If( lSiguiente, ::ArrayBrowse1KeyDown(,0), )
por:
If( lSiguiente, ::oArrayBrowse1:PostMsg( WM_KEYDOWN ), )
y verás que así sí funciona.
No obstante, me parece un poco enredado. ¿No es mejor poner nEditType :=
beGET en las columnas que quieras editar y dejar al browse que se encargue?
--
Un saludo,
José F. Giménez

Browse... Edit

Publicado: Mié Dic 28, 2005 2:45 pm
por Xevi
Jose,
> El problema es que estás llamando a :Edit() indirectamente desde el evento
> OnPostEdit(), sin dejar que termine de procesarse.
Y... ¿Que evento es el que se lanza cuando termina el PostEdit???
¿Hay algun Evento OnExitEdit????
¿Cómo se puede controlar cuando se ha TERMINADO ya la edición???
> Cambia la lí­nea:
> If( lSiguiente, ::ArrayBrowse1KeyDown(,0), )
> por:
> If( lSiguiente, ::oArrayBrowse1:PostMsg( WM_KEYDOWN ), )
> y verás que así­ sí­ funciona.
Si, funciona correctamente, Gracias.
> No obstante, me parece un poco enredado. ¿No es mejor poner nEditType :=
> beGET en las columnas que quieras editar y dejar al browse que se encargue?
Este ejemplo es lo mas sencillo que he podido hacer para mostrar el efecto que obtengo.
Lo que yo estoy haciendo, es una entrada de lí­neas de Venta, en Las que dependiendo de un valor de una determinada columna, necesito poder entrar a editar otra columna, PERO sólo si la primera columna cumple unas determinadas opcioNes, y sólo en algunos casos voy a entrar a editar la segunda columna, SIN poder RETROCEDER a la primera columna... en fin... que es para que el usuario lo tenga fácil de usar, yo lo tengo difí­cil de programar...
Un Saludo,
Xevi.
Felicitats i Bon any 2006
Felicidades y Próspero año 2006.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43b28fa0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
> Xevi,
>
>> Adjunto un ejemplo que cuando estoy en Edición de una columna, en este
>> caso la 2, si termino validando la edición del Edit de la Segunda columna,
>> quiero que automáticamente se Edite la columna 4.
>> Bien, el caso es que SI salta al Edit de la columna 4, pero NO MUESTRA EL
>> CURSOR !!!
>>
>> Creo que se trata de un error del Edit, al perder/volver el foco, pues
>> cuando edito columna por columna, no hay ningún problema.
>
> El problema es que estás llamando a :Edit() indirectamente desde el evento
> OnPostEdit(), sin dejar que termine de procesarse. Cambia la lí­nea:
> If( lSiguiente, ::ArrayBrowse1KeyDown(,0), )
> por:
> If( lSiguiente, ::oArrayBrowse1:PostMsg( WM_KEYDOWN ), )
> y verás que así­ sí­ funciona.
>
> No obstante, me parece un poco enredado. ¿No es mejor poner nEditType :=
> beGET en las columnas que quieras editar y dejar al browse que se encargue?
>
> --
> Un saludo,
>
> José F. Giménez
>
>
>
--

Browse... Edit

Publicado: Mié Dic 28, 2005 6:27 pm
por _support_

"Xevi" <xevicomas@terra.es> escribió en el mensaje news:43b29712$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Jose,
> El problema es que estás llamando a :Edit() indirectamente desde el evento
> OnPostEdit(), sin dejar que termine de procesarse.
Y... ¿Que evento es el que se lanza cuando termina el PostEdit???
¿Hay algun Evento OnExitEdit????
¿Cómo se puede controlar cuando se ha TERMINADO ya la edición???
> Cambia la lí­nea:
> If( lSiguiente, ::ArrayBrowse1KeyDown(,0), )
> por:
> If( lSiguiente, ::oArrayBrowse1:PostMsg( WM_KEYDOWN ), )
> y verás que así­ sí­ funciona.
Si, funciona correctamente, Gracias.
> No obstante, me parece un poco enredado. ¿No es mejor poner nEditType :=
> beGET en las columnas que quieras editar y dejar al browse que se encargue?
Este ejemplo es lo mas sencillo que he podido hacer para mostrar el efecto que obtengo.
Lo que yo estoy haciendo, es una entrada de lí­neas de Venta, en Las que dependiendo de un valor de una determinada columna, necesito poder entrar a editar otra columna, PERO sólo si la primera columna cumple unas determinadas opcioNes, y sólo en algunos casos voy a entrar a editar la segunda columna, SIN poder RETROCEDER a la primera columna... en fin... que es para que el usuario lo tenga fácil de usar, yo lo tengo difí­cil de programar...
Un Saludo,
Xevi.
Felicitats i Bon any 2006
Felicidades y Próspero año 2006.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43b28fa0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
> Xevi,
>
>> Adjunto un ejemplo que cuando estoy en Edición de una columna, en este
>> caso la 2, si termino validando la edición del Edit de la Segunda columna,
>> quiero que automáticamente se Edite la columna 4.
>> Bien, el caso es que SI salta al Edit de la columna 4, pero NO MUESTRA EL
>> CURSOR !!!
>>
>> Creo que se trata de un error del Edit, al perder/volver el foco, pues
>> cuando edito columna por columna, no hay ningún problema.
>
> El problema es que estás llamando a :Edit() indirectamente desde el evento
> OnPostEdit(), sin dejar que termine de procesarse. Cambia la lí­nea:
> If( lSiguiente, ::ArrayBrowse1KeyDown(,0), )
> por:
> If( lSiguiente, ::oArrayBrowse1:PostMsg( WM_KEYDOWN ), )
> y verás que así­ sí­ funciona.
>
> No obstante, me parece un poco enredado. ¿No es mejor poner nEditType :=
> beGET en las columnas que quieras editar y dejar al browse que se encargue?
>
> --
> Un saludo,
>
> José F. Giménez
>
>
>
--