Campo fantasma en DataSet
Publicado: Jue Sep 08, 2005 11:10 pm
Necesito de un campo "fantasma" en un DBBrowse.
Lo que pretendo es tener una columna que contendrá un valor que no está guardado en ningun campo de la DBF, sinó que lo voy a cambiar según se desarrolle la aplicación...
Bien, creo un campo cualquiera en el DataSet.
METHOD DbfDataSet2Create( oSender ) CLASS TFrmRebutsBancaris
::oDbfDataSet2:lOpen := .T.
::oDbfDataSet2:AddCalcField( "X", {|| "S" } )
RETURN Nil
Luego lo incluyo en el DBBrowse, en la columna1 que la he creado "vacia" para este menester...
METHOD Browse2Create( oSender ) CLASS TFrmRebutsBancaris
::oBrowse2:aCols[1]:oDataField := "X"
RETURN Nil
Bien, al visualizar el Browse... se visualizan TODOS los registros con la columna1 con una S, correcto hasta aquí.
Luego... cuando piche doble clic, quiero que cambie el valor de S a N...
METHOD Browse2DblClick( oSender, nKeys, nCol, nRow ) CLASS TFrmRebutsBancaris
MsgInfo( ::oDbfDataSet2:X ) //Ahi me informa correctamente... el valor es S
::oDbfDataSet2:X := If( ::oDbfDataSet2:X == "S", "N", "S" )
::oDbfDataSet2:Update()
MsgInfo( ::oDbfDataSet2:X ) //Ahí el valor sigue siendo S ¿?
::oDbfDataSet2:Refresh()
MsgInfo( ::oDbfDataSet2:X ) //Y sigue siendo S ¿?
::oBrowse2:Refresh()
MsgInfo( ::oDbfDataSet2:X ) //Y sigue siendo S ¿?
RETURN Nil
Por lo que tengo entendido, se pueden tener campos calculados o fantasmas, pero...
¿Que hago mal????
Gracias,
Un Saludo,
Xevi.
--
Lo que pretendo es tener una columna que contendrá un valor que no está guardado en ningun campo de la DBF, sinó que lo voy a cambiar según se desarrolle la aplicación...
Bien, creo un campo cualquiera en el DataSet.
METHOD DbfDataSet2Create( oSender ) CLASS TFrmRebutsBancaris
::oDbfDataSet2:lOpen := .T.
::oDbfDataSet2:AddCalcField( "X", {|| "S" } )
RETURN Nil
Luego lo incluyo en el DBBrowse, en la columna1 que la he creado "vacia" para este menester...
METHOD Browse2Create( oSender ) CLASS TFrmRebutsBancaris
::oBrowse2:aCols[1]:oDataField := "X"
RETURN Nil
Bien, al visualizar el Browse... se visualizan TODOS los registros con la columna1 con una S, correcto hasta aquí.
Luego... cuando piche doble clic, quiero que cambie el valor de S a N...
METHOD Browse2DblClick( oSender, nKeys, nCol, nRow ) CLASS TFrmRebutsBancaris
MsgInfo( ::oDbfDataSet2:X ) //Ahi me informa correctamente... el valor es S
::oDbfDataSet2:X := If( ::oDbfDataSet2:X == "S", "N", "S" )
::oDbfDataSet2:Update()
MsgInfo( ::oDbfDataSet2:X ) //Ahí el valor sigue siendo S ¿?
::oDbfDataSet2:Refresh()
MsgInfo( ::oDbfDataSet2:X ) //Y sigue siendo S ¿?
::oBrowse2:Refresh()
MsgInfo( ::oDbfDataSet2:X ) //Y sigue siendo S ¿?
RETURN Nil
Por lo que tengo entendido, se pueden tener campos calculados o fantasmas, pero...
¿Que hago mal????
Gracias,
Un Saludo,
Xevi.
--