TDBBrowse y el Control de las columnas
Publicado: Mar Dic 13, 2005 9:00 pm
Perdonad que insista tanto pero sigue sin funcionarme
Voy a ver si consigo plantear la cuestión
Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos TABLA N
2 y TEXTO C 30
Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el siguiente
método
METHOD BtnNewClick( oSender ) CLASS TTABLAS
::Add(oSender)
RETURN Nil
METHOD ADD(oSender) CLASS TTABLAS
local nK
::nAlta := 1
::oDbfTab:AddNew() //Creo un registro
::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
::oBrwTab:Edit() //Edito el registro
RETURN NIL
Y efectivamente funciona ,aparece el control de edición en el primer
registro y primera columna
En el objeto TBrwColumn de la columna FICHA (la primera) he activado el ON
PostEdit
METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
local lOk
MsgInfo("Me evaluo 1")
if lCanceled
if MsgNoYes("¿Desea salir de la edición ?")
::oDbfTab:Delete()
::oBrwTab:GoTop()
retu nil
endif
endif
if AppData:oDbfTab:Seek(strzero(Value,2))
MsgAlert("Clave ya existe")
::oBrwTab:aCols[1]:Select()
::oBrwTab:Edit()
else
::oDbfTab:TABLA := Value
::oDbfTab:Update()
::oBrwTab:refresh()
endif
RETURN Nil
Si esto funcionara correctamente cuando pulso un valor e intro en la columna
"FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje "Me
evaluo 1" .
Este mensaje ,como el resto de las instrucciones del evento se evaluan
despues de editar la columna "TEXTO" ,es decir , la última
Alguien sabe por qué ? Se supone que debería evaluar el PostEdit de cada
columna ,despues de editar la columna y no despues de la última columna
Ruego me ayudeis porque ya no se lo que hacer y no me parece profesional
editar un formulario para 2 campos
Un saludo . Juan José García.
Voy a ver si consigo plantear la cuestión
Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos TABLA N
2 y TEXTO C 30
Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el siguiente
método
METHOD BtnNewClick( oSender ) CLASS TTABLAS
::Add(oSender)
RETURN Nil
METHOD ADD(oSender) CLASS TTABLAS
local nK
::nAlta := 1
::oDbfTab:AddNew() //Creo un registro
::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
::oBrwTab:Edit() //Edito el registro
RETURN NIL
Y efectivamente funciona ,aparece el control de edición en el primer
registro y primera columna
En el objeto TBrwColumn de la columna FICHA (la primera) he activado el ON
PostEdit
METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
local lOk
MsgInfo("Me evaluo 1")
if lCanceled
if MsgNoYes("¿Desea salir de la edición ?")
::oDbfTab:Delete()
::oBrwTab:GoTop()
retu nil
endif
endif
if AppData:oDbfTab:Seek(strzero(Value,2))
MsgAlert("Clave ya existe")
::oBrwTab:aCols[1]:Select()
::oBrwTab:Edit()
else
::oDbfTab:TABLA := Value
::oDbfTab:Update()
::oBrwTab:refresh()
endif
RETURN Nil
Si esto funcionara correctamente cuando pulso un valor e intro en la columna
"FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje "Me
evaluo 1" .
Este mensaje ,como el resto de las instrucciones del evento se evaluan
despues de editar la columna "TEXTO" ,es decir , la última
Alguien sabe por qué ? Se supone que debería evaluar el PostEdit de cada
columna ,despues de editar la columna y no despues de la última columna
Ruego me ayudeis porque ya no se lo que hacer y no me parece profesional
editar un formulario para 2 campos
Un saludo . Juan José García.