Es posible grabar un objeto y sus propiedades en un archivo o en una campo de tabla sql server o cualquier otra ?, por ejemplo hago un grafico estadistico con chart de owc, el operador lo modifica visualmente y quiero que _ queden grabados para recuperarlos en otro momento y mostrar nuevamente el grafico con las modificaciones s
realizadas.
Les agradecería si alguien puede orientarme al respecto.
Saludos
Grabar un objeto
Re: Grabar un objeto
Hoa,
Repasa la clase fwdbg.prg -> function Object2Data( o )
Repasa la clase fwdbg.prg -> function Object2Data( o )
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
Re: Grabar un objeto
Carles, gracias por la información, veo que hay opciones, el problema es que en mi version de fivewin no tengo ese codigo, es posible publicarlo aqui ?
Re: Grabar un objeto
Hola,
Si se lo pides al Sr. Linares seguro que te la envia...
Si se lo pides al Sr. Linares seguro que te la envia...
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Grabar un objeto
Desarrollado por nuestro querido Carles, menuda barba te has dejado!
Code: Select all
FUNCTION Object2Data( oObject )
*-------------------------------------
LOCAL aDict := {}
LOCAL aIVar := {}
LOCAL bError, oError
LOCAL cx
LOCAL uData
LOCAL nLen
IF ValType( oObject ) <> 'O'
RETU aIVar
ENDIF
nLen := Len( aDict := ASort( __ClassSel( oObject:ClassH )))
bError := ErrorBlock( {|oError| ErrorObject( oError )} )
BEGIN SEQUENCE
FOR cx = 1 TO nLen
IF !( StrChar( aDict[cx], 1) == '_') // !Method
IF Ascan( aDict, Left( "_" + aDict[cx], 10 ) ) == 0
* AADD( aMeth, aDict[cx] + '()' )
ELSE // Var
uData := OSend( oObject, aDict[cx] )
Aadd( aIvar, { aDict[cx], ValType( uData ), uData, oObject } )
ENDIF
ENDIF
NEXT
RECOVER USING oError
Eval( bError, oError )
END SEQUENCE
ErrorBlock( bError )
IF Len( aIvar ) == 0
Aadd( aIvar, { "No DATA", "", "" } )
ENDIF
RETU aIVar
Re: Grabar un objeto
Harbour, ese gran desconocido, tiene dos funciones a tal fin:
hb_Serialize() y hb_Deserialize()
hb_Serialize() y hb_Deserialize()
Code: Select all
HB_SERIALIZE( <xData>, [ <lNumSizes> = .F. ], ;
[ <cCdpIn> = HVMCP ], [ <cCdpOut> = HVMCP ] ) -> cData
HB_DESERIALIZE( <cData>, ;
[ <cCdpIn> = HVMCP ], [ <cCdpOut> = HVMCP ] ) -> xData