Duda sobre HBClass

Duda sobre HBClass

Postby softruz » Fri Jun 01, 2007 7:38 am

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 los campos 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[i][HB_OO_DATA_VALUE],::aVars[i,1])
::aVars[i,2]:=::s_oClass:aDatas[i][HB_OO_DATA_VALUE]
next
return

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

Un Saludo. y Mil Gracias.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Postby Antonio Linares » Fri Jun 01, 2007 7:55 am

Puedes explicarnos que es lo que deseas hacer ? La idea general
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41947
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby softruz » Fri Jun 01, 2007 8:02 am

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 los campos:

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 cuantos campos tiene.

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

¿Que puedo hacer?. Gracias.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Postby Antonio Linares » Fri Jun 01, 2007 8:08 am

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 los campos 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 los casos posibles
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41947
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby softruz » Fri Jun 01, 2007 8:43 am

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
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Postby Antonio Linares » Fri Jun 01, 2007 9:43 am

Prueba esto:
Code: Select all  Expand view
for n = 1 to Len( v )
   if v[ n ] == v:codigo
      MsgInfo( n )
   endif
next
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41947
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 86 guests