Page 1 of 1

Existencia de un DATA

Posted: Fri Mar 14, 2008 6:43 am
by Mike Serra
Buenos Días foro, estoy haciendo pruebas y me gustaría saber ¿cómo puedo conocer la existencia de un data de una clase?, es decir.

class myclass
data field1
data field2
data field3
....
end class
quiero saber si existe por ejemplo clase:field3. He probado:
if type('clase:field3') == "UI",con valtype, pero no me funciona
¿sabéis algún otro método?

Muchas Gracias

Posted: Fri Mar 14, 2008 8:10 am
by Carles
Hola,

Si quieres saber si existe alguna data o metodo, usa __classSel( oObject:ClassH ), pero si lo quieres saber en tiempo de ejecucion lo mejor es crearte en la clase el metodo ON ERROR como el q usa por ejemplo la clase Tdbf. Miralo y seguro q te servira.


Siau

Posted: Fri Mar 14, 2008 8:10 pm
by QAZWSX2K
YO LO HAGO ASI PARA QUE ME LAS MUESTRE EN UN BROWSE, ESTO LO ESTRAJE DEL FORO SOLO QUE LAS MOSTRABA CON UN MSGINFO, YO LE AGREGUE LO DEL BROWSE, ESPERO TE SIRVA

SOLO LLAMA A OBJ_DATA Y CAMBIALE CLASE POR LA QUE QUIERES SABER SUS DATAS

function OBJ_DATA() // VER DATAS DE UN OBJETO
*local o := ErrorNew() // Vamos a ver las DATAs de un objeto error
local o := CLASE() // Vamos a ver las DATAs de un objeto error
local aInfo := o:ClassSel()
LOCAL DBD:="C:\DATA.DBF"
_FNAME := {}
AADD( _FNAME, { "D" , "C", 50, 0 } )
DBCREATE(DBD, _FNAME )
DO WHILE .T.
IF NET_USE(DBD,.F.,.1)
DATABASE DBD2
EXIT
ELSE
LOOP
ENDIF
ENDDO
for n = 1 to Len( aInfo )
if Left( aInfo[ n ], 1 ) == "_"
DO WHILE .T.
IF ADD_REC(.1)
DBD2:D :=SubStr( aInfo[ n ], 2 )
DBD2:SAVE()
DBUNLOCK()
EXIT
ELSE
LOOP
ENDIF
ENDDO
*MsgInfo( SubStr( aInfo[ n ], 2 ) )
endif
next
BROWSE()
DBD2:CLOSE()
return nil

Posted: Sat Mar 15, 2008 7:14 am
by Mike Serra
Gracias Carles y QAZWSX2K. Problema solucionado gracias a vuestros
aportes.

SaLUDOS :D