DBBrowse y DataControls: visualizaci
Publicado: Lun Jun 09, 2008 12:38 pm
Hola a todos,
Tengo un problema al deshabilitar un browse. En el programa hemos dividido
la pantalla en dos: en la parte superior tengo un DBBrowse apuntando a un
dataset y en la parte de abajo tengo varios campos datacontrols para editar
detalles de la fila seleccionada en el browse.
Para evitar que el usuario cambie de fila mientras está editando en la
parte de abajo, deshabilito el browse y lo habilito cuando le da a alguno de
los botones guardar o cancelar (momento que aprovecho para hacer el Update o
Cancel en el dataset).
El funcionamiento es correcto, pero mientras el dataset está en modo Edit
y deshabilito el browse, varios campos calculados que tengo en el dataset
cambian, como si la función que calcula dichos campos no tuviera acceso a
los valores de la BBDD. Consiguientemente los valores de esos campos
calculados de muchas filas son incorrectos, y da lugar a confusión.
Hemos depurado los eventos de edición del dataset y actualización del
browse, y las funciones que asignamos para los campos calculados siempre
reciben los valores del registro que está seleccionado en ese momento, en
lugar de recibir los correspondientes de cada fila.
Por lo tanto, mientras el browse está deshabilitado los campos calculados
muestran en todas las filas los mismos valores que el registro seleccionado.
Al habilitar de nuevo el browse todo vuelve a la "normalidad".
Había pensado en solucionarlo deshabilitando los controles enlazados a la
BBDD (lUpdLinked) para que no actualizara el browse, pero el problema es que
los campos de la parte de abajo son datacontrols, y entonces podemos tener
problemas al actualizar la BBDD.
¿Cómo se puede solucionar esto?
Muchas gracias de antemano,
Javier Jiménez
P.D.: He intentado deshabilitar el browse tanto antes como después de entrar
en modo edición del dataset y el comportamiento es el mismo.
Tengo un problema al deshabilitar un browse. En el programa hemos dividido
la pantalla en dos: en la parte superior tengo un DBBrowse apuntando a un
dataset y en la parte de abajo tengo varios campos datacontrols para editar
detalles de la fila seleccionada en el browse.
Para evitar que el usuario cambie de fila mientras está editando en la
parte de abajo, deshabilito el browse y lo habilito cuando le da a alguno de
los botones guardar o cancelar (momento que aprovecho para hacer el Update o
Cancel en el dataset).
El funcionamiento es correcto, pero mientras el dataset está en modo Edit
y deshabilito el browse, varios campos calculados que tengo en el dataset
cambian, como si la función que calcula dichos campos no tuviera acceso a
los valores de la BBDD. Consiguientemente los valores de esos campos
calculados de muchas filas son incorrectos, y da lugar a confusión.
Hemos depurado los eventos de edición del dataset y actualización del
browse, y las funciones que asignamos para los campos calculados siempre
reciben los valores del registro que está seleccionado en ese momento, en
lugar de recibir los correspondientes de cada fila.
Por lo tanto, mientras el browse está deshabilitado los campos calculados
muestran en todas las filas los mismos valores que el registro seleccionado.
Al habilitar de nuevo el browse todo vuelve a la "normalidad".
Había pensado en solucionarlo deshabilitando los controles enlazados a la
BBDD (lUpdLinked) para que no actualizara el browse, pero el problema es que
los campos de la parte de abajo son datacontrols, y entonces podemos tener
problemas al actualizar la BBDD.
¿Cómo se puede solucionar esto?
Muchas gracias de antemano,
Javier Jiménez
P.D.: He intentado deshabilitar el browse tanto antes como después de entrar
en modo edición del dataset y el comportamiento es el mismo.