Page 1 of 1

Duda sobre HBClass

Posted: Fri Jun 01, 2007 7:38 am
by softruz
Muy buenas, tengo una duda para acceder a los datos que me crea AddMultiData, recorriendo el array que me crea pero no me introduce los valores de las variables, os mando el código y así lo vemos mejor:

Con esta funcion me creo el objeto para crearme las variables del modo, por ejemplo:

::v:=varTOclass()
objeto:v:codigo

* y el código que me lo crea es:
_HB_CLASS tAux
method varTOclass() class CDIt
local nScope
nScope := 1
::s_oClass := IIF(.F.,,HBClass():new("tAux",__CLS_PARAM ( "TControl" ) ) )
for i = 1 to len(::aVars)
::s_oClass:AddMultiData(,::aVars[i,2] ,iif(.F.,1,iif(.F.,2,iif(.F.,4,nScope) ) ) + iif(.F.,16,0 ),{::aVars[i,1]},.F.,.F. )
next
::s_oClass:Create()
return ::s_oClass:Instance() AS CLASS tAux


* Y lo que quiero es pasar todos los valores del array a un array mio, pero es que _ si están pero los valores no, mirar este es mi código:

method KnockDatas(c) class CDIt
local i
for i=1 to len(::s_oClass:aDatas)
msginfo(::s_oClass:aDatas[HB_OO_DATA_VALUE],::aVars[i,1])
::aVars[i,2]:=::s_oClass:aDatas[HB_OO_DATA_VALUE]
next
return

¿ ESTOY HACIENDO LAS COSAS BIEN ?
¿ COMO PODRÍA HACERLO ?

Un Saludo. y Mil Gracias.

Posted: Fri Jun 01, 2007 7:55 am
by Antonio Linares
Puedes explicarnos que es lo que deseas hacer ? La idea general

Posted: Fri Jun 01, 2007 8:02 am
by softruz
Tengo un array (aVars) que contiene (campo,valor,tipo) de un tabla de mysql
que sus valores depende del nombre de la tabla que le pasemos, entonces mi idea es, si por ejemplo, la tabla tiene _:

id,idEmpresa,codigo,descripcion

lo que quiero es crear un objeto (v) para acceder a sus datos de la forma
Por ejemplo: v:codigo

y la finalidad es pasar el contenido de todas las variables v:id,v:idEmpresa,v:codigo,v:descripcion al array aVars del principio, pero todo esto sin saber a priori _ tiene.

entonces creo que tenemos que acceder atraves del array aDatas pero no me devuelve el valor.

¿Que puedo hacer?. Gracias.

Posted: Fri Jun 01, 2007 8:08 am
by Antonio Linares
Puedes crear una clase genérica que use:

ERROR HANDLER OnError( uParam1 )

y ahí resolver los mensajes que te llegan. Revisa la clase TDataBase de FWH, funciona así. No se sabe a priori el nombre de _ que va a usar, y desde el METHOD OnError( uParam1 ) CLASS TDataBase se resuelven dinamicamente.

De esta forma no tienes que crear una clase para cada caso. Una sola clase, genérica, te permite solucionar todos _ posibles

Posted: Fri Jun 01, 2007 8:43 am
by softruz
La cuestion es que cuando mete el valor en v:codigo por ejemplo si lo coge bien pero se supone que lo debería meter en aDatas de la clase HBClass pero no lo mete ahi, es decir, donde puede encontrar el valor de v:codigo dentro de la clase HBClass.

Gracias

Posted: Fri Jun 01, 2007 9:43 am
by Antonio Linares
Prueba esto:

Code: Select all

for n = 1 to Len( v )
   if v[ n ] == v:codigo
      MsgInfo( n )
   endif
next