Sobre PROPERTYs y Macros
Publicado: Dom Abr 14, 2013 9:28 am
Básicamente lo que quiero es asignar valores a las PROPIEDADES de una
clase usando macrosus.
Algo básico pero en mas o menos lo que hago y que quiero optimizar.
#include "Xailer.ch"
//---------------------------------------------------------- --------------------
CLASS Empresas From TComponent
METHOD DevolverID()
PROPERTY idempresa INIT 0
PROPERTY idpersonaj INIT 0
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD DevolverID( ID ) CLASS Empresas
local hArray:= AppData:oSql:QH( "select idempresa, idpersonaj from
empresas")
// Levanto en un hash todos los campos de la tabla.
// Luego a cada PROPIEDAD le asigno el valor de su elemento hash
correspondiente
::idempresa := hArray["idempresa"]
::idpersonaj := hArray["idpersonaj"]
RETURN .t.
---
Lo que busco es hacerlo mas práctico y en un par de lineas
local cCampo := ""
FOR i = 1 to len(hArray) // Recorro el hash
cCampo := HGetKeyAt( hArray, i ) // En cCampo guardo
"idempresa"por ejemplo
::&cCampo := hArray[cCampo] // Acá quiero que
::idempresa := 1 tome el valor del hash
NEXT
Y no quiere, en todos los casos ::&cCampo se setea en 0.
Desde ya muchas gracias.
clase usando macrosus.
Algo básico pero en mas o menos lo que hago y que quiero optimizar.
#include "Xailer.ch"
//---------------------------------------------------------- --------------------
CLASS Empresas From TComponent
METHOD DevolverID()
PROPERTY idempresa INIT 0
PROPERTY idpersonaj INIT 0
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD DevolverID( ID ) CLASS Empresas
local hArray:= AppData:oSql:QH( "select idempresa, idpersonaj from
empresas")
// Levanto en un hash todos los campos de la tabla.
// Luego a cada PROPIEDAD le asigno el valor de su elemento hash
correspondiente
::idempresa := hArray["idempresa"]
::idpersonaj := hArray["idpersonaj"]
RETURN .t.
---
Lo que busco es hacerlo mas práctico y en un par de lineas
local cCampo := ""
FOR i = 1 to len(hArray) // Recorro el hash
cCampo := HGetKeyAt( hArray, i ) // En cCampo guardo
"idempresa"por ejemplo
::&cCampo := hArray[cCampo] // Acá quiero que
::idempresa := 1 tome el valor del hash
NEXT
Y no quiere, en todos los casos ::&cCampo se setea en 0.
Desde ya muchas gracias.